public static SegmentUUID getSegmentUuid(int segm) { return SegmentUUID.create( String.format(SEGMENT_UUID_FORMAT, segm)); }
@Test public void testInitDefaultSegmentParameters() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getSegmentContext().initSegment( SegmentUUID.create("urn:uuid:3333")); contextProvider.getSegmentContext().initSegment( SegmentUUID.create("urn:uuid:1111")); contextProvider.getSegmentContext().initSegment( SegmentUUID.create("urn:uuid:2222")); assertDefaultSegmentParameters(contextProvider, 0, SegmentUUID.create("urn:uuid:3333")); assertDefaultSegmentParameters(contextProvider, 1, SegmentUUID.create("urn:uuid:1111")); assertDefaultSegmentParameters(contextProvider, 2, SegmentUUID.create("urn:uuid:2222")); }
@Test public void testInitSegmentsNoDuplicate() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getSegmentContext().initSegment(SegmentUUID.create("urn:uuid:3333")); contextProvider.getSegmentContext().initSegment(SegmentUUID.create("urn:uuid:1111")); contextProvider.getSegmentContext().initSegment(SegmentUUID.create("urn:uuid:2222")); contextProvider.getSegmentContext().initSegment(SegmentUUID.create("urn:uuid:3333")); contextProvider.getSegmentContext().initSegment(SegmentUUID.create("urn:uuid:1111")); assertEquals(3, contextProvider.getSegmentContext().getSegmentsNum()); assertArrayEquals( new SegmentUUID[]{ SegmentUUID.create("urn:uuid:3333"), SegmentUUID.create("urn:uuid:1111"), SegmentUUID.create("urn:uuid:2222")}, contextProvider.getSegmentContext().getUuids().toArray()); }
@Test public void testInitSegmentsOrder() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getSegmentContext().initSegment(SegmentUUID.create("urn:uuid:3333")); contextProvider.getSegmentContext().initSegment(SegmentUUID.create("urn:uuid:1111")); contextProvider.getSegmentContext().initSegment(SegmentUUID.create("urn:uuid:2222")); assertEquals(3, contextProvider.getSegmentContext().getSegmentsNum()); assertArrayEquals( new SegmentUUID[]{ SegmentUUID.create("urn:uuid:3333"), SegmentUUID.create("urn:uuid:1111"), SegmentUUID.create("urn:uuid:2222")}, contextProvider.getSegmentContext().getUuids().toArray()); }
@Test public void testAddSegmentParametersInitsSegment() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getSegmentContext().addSegmentParameter( SegmentUUID.create("urn:uuid:3333"), SegmentContextParameters.NUM, "5"); assertEquals(1, contextProvider.getSegmentContext().getSegmentsNum()); assertArrayEquals( new SegmentUUID[]{SegmentUUID.create("urn:uuid:3333")}, contextProvider.getSegmentContext().getUuids().toArray()); assertDefaultSegmentParameters(contextProvider, 5, SegmentUUID.create("urn:uuid:3333")); }
@Override protected void buildFromCpl() { // 1. get a composition edit rate (it's used if no specific edit rate is specified for a segment). this.compositionEditRate = ConversionHelper.parseEditRate(cpl2016.getEditRate()); // 2. go through all segments and all sequences and build segment, sequence and resource contexts. for (SegmentType segment : cpl2016.getSegmentList().getSegment()) { this.currentSegmentUuid = SegmentUUID.create(segment.getId()); contextProvider.getSegmentContext().initSegment(currentSegmentUuid); for (Object anySeqJaxb : segment.getSequenceList().getAny()) { if (!(anySeqJaxb instanceof JAXBElement)) { throw new ConversionException(String.format("Could not understand a sequence '%s'", anySeqJaxb.toString())); } JAXBElement jaxbElement = (JAXBElement) (anySeqJaxb); Object anySeq = jaxbElement.getValue(); SequenceTypeCpl currentSequenceTypeCpl = SequenceTypeCpl.fromName(jaxbElement.getName().getLocalPart()); if ((currentSequenceTypeCpl != null) && (anySeq instanceof SequenceType)) { this.currentSequence = (SequenceType) anySeq; this.currentSequenceType = currentSequenceTypeCpl.toSequenceType(); this.currentSequenceUuid = SequenceUUID.create(currentSequence.getTrackId()); processSequence(); } } } }
@Test public void testEndTime_NoEntryPoint_SourceDuration() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad16")) .setSequenceUuid(SequenceUUID.create("urn:uuid:a4f226e7-adac-45a4-adbf-83335cf02d0d")) .setSequenceType(SequenceType.VIDEO) .setResourceUuid(ResourceUUID.create("urn:uuid:2404d06b-4d65-4511-9cac-42d41196a1ea", 0)) .build(); assertEquals("300", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_EDIT_UNIT, contextInfo)); assertEquals("00:00:06.000", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_TIMECODE, contextInfo)); assertEquals("6000", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_MS, contextInfo)); }
@Test public void testStartTime_EntryPoint_NoEditRate() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad17")) .setSequenceUuid(SequenceUUID.create("urn:uuid:a4f226e7-adac-45a4-adbf-83335cf02d0d")) .setSequenceType(SequenceType.VIDEO) .setResourceUuid(ResourceUUID.create("urn:uuid:2404d06b-4d65-4511-9cac-42d41196a1ea", 0)) .build(); assertEquals("600", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_EDIT_UNIT, contextInfo)); assertEquals("00:00:12.000", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_TIMECODE, contextInfo)); assertEquals("12000", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_MS, contextInfo)); }
@Test public void testDuration_SourceDuration() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad16")) .setSequenceUuid(SequenceUUID.create("urn:uuid:a4f226e7-adac-45a4-adbf-83335cf02d0d")) .setSequenceType(SequenceType.VIDEO) .setResourceUuid(ResourceUUID.create("urn:uuid:2404d06b-4d65-4511-9cac-42d41196a1eb", 0)) .build(); assertEquals("150", resourceContext.getParameterValue(ResourceContextParameters.DURATION_EDIT_UNIT, contextInfo)); assertEquals("00:00:03.000", resourceContext.getParameterValue(ResourceContextParameters.DURATION_TIMECODE, contextInfo)); assertEquals("3000", resourceContext.getParameterValue(ResourceContextParameters.DURATION_MS, contextInfo)); }
@Test public void testEndTime_EntryPoint_SourceDuration() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad16")) .setSequenceUuid(SequenceUUID.create("urn:uuid:a4f226e7-adac-45a4-adbf-83335cf02d0d")) .setSequenceType(SequenceType.VIDEO) .setResourceUuid(ResourceUUID.create("urn:uuid:2404d06b-4d65-4511-9cac-42d41196a1eb", 0)) .build(); assertEquals("450", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_EDIT_UNIT, contextInfo)); assertEquals("00:00:09.000", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_TIMECODE, contextInfo)); assertEquals("9000", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_MS, contextInfo)); }
@Test public void testDuration_NoSourceDuration_NoEntryPoint() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad17")) .setSequenceUuid(SequenceUUID.create("urn:uuid:63b41d86-c5df-4169-b036-3a25024bd712")) .setSequenceType(SequenceType.AUDIO) .setResourceUuid(ResourceUUID.create("urn:uuid:895820ef-e379-4021-a69e-8a898b0a9097", 0)) .build(); assertEquals("1629120", resourceContext.getParameterValue(ResourceContextParameters.DURATION_EDIT_UNIT, contextInfo)); assertEquals("00:00:33.940", resourceContext.getParameterValue(ResourceContextParameters.DURATION_TIMECODE, contextInfo)); assertEquals("33940", resourceContext.getParameterValue(ResourceContextParameters.DURATION_MS, contextInfo)); }
@Test public void testEndTime_NoEntryPoint_NoSourceDuration() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad17")) .setSequenceUuid(SequenceUUID.create("urn:uuid:63b41d86-c5df-4169-b036-3a25024bd712")) .setSequenceType(SequenceType.AUDIO) .setResourceUuid(ResourceUUID.create("urn:uuid:895820ef-e379-4021-a69e-8a898b0a9097", 0)) .build(); assertEquals("1629120", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_EDIT_UNIT, contextInfo)); assertEquals("00:00:33.940", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_TIMECODE, contextInfo)); assertEquals("33940", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_MS, contextInfo)); }
@Test public void testStartTime_NoEntryPoint_NoEditRate() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad16")) .setSequenceUuid(SequenceUUID.create("urn:uuid:a4f226e7-adac-45a4-adbf-83335cf02d0d")) .setSequenceType(SequenceType.VIDEO) .setResourceUuid(ResourceUUID.create("urn:uuid:2404d06b-4d65-4511-9cac-42d41196a1ea", 0)) .build(); assertEquals("0", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_EDIT_UNIT, contextInfo)); assertEquals("00:00:00.000", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_TIMECODE, contextInfo)); assertEquals("0", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_MS, contextInfo)); }
@Test public void testEndTime_EntryPoint_NoSourceDuration() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad17")) .setSequenceUuid(SequenceUUID.create("urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711")) .setSequenceType(SequenceType.AUDIO) .setResourceUuid(ResourceUUID.create("urn:uuid:895820ef-e379-4021-a69e-8a898b0a9094", 0)) .build(); assertEquals("1629120", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_EDIT_UNIT, contextInfo)); assertEquals("00:00:33.940", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_TIMECODE, contextInfo)); assertEquals("33940", resourceContext.getParameterValue(ResourceContextParameters.END_TIME_MS, contextInfo)); }
@Test public void testStartTime_EntryPoint_EditRate() throws Exception { // UUIDs as defined in CPL.xmlo ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad16")) .setSequenceUuid(SequenceUUID.create("urn:uuid:a4f226e7-adac-45a4-adbf-83335cf02d0d")) .setSequenceType(SequenceType.VIDEO) .setResourceUuid(ResourceUUID.create("urn:uuid:2404d06b-4d65-4511-9cac-42d41196a1eb", 0)) .build(); assertEquals("300", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_EDIT_UNIT, contextInfo)); assertEquals("00:00:06.000", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_TIMECODE, contextInfo)); assertEquals("6000", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_MS, contextInfo)); }
@Test public void testStartTime_NoEntryPoint_EditRate() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad16")) .setSequenceUuid(SequenceUUID.create("urn:uuid:a4f226e7-adac-45a4-adbf-83335cf02d0d")) .setSequenceType(SequenceType.VIDEO) .setResourceUuid(ResourceUUID.create("urn:uuid:2404d06b-4d65-4511-9cac-42d41196a1ea", 0)) .build(); assertEquals("0", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_EDIT_UNIT, contextInfo)); assertEquals("00:00:00.000", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_TIMECODE, contextInfo)); assertEquals("0", resourceContext.getParameterValue(ResourceContextParameters.START_TIME_MS, contextInfo)); }
@Test public void testDuration_NoSourceDuration_EntryPoint() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad17")) .setSequenceUuid(SequenceUUID.create("urn:uuid:a4f226e7-adac-45a4-adbf-83335cf02d0d")) .setSequenceType(SequenceType.VIDEO) .setResourceUuid(ResourceUUID.create("urn:uuid:2404d06b-4d65-4511-9cac-42d41196a1ea", 0)) .build(); assertEquals("1097", resourceContext.getParameterValue(ResourceContextParameters.DURATION_EDIT_UNIT, contextInfo)); assertEquals("00:00:21.940", resourceContext.getParameterValue(ResourceContextParameters.DURATION_TIMECODE, contextInfo)); assertEquals("21940", resourceContext.getParameterValue(ResourceContextParameters.DURATION_MS, contextInfo)); }
@Test public void testEditRate_NoEditRate() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad17")) .setSequenceUuid(SequenceUUID.create("urn:uuid:a4f226e7-adac-45a4-adbf-83335cf02d0d")) .setSequenceType(SequenceType.VIDEO) .setResourceUuid(ResourceUUID.create("urn:uuid:2404d06b-4d65-4511-9cac-42d41196a1ea", 0)) .build(); assertEquals("50 1", resourceContext.getParameterValue(ResourceContextParameters.EDIT_RATE, contextInfo)); }
@Test public void testEditRate() throws Exception { // UUIDs as defined in CPL.xml ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:20544b5c-be3c-4274-8633-249ee8a5ad17")) .setSequenceUuid(SequenceUUID.create("urn:uuid:63b41d86-c5df-4169-b036-3a25024bd712")) .setSequenceType(SequenceType.AUDIO) .setResourceUuid(ResourceUUID.create("urn:uuid:895820ef-e379-4021-a69e-8a898b0a9097", 0)) .build(); assertEquals("48000 1", resourceContext.getParameterValue(ResourceContextParameters.EDIT_RATE, contextInfo)); }
@Test public void testEssenceDescriptorAudioParameters() throws Exception { // UUIDs as defined in CPL.xml. // essence must be a full path! // audio1 ContextInfo contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:e9e18479-6116-40f4-a891-9ef999c80f2a")) .setSequenceUuid(SequenceUUID.create("urn:uuid:55b1a5a6-d62d-4903-aca5-f766f86696fc")) .setSequenceType(SequenceType.AUDIO) .setResourceUuid(ResourceUUID.create("urn:uuid:7a9aec8a-ab50-4310-bb56-1f35411bd7ac", 0)) .build(); assertEquals("FL+FR+FC+LFE+SL+SR", resourceContext.getParameterValue(ResourceContextParameters.CHANNELS_LAYOUT, contextInfo)); // audio2 contextInfo = new ContextInfoBuilder() .setSegmentUuid(SegmentUUID.create("urn:uuid:e9e18479-6116-40f4-a891-9ef999c80f2a")) .setSequenceUuid(SequenceUUID.create("urn:uuid:b8ee769c-b768-451c-bb5f-9c38fd3a5d18")) .setSequenceType(SequenceType.AUDIO) .setResourceUuid(ResourceUUID.create("urn:uuid:8e910d09-a3e8-4f2e-88b4-37beb3e3c883", 0)) .build(); assertEquals("FL+FR", resourceContext.getParameterValue(ResourceContextParameters.CHANNELS_LAYOUT, contextInfo)); } }