@Override public String toString() { return name() + " - " + description; } }
public static String toChannelsLayoutString(Collection<FFmpegAudioChannels> ffmpegChannels) { return toChannelsLayoutString(ffmpegChannels.toArray(new FFmpegAudioChannels[]{})); }
public void addChannels(SequenceUUID uuid, String channels) throws InvalidAudioChannelAssignmentException { addChannels(uuid, FFmpegAudioChannels.toFFmpegAudioChannels(channels)); }
public static FFmpegAudioChannels[] toFFmpegAudioChannels(String channelLayout) { String[] channels = channelLayout.split("\\" + SEPARATOR); List<FFmpegAudioChannels> ffmpegChannels = new ArrayList<>(); for (String channel : channels) { ffmpegChannels.add(FFmpegAudioChannels.valueOf(channel.toUpperCase())); } return ffmpegChannels.toArray(new FFmpegAudioChannels[]{}); }
private FFmpegAudioChannels toFfmpegChannel(String channelStr) { channelStr = channelStr.replace(AUDIO_CHANNEL_PREFIX, "").toUpperCase(); switch (channelStr) { case "L": return FFmpegAudioChannels.FL; case "R": return FFmpegAudioChannels.FR; case "C": return FFmpegAudioChannels.FC; case "LS": return FFmpegAudioChannels.SL; case "RS": return FFmpegAudioChannels.SR; default: return FFmpegAudioChannels.valueOf(channelStr.toUpperCase()); } }
/** * 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; }
String channelLayout = FFmpegAudioChannels.toChannelsLayoutString(ffmpegAudioChannels); resourceContext.addResourceParameter( ResourceKey.create(contextInfo),
if (FFmpegAudioChannels.toFFmpegAudioChannels(nextChannelLayout).length != channelsCount) {
/** * 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; }
ResourceKey.create(segmUuid, seqUuid, SequenceType.AUDIO), resUuid, ResourceContextParameters.CHANNELS_LAYOUT, FFmpegAudioChannels.toChannelsLayoutString(channelsForSeq[j]) ); resourceContext.addResourceParameter(
/** * 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 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; }
/** * 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; }
@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 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 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())); }
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(seq3, 1, mainAudio.get(1).get(FL.name())); assertChannelEquals(seq3, 2, mainAudio.get(1).get(FR.name()));
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(seq3, 1, mainAudio.get(1).get(FL.name())); assertChannelEquals(seq3, 2, mainAudio.get(2).get(FR.name()));