Tabnine Logo
TtmlParagraphResolver
Code IndexAdd Tabnine to your IDE (free)

How to use
TtmlParagraphResolver
in
com.netflix.subtitles.ttml

Best Java code snippets using com.netflix.subtitles.ttml.TtmlParagraphResolver (Showing top 10 results out of 315)

origin: DSRCorporation/imf-conversion

public void resolveParagraphTimeOverlaps() {
  new TtmlParagraphResolver(mergedItt).resolveTimeOverlaps();
}
origin: DSRCorporation/imf-conversion

private PEltype merge(Slice<PEltype> slice) {
  PEltype p = copy(slice.getContents().stream()
      .findFirst()
      .orElseThrow(() -> new ConvertException("At least one <p> must exist for content.")));
  p.setBegin(ConversionHelper.msToSmpteTimecode(slice.getBegin(), frameRate));
  p.setEnd(ConversionHelper.msToSmpteTimecode(slice.getEnd(), frameRate));
  p.getContent().clear();
  p.getContent().addAll(mergeContent(slice.getContents()));
  return p;
}
origin: DSRCorporation/imf-conversion

/**
 * Resolve time overlaps.
 * Method uses {@link SplitUtils} for split initial &lt;p&gt;s on slices.
 */
public void resolveTimeOverlaps() {
  DivEltype div = tt.getBody().getDiv().stream()
      .findFirst()
      .orElseThrow(() -> new ConvertException("At least one <div> must be defined."));
  List<PEltype> sliced = split(pStream(div.getBlockClass()))
      .map(this::merge)
      .collect(Collectors.toList());
  div.getBlockClass().clear();
  div.getBlockClass().addAll(sliced);
}
origin: DSRCorporation/imf-conversion

private PEltype copy(PEltype p) {
  List<Object> styles = new ArrayList<>(p.getStyle());
  Object region = p.getRegion();
  p.getStyle().clear();
  p.setRegion(null);
  PEltype targetP = deepCopy(p, PEltype.class, TTML_PACKAGES);
  p.getStyle().addAll(styles);
  p.setRegion(region);
  targetP.getStyle().addAll(styles);
  targetP.setRegion(region);
  return targetP;
}
origin: DSRCorporation/imf-conversion

@Test
public void testParallelParagraphs() {
  PEltype p1 = TtmlTestUtils.createP("00:00:01:00", "00:00:04:00", "p1");
  PEltype p2 = TtmlTestUtils.createP("00:00:01:00", "00:00:04:00", "p2");
  TtEltype tt = TtmlTestUtils.wrapPs(p1, p2);
  new TtmlParagraphResolver(tt).resolveTimeOverlaps();
  Iterator<Object> iterator;
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertEquals("00:00:01:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertFalse(iterator.hasNext());
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertEquals("00:00:04:00", TtmlTestUtils.getPEnd(iterator.next()));
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertArrayEquals(new Serializable[]{"p1", "p2"}, TtmlTestUtils.getPContent(iterator.next()));
}
origin: DSRCorporation/imf-conversion

@Test
public void testGapBetweenParagraphs() {
  PEltype p1 = TtmlTestUtils.createP("00:00:01:00", "00:00:04:00", "p1");
  PEltype p2 = TtmlTestUtils.createP("00:00:10:00", "00:00:14:00", "p2");
  TtEltype tt = TtmlTestUtils.wrapPs(p1, p2);
  new TtmlParagraphResolver(tt).resolveTimeOverlaps();
  Iterator<Object> iterator;
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertEquals("00:00:01:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertEquals("00:00:10:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertFalse(iterator.hasNext());
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertEquals("00:00:04:00", TtmlTestUtils.getPEnd(iterator.next()));
  assertEquals("00:00:14:00", TtmlTestUtils.getPEnd(iterator.next()));
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertArrayEquals(new Serializable[]{"p1"}, TtmlTestUtils.getPContent(iterator.next()));
  assertArrayEquals(new Serializable[]{"p2"}, TtmlTestUtils.getPContent(iterator.next()));
}
origin: DSRCorporation/imf-conversion

@Test
public void testStuckedParagraphs() {
  PEltype p1 = TtmlTestUtils.createP("00:00:01:00", "00:00:02:00", "p1");
  PEltype p2 = TtmlTestUtils.createP("00:00:02:00", "00:00:03:00", "p2");
  PEltype p3 = TtmlTestUtils.createP("00:00:03:00", "00:00:04:00", "p3");
  TtEltype tt = TtmlTestUtils.wrapPs(p1, p2, p3);
  new TtmlParagraphResolver(tt).resolveTimeOverlaps();
  Iterator<Object> iterator;
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertEquals("00:00:01:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertEquals("00:00:02:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertEquals("00:00:03:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertFalse(iterator.hasNext());
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertEquals("00:00:02:00", TtmlTestUtils.getPEnd(iterator.next()));
  assertEquals("00:00:03:00", TtmlTestUtils.getPEnd(iterator.next()));
  assertEquals("00:00:04:00", TtmlTestUtils.getPEnd(iterator.next()));
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertArrayEquals(new Serializable[]{"p1"}, TtmlTestUtils.getPContent(iterator.next()));
  assertArrayEquals(new Serializable[]{"p2"}, TtmlTestUtils.getPContent(iterator.next()));
  assertArrayEquals(new Serializable[]{"p3"}, TtmlTestUtils.getPContent(iterator.next()));
}
origin: DSRCorporation/imf-conversion

@Test
public void testNestedParagraphs() {
  PEltype p1 = TtmlTestUtils.createP("00:00:01:00", "00:00:10:00", "p1");
  PEltype p2 = TtmlTestUtils.createP("00:00:03:00", "00:00:08:00", "p2");
  PEltype p3 = TtmlTestUtils.createP("00:00:05:00", "00:00:06:00", "p3");
  TtEltype tt = TtmlTestUtils.wrapPs(p1, p2, p3);
  new TtmlParagraphResolver(tt).resolveTimeOverlaps();
  Iterator<Object> iterator;
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertEquals("00:00:01:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertEquals("00:00:03:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertEquals("00:00:05:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertEquals("00:00:06:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertEquals("00:00:08:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertFalse(iterator.hasNext());
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertEquals("00:00:03:00", TtmlTestUtils.getPEnd(iterator.next()));
  assertEquals("00:00:05:00", TtmlTestUtils.getPEnd(iterator.next()));
  assertEquals("00:00:06:00", TtmlTestUtils.getPEnd(iterator.next()));
  assertEquals("00:00:08:00", TtmlTestUtils.getPEnd(iterator.next()));
  assertEquals("00:00:10:00", TtmlTestUtils.getPEnd(iterator.next()));
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertArrayEquals(new Serializable[]{"p1"}, TtmlTestUtils.getPContent(iterator.next()));
  assertArrayEquals(new Serializable[]{"p1", "p2"}, TtmlTestUtils.getPContent(iterator.next()));
  assertArrayEquals(new Serializable[]{"p1", "p2", "p3"}, TtmlTestUtils.getPContent(iterator.next()));
  assertArrayEquals(new Serializable[]{"p1", "p2"}, TtmlTestUtils.getPContent(iterator.next()));
  assertArrayEquals(new Serializable[]{"p1"}, TtmlTestUtils.getPContent(iterator.next()));
}
origin: DSRCorporation/imf-conversion

@Test
public void testOverlappedParagraphs() {
  PEltype p1 = TtmlTestUtils.createP("00:00:01:00", "00:00:03:00", "p1");
  PEltype p2 = TtmlTestUtils.createP("00:00:02:00", "00:00:04:00", "p2");
  PEltype p3 = TtmlTestUtils.createP("00:00:03:00", "00:00:05:00", "p3");
  TtEltype tt = TtmlTestUtils.wrapPs(p1, p2, p3);
  new TtmlParagraphResolver(tt).resolveTimeOverlaps();
  Iterator<Object> iterator;
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertEquals("00:00:01:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertEquals("00:00:02:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertEquals("00:00:03:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertEquals("00:00:04:00", TtmlTestUtils.getPBegin(iterator.next()));
  assertFalse(iterator.hasNext());
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertEquals("00:00:02:00", TtmlTestUtils.getPEnd(iterator.next()));
  assertEquals("00:00:03:00", TtmlTestUtils.getPEnd(iterator.next()));
  assertEquals("00:00:04:00", TtmlTestUtils.getPEnd(iterator.next()));
  assertEquals("00:00:05:00", TtmlTestUtils.getPEnd(iterator.next()));
  iterator = tt.getBody().getDiv().get(0).getBlockClass().iterator();
  assertArrayEquals(new Serializable[]{"p1"}, TtmlTestUtils.getPContent(iterator.next()));
  assertArrayEquals(new Serializable[]{"p1", "p2"}, TtmlTestUtils.getPContent(iterator.next()));
  assertArrayEquals(new Serializable[]{"p2", "p3"}, TtmlTestUtils.getPContent(iterator.next()));
  assertArrayEquals(new Serializable[]{"p3"}, TtmlTestUtils.getPContent(iterator.next()));
}
origin: DSRCorporation/imf-conversion

TtEltype tt = TtmlTestUtils.wrapPs(p1, p2, p3);
new TtmlParagraphResolver(tt).resolveTimeOverlaps();
com.netflix.subtitles.ttmlTtmlParagraphResolver

Javadoc

Class to resolve TTML paragraphs <p> in accordance with iTT format.

Most used methods

  • <init>
  • resolveTimeOverlaps
    Resolve time overlaps. Method uses SplitUtils for split initial

    s on slices.

  • copy
  • deepCopy
  • mergeContent
  • pStream
  • split

Popular in Java

  • Creating JSON documents from java classes using gson
  • getContentResolver (Context)
  • compareTo (BigDecimal)
  • getExternalFilesDir (Context)
  • EOFException (java.io)
    Thrown when a program encounters the end of a file or stream during an input operation.
  • HttpURLConnection (java.net)
    An URLConnection for HTTP (RFC 2616 [http://tools.ietf.org/html/rfc2616]) used to send and receive d
  • InetAddress (java.net)
    An Internet Protocol (IP) address. This can be either an IPv4 address or an IPv6 address, and in pra
  • ArrayList (java.util)
    ArrayList is an implementation of List, backed by an array. All optional operations including adding
  • TreeSet (java.util)
    TreeSet is an implementation of SortedSet. All optional operations (adding and removing) are support
  • DateTimeFormat (org.joda.time.format)
    Factory that creates instances of DateTimeFormatter from patterns and styles. Datetime formatting i
  • Top Vim plugins
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now