@Override public String toString() { return name() + " - " + description; } }
/** * Creates Option3 option. * * @param channels channels array to create by order * @return Option3 */ private AudioOption createOption3(ChannelType... channels) { AudioOption option = new AudioOption(); option.add(createTrack( new Channel(FL.name(), channels[0]), new Channel(FR.name(), channels[1]), new Channel(FC.name(), channels[2]), new Channel(LFE.name(), channels[3]), new Channel(SL.name(), channels[4]), new Channel(SR.name(), channels[5]) )); option.add(createTrack( new Channel(FL.name(), channels[6]), new Channel(FR.name(), channels[7]) )); return option; }
/** * Creates Option1A option. * * @param channels channels array to create by order * @return Option1A */ private AudioOption createOption1A(ChannelType... channels) { AudioOption option = new AudioOption(); option.add(createTrack( new Channel(FL.name(), channels[0]), new Channel(FR.name(), channels[1]), new Channel(FC.name(), channels[2]), new Channel(LFE.name(), channels[3]), new Channel(SL.name(), channels[4]), new Channel(SR.name(), channels[5]) )); Stream.of( createTrack(new Channel(FL.name(), channels[6])), createTrack(new Channel(FR.name(), channels[7])) ).forEach((m) -> { option.add(m); }); return option; }
/** * Creates Option6 option. * * @param channels channels array to create by order * @return Option6 */ private AudioOption createOption6(ChannelType... channels) { AudioOption option = new AudioOption(); option.add(createTrack( new Channel(FL.name(), channels[0]), new Channel(FR.name(), channels[1]) )); return option; }
/** * Creates Option5 option. * * @param channels channels array to create by order * @return Option5 */ private AudioOption createOption5(ChannelType... channels) { AudioOption option = new AudioOption(); Stream.of( createTrack(new Channel(FL.name(), channels[0])), createTrack(new Channel(FR.name(), channels[1])) ).forEach((m) -> { option.add(m); }); return option; }
/** * Creates Option2 option. * * @param channels channels array to create by order * @return Option2 */ private AudioOption createOption2(ChannelType... channels) { AudioOption option = new AudioOption(); Stream.of( createTrack(new Channel(FL.name(), channels[0])), createTrack(new Channel(FR.name(), channels[1])), createTrack(new Channel(FC.name(), channels[2])), createTrack(new Channel(LFE.name(), channels[3])), createTrack(new Channel(SL.name(), channels[4])), createTrack(new Channel(SR.name(), channels[5])), createTrack(new Channel(FL.name(), channels[6])), createTrack(new Channel(FR.name(), channels[7])) ).forEach((m) -> { option.add(m); }); return option; }
/** * Creates Option4 option. * * @param channels channels array to create by order * @return Option4 */ private AudioOption createOption4(ChannelType... channels) { AudioOption option = new AudioOption(); Stream.of( createTrack(new Channel(FL.name(), channels[0])), createTrack(new Channel(FR.name(), channels[1])), createTrack(new Channel(FC.name(), channels[2])), createTrack(new Channel(LFE.name(), channels[3])), createTrack(new Channel(SL.name(), channels[4])), createTrack(new Channel(SR.name(), channels[5])) ).forEach((m) -> { option.add(m); }); option.add(createTrack( new Channel(FL.name(), channels[6]), new Channel(FR.name(), channels[7]) )); return option; }
@Test public void emptyOption1AWithSixSequencesChanneslCanBeGenerated() throws Exception { String seq1 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"; String seq2 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd712"; TemplateParameterContextProvider contextProvider = TemplateParameterContextCreator.createDefaultContextProvider(); prepareCplVirtualTracksWithChannels( contextProvider, trackChannels(seq1, 4), trackChannels(seq2, 2)); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/1a-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 3, mainAudio.size()); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(seq1, 2, mainAudio.get(0).get(FR.name())); assertChannelEquals(seq1, 3, mainAudio.get(0).get(FC.name())); assertChannelEquals(seq1, 4, mainAudio.get(0).get(LFE.name())); assertChannelEquals(seq2, 1, mainAudio.get(0).get(SL.name())); assertChannelEquals(seq2, 2, mainAudio.get(0).get(SR.name())); assertChannelEquals(seq1, 1, mainAudio.get(1).get(FL.name())); assertChannelEquals(seq1, 2, mainAudio.get(2).get(FR.name())); }
@Test public void emptyOption2WithSixSequencesChanneslCanBeGenerated() throws Exception { String seq1 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"; String seq2 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd712"; TemplateParameterContextProvider contextProvider = TemplateParameterContextCreator.createDefaultContextProvider(); prepareCplVirtualTracksWithChannels( contextProvider, trackChannels(seq1, 4), trackChannels(seq2, 2)); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/2-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 8, mainAudio.size()); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(seq1, 2, mainAudio.get(1).get(FR.name())); assertChannelEquals(seq1, 3, mainAudio.get(2).get(FC.name())); assertChannelEquals(seq1, 4, mainAudio.get(3).get(LFE.name())); assertChannelEquals(seq2, 1, mainAudio.get(4).get(SL.name())); assertChannelEquals(seq2, 2, mainAudio.get(5).get(SR.name())); assertChannelEquals(seq1, 1, mainAudio.get(6).get(FL.name())); assertChannelEquals(seq1, 2, mainAudio.get(7).get(FR.name())); }
@Test public void emptyOption4WithSixSequencesChanneslCanBeGenerated() throws Exception { String seq1 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"; String seq2 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd712"; TemplateParameterContextProvider contextProvider = TemplateParameterContextCreator.createDefaultContextProvider(); prepareCplVirtualTracksWithChannels( contextProvider, trackChannels(seq1, 4), trackChannels(seq2, 2)); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/4-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 7, mainAudio.size()); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(seq1, 2, mainAudio.get(1).get(FR.name())); assertChannelEquals(seq1, 3, mainAudio.get(2).get(FC.name())); assertChannelEquals(seq1, 4, mainAudio.get(3).get(LFE.name())); assertChannelEquals(seq2, 1, mainAudio.get(4).get(SL.name())); assertChannelEquals(seq2, 2, mainAudio.get(5).get(SR.name())); assertChannelEquals(seq1, 1, mainAudio.get(6).get(FL.name())); assertChannelEquals(seq1, 2, mainAudio.get(6).get(FR.name())); }
@Test public void emptyOption3SixSequencesChanneslCanBeGenerated() throws Exception { String seq1 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"; String seq2 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd712"; TemplateParameterContextProvider contextProvider = TemplateParameterContextCreator.createDefaultContextProvider(); prepareCplVirtualTracksWithChannels( contextProvider, trackChannels(seq1, 4), trackChannels(seq2, 2)); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/3-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 2, mainAudio.size()); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(seq1, 2, mainAudio.get(0).get(FR.name())); assertChannelEquals(seq1, 3, mainAudio.get(0).get(FC.name())); assertChannelEquals(seq1, 4, mainAudio.get(0).get(LFE.name())); assertChannelEquals(seq2, 1, mainAudio.get(0).get(SL.name())); assertChannelEquals(seq2, 2, mainAudio.get(0).get(SR.name())); assertChannelEquals(seq1, 1, mainAudio.get(1).get(FL.name())); assertChannelEquals(seq1, 2, mainAudio.get(1).get(FR.name())); }
@Test public void emptySurroundOptionWithStereoFromDescriptor() throws Exception { TemplateParameterContextProvider contextProvider = AudioUtils.createContext( new FFmpegAudioChannels[][]{ {FL, FR}, {FC}, {FC}, {FL, FR}, {FL, FR, FC, LFE, SL, SR} }, new String[]{"en-US", "en-US", "en-US", "fr-CA", "en-US"}); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/1a-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 3, mainAudio.size()); assertChannelEquals(uuid(4), 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(uuid(4), 2, mainAudio.get(0).get(FR.name())); assertChannelEquals(uuid(4), 3, mainAudio.get(0).get(FC.name())); assertChannelEquals(uuid(4), 4, mainAudio.get(0).get(LFE.name())); assertChannelEquals(uuid(4), 5, mainAudio.get(0).get(SL.name())); assertChannelEquals(uuid(4), 6, mainAudio.get(0).get(SR.name())); assertChannelEquals(uuid(0), 1, mainAudio.get(1).get(FL.name())); assertChannelEquals(uuid(0), 2, mainAudio.get(2).get(FR.name())); }
/** * Checks audiomap.xml generation with 1 mono sequence. * * @throws Exception */ @Test public void generateAudioMapXmlWhenOneMonoSequence() throws Exception { /* PREPARATION */ String seq1 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"; TemplateParameterContextProvider contextProvider = TemplateParameterContextCreator.createDefaultContextProvider(); prepareCplVirtualTracksWithChannels(contextProvider, trackChannels(seq1, 1)); /* EXECUTION */ AudioMapXmlProvider provider = createAndInitProvider(contextProvider); AudioOption mainAudio = provider.getMainAudio(); /* VALIDATION */ assertEquals("en-US", mainAudio.getLocale()); assertEquals("main-audio.mov", mainAudio.getFileName()); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FR.name())); assertEquals(0, provider.getAlternativesAudio().size()); }
@Test public void emptyOption5WithMonoSequenceCanBeGenerated() throws Exception { String seq1 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"; TemplateParameterContextProvider contextProvider = TemplateParameterContextCreator.createDefaultContextProvider(); prepareCplVirtualTracksWithChannels( contextProvider, trackChannels(seq1, 1)); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/5-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 2, mainAudio.size()); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(seq1, 1, mainAudio.get(1).get(FR.name())); }
@Test public void emptyOption6WithMonoSequenceCanBeGenerated() throws Exception { String seq1 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"; TemplateParameterContextProvider contextProvider = TemplateParameterContextCreator.createDefaultContextProvider(); prepareCplVirtualTracksWithChannels( contextProvider, trackChannels(seq1, 1)); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/6-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 1, mainAudio.size()); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FR.name())); }
@Test public void emptyStereoOptionByOrderFromDescriptor() throws Exception { TemplateParameterContextProvider contextProvider = AudioUtils.createContext( new FFmpegAudioChannels[][]{ {FL, FR}, {FC}, {FC}, {FL, FR}, {FL, FR, FC, LFE, SL, SR} }, new String[]{"fr-CA", "en-US", "en-US", "fr-CA", "en-US"}); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/5-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 2, mainAudio.size()); // generated by order assertChannelEquals(uuid(0), 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(uuid(0), 2, mainAudio.get(1).get(FR.name())); }
@Test public void emptyStereoOptionFromDescriptor() throws Exception { TemplateParameterContextProvider contextProvider = AudioUtils.createContext( new FFmpegAudioChannels[][]{ {FL, FR}, {FC}, {FC}, {FL, FR}, {FL, FR} }, new String[]{"fr-CA", "en-US", "", "en", "en-US"}); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/5-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 2, mainAudio.size()); assertChannelEquals(uuid(3), 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(uuid(3), 2, mainAudio.get(1).get(FR.name())); }
/** * Checks audiomap.xml generation with 3 mono sequences. * * @throws Exception */ @Test public void generateAudioMapXmlWhenThreeMonoSequences() throws Exception { /* PREPARATION */ String seq1 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"; String seq2 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd712"; String seq3 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd713"; TemplateParameterContextProvider contextProvider = TemplateParameterContextCreator.createDefaultContextProvider(); prepareCplVirtualTracksWithChannels(contextProvider, trackChannels(seq1, 1), trackChannels(seq2, 1), trackChannels(seq3, 1)); /* EXECUTION */ AudioMapXmlProvider provider = createAndInitProvider(contextProvider); AudioOption mainAudio = provider.getMainAudio(); /* VALIDATION */ assertEquals("en-US", mainAudio.getLocale()); assertEquals("main-audio.mov", mainAudio.getFileName()); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(seq2, 1, mainAudio.get(0).get(FR.name())); assertEquals(0, provider.getAlternativesAudio().size()); }
@Test public void emptyOption5WithEnoughSequencesChanneslCanBeGenerated() throws Exception { String seq1 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"; String seq2 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd712"; String seq3 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd713"; String seq4 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd714"; TemplateParameterContextProvider contextProvider = TemplateParameterContextCreator.createDefaultContextProvider(); prepareCplVirtualTracksWithChannels( contextProvider, trackChannels(seq1, 4), trackChannels(seq2, 2), trackChannels(seq3, 2), trackChannels(seq4, 2)); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/5-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 2, mainAudio.size()); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(seq1, 2, mainAudio.get(1).get(FR.name())); }
@Test public void emptyOption6WithEnoughSequencesChanneslCanBeGenerated() throws Exception { String seq1 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd711"; String seq2 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd712"; String seq3 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd713"; String seq4 = "urn:uuid:63b41d86-c5df-4169-b036-3a25024bd714"; TemplateParameterContextProvider contextProvider = TemplateParameterContextCreator.createDefaultContextProvider(); prepareCplVirtualTracksWithChannels( contextProvider, trackChannels(seq1, 4), trackChannels(seq2, 2), trackChannels(seq3, 2), trackChannels(seq4, 2)); /* EXECUTION */ AudioOption mainAudio = createAndInitProvider( getAudiomapXml("xml/audiomap/6-empty-audiomap.xml"), contextProvider) .getMainAudio(); /* VALIDATION */ assertEquals("main-audio.mov", mainAudio.getFileName()); assertEquals("en-US", mainAudio.getLocale()); assertEquals("Track count", 1, mainAudio.size()); assertChannelEquals(seq1, 1, mainAudio.get(0).get(FL.name())); assertChannelEquals(seq1, 2, mainAudio.get(0).get(FR.name())); }