private static void fillResourceParam(ResourceTemplateParameterContext resourceContext, ResourceKey resourceKey, ResourceUUID resourceUuid, ResourceContextParameters resParam, String value) { resourceContext.addResourceParameter( resourceKey, resourceUuid, resParam, value ); }
private void buildResourceContext(VirtualTrackInfo virtualTrackInfo, ContextInfo contextInfo) { virtualTrackInfo.getParameters().forEach( (paramName, paramValue) -> contextProvider.getResourceContext().addResourceParameter( ResourceKey.create(contextInfo), contextInfo.getResourceUuid(), paramName, paramValue)); }
private static void fillResourceParam(ResourceTemplateParameterContext resourceContext, ResourceKey resourceKey, ResourceUUID resourceUuid, ResourceContextParameters resParam) { resourceContext.addResourceParameter( resourceKey, resourceUuid, resParam, String.format(RESOURCE_PARAMETER_FORMAT, resourceUuid, resParam.getName()) ); }
contextProvider.getResourceContext().addResourceParameter(resourceKey, resourceId, ResourceContextParameters.ESSENCE, assetPath); contextProvider.getResourceContext().addResourceParameter(resourceKey, resourceId, ResourceContextParameters.EDIT_RATE, ConversionHelper.toEditRate(editRate)); contextProvider.getResourceContext().addResourceParameter(resourceKey, resourceId, ResourceContextParameters.START_TIME_EDIT_UNIT, startTimeEditUnit.toString()); durationEditUnit = trackFileResource.getIntrinsicDuration().subtract(startTimeEditUnit); contextProvider.getResourceContext().addResourceParameter(resourceKey, resourceId, ResourceContextParameters.DURATION_EDIT_UNIT, durationEditUnit.toString()); contextProvider.getResourceContext().addResourceParameter(resourceKey, resourceId, ResourceContextParameters.END_TIME_EDIT_UNIT, endTimeEditUnit.toString()); contextProvider.getResourceContext().addResourceParameter(resourceKey, resourceId, ResourceContextParameters.REPEAT_COUNT, repeatCount.toString()); contextProvider.getResourceContext().addResourceParameter(resourceKey, resourceId, ResourceContextParameters.TRACK_FILE_ID, trackId.getUuid()); contextProvider.getResourceContext().addResourceParameter(resourceKey, resourceId, ResourceContextParameters.ESSENCE_DESC_ID, essenceDescId);
private static void fillVideoResourceParameters() { ResourceTemplateParameterContext resourceContext = contextProvider.getResourceContext(); SequenceType seqType = SequenceType.VIDEO; int i = 0; for (SequenceUUID seqUuid : contextProvider.getSequenceContext().getUuids(seqType)) { for (SegmentUUID segmUuid : contextProvider.getSegmentContext().getUuids()) { ResourceKey resKey = ResourceKey.create(segmUuid, seqUuid, seqType); for (ResourceUUID resUuid : resourceContext.getUuids(resKey)) { resourceContext.addResourceParameter(resKey, resUuid, ResourceContextParameters.WIDTH, String.valueOf(widths[i])); resourceContext.addResourceParameter(resKey, resUuid, ResourceContextParameters.HEIGHT, String.valueOf(heights[i])); resourceContext.addResourceParameter(resKey, resUuid, ResourceContextParameters.FRAME_RATE, frameRates[i]); i++; } } } }
public static void addResourceContextParameter(TemplateParameterContextProvider contextProvider, int segm, int seq, SequenceType seqType, int res, int repeat, ResourceContextParameters param, String paramValue) { contextProvider.getResourceContext().addResourceParameter( ResourceKey.create(getSegmentUuid(segm), getSequenceUuid(seq, seqType), seqType), getResourceUuid(segm, seq, seqType, res, repeat), param, paramValue); }
.setSequenceType(seqType).build(); resourceContext.addResourceParameter(resourceKey, resUuid, ResourceContextParameters.OFFSET_MS, String.valueOf(offsetMs)); long durationMs = new BigInteger(contextProvider.getResourceContext()
ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.AUDIO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BITS_PER_SAMPLE, "24"); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.SAMPLE_RATE, "48000"); resourceUuid = getResourceUuid(1, 1, SequenceType.AUDIO, 1, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BITS_PER_SAMPLE, "24"); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.SAMPLE_RATE, "48000");
@Test public void okConversionNotSpecifiedInConfigXml() throws Exception { // 1. create context with all parameters specified DestContextTypeMap destContextMap = new DestContextMapBuilder() .setBitsSample("24").setSampleRate("48000") .setBitDepth("10").setFrameRate("25").setHeight("1920").setWidth("1080").setPixelFmt("yuv422p10le") .build(); // 2. create config with no conversion parameters specified ConfigType config = new ConfigBuilder().build(); // 3. create context with mismatched parameters TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext(destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.AUDIO), SequenceType.AUDIO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.AUDIO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BITS_PER_SAMPLE, "16"); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.SAMPLE_RATE, "96000"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }
ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.AUDIO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BITS_PER_SAMPLE, "24"); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.SAMPLE_RATE, "48000"); resourceUuid = getResourceUuid(1, 1, SequenceType.AUDIO, 1, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BITS_PER_SAMPLE, "20"); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.SAMPLE_RATE, "48000");
@Test public void okVideoNotSpecifiedInDestinationParams() throws Exception { // 1. create context with all parameters except video specified DestContextTypeMap destContextMap = new DestContextMapBuilder() .setBitsSample("24").setSampleRate("48000") .setNonNullVideo(false) .build(); // 2. create config disallow mismatched ConfigType config = new ConfigBuilder() .setBitsSample(true).setSampleRate(true) .setFrameRate(true).setBitDepth(true).setSize(true).setPixelFmt(true) .build(); // 3. create context with video specified TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext( destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.VIDEO), SequenceType.VIDEO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.VIDEO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BIT_DEPTH, "8"); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.FRAME_RATE, "50"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }
@Test public void okVideoNotSpecifiedInConfigXml() throws Exception { // 1. create context with all parameters specified DestContextTypeMap destContextMap = new DestContextMapBuilder() .setBitsSample("24").setSampleRate("48000") .setBitDepth("10").setFrameRate("25").setHeight("1920").setWidth("1080").setPixelFmt("yuv422p10le") .build(); // 2. create config with video not specified ConfigType config = new ConfigBuilder() .setBitsSample(false).setSampleRate(false) .setNonNullVideo(false) .build(); // 3. create context with video specified and mismatched TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext( destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.VIDEO), SequenceType.VIDEO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.VIDEO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.FRAME_RATE, "30"); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BIT_DEPTH, "8"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }
@Test public void okAudioNotSpecifiedInDestinationParams() throws Exception { // 1. create context with all parameters except audio specified DestContextTypeMap destContextMap = new DestContextMapBuilder() .setBitDepth("10").setFrameRate("25").setHeight("1920").setWidth("1080").setPixelFmt("yuv422p10le") .setNonNullAudio(false) .build(); // 2. create config disallow mismatched for all ConfigType config = new ConfigBuilder() .setBitsSample(false).setSampleRate(true) .setFrameRate(false).setBitDepth(false).setSize(false).setPixelFmt(false) .build(); // 3. create context with audio specified TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext( destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.AUDIO), SequenceType.AUDIO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.AUDIO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BITS_PER_SAMPLE, "16"); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.SAMPLE_RATE, "96000"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }
@Test public void okAudioNotSpecifiedInConfigXml() throws Exception { // 1. create context with all parameters specified DestContextTypeMap destContextMap = new DestContextMapBuilder() .setBitsSample("24").setSampleRate("48000") .setBitDepth("10").setFrameRate("25").setHeight("1920").setWidth("1080").setPixelFmt("yuv422p10le") .build(); // 2. create config with audio not specified ConfigType config = new ConfigBuilder() .setFrameRate(false).setBitDepth(false).setSize(false).setPixelFmt(false) .setNonNullAudio(false) .build(); // 3. create context with audio specified and mismatched TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext( destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.AUDIO), SequenceType.AUDIO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.AUDIO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BITS_PER_SAMPLE, "20"); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.SAMPLE_RATE, "96000"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }
@Test public void okAudioParameterNotSpecifiedInDestinationParams() throws Exception { // 1. create context with sample rate not specified DestContextTypeMap destContextMap = new DestContextMapBuilder() .setSampleRate(null) .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 2. create config disallow mismatched sample rate ConfigType config = new ConfigBuilder() .setSampleRate(false) .build(); // 3. create context with sample rate specified TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext( destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.AUDIO), SequenceType.AUDIO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.AUDIO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.SAMPLE_RATE, "96000"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }
@Test public void okAudioParameterEmptyInDestinationParams() throws Exception { // 1. create context with sample rate is empty DestContextTypeMap destContextMap = new DestContextMapBuilder() .setSampleRate("") .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 2. create config disallow mismatched sample rate ConfigType config = new ConfigBuilder() .setSampleRate(false) .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 3. create context with sample rate specified TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext( destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.AUDIO), SequenceType.AUDIO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.AUDIO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.SAMPLE_RATE, "96000"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }
@Test public void okVideoParameterEmptyInDestinationParams() throws Exception { // 1. create context with bit depth is empty DestContextTypeMap destContextMap = new DestContextMapBuilder() .setBitDepth("") .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 2. create config disallow mismatched bit depth ConfigType config = new ConfigBuilder() .setBitDepth(false) .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 3. create context with bit depth specified TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext( destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.VIDEO), SequenceType.VIDEO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.VIDEO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BIT_DEPTH, "8"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }
@Test public void okAudioParameterNotSpecifiedInConfigXml() throws Exception { // 1. create context with sample rate specified and mismatched DestContextTypeMap destContextMap = new DestContextMapBuilder() .setSampleRate("48000") .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 2. create config with sample rate not specified ConfigType config = new ConfigBuilder() .setSampleRate(null) .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 3. create context with mismatched sample rate TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext( destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.AUDIO), SequenceType.AUDIO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.AUDIO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.SAMPLE_RATE, "96000"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }
@Test public void okVideoParameterNotSpecifiedInConfigXml() throws Exception { // 1. create context with bit depth specified and mismatched DestContextTypeMap destContextMap = new DestContextMapBuilder() .setBitDepth("10") .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 2. create config with bit depth specified ConfigType config = new ConfigBuilder() .setBitDepth(null) .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 3. create context with mismatched bit depth TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext( destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.VIDEO), SequenceType.VIDEO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.VIDEO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BIT_DEPTH, "8"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }
@Test public void okVideoParameterNotSpecifiedInDestinationParams() throws Exception { // 1. create context with bit depth not specified DestContextTypeMap destContextMap = new DestContextMapBuilder() .setBitDepth(null) .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 2. create config disallow mismatched bit depth ConfigType config = new ConfigBuilder() .setBitDepth(false) .setNonNullAudio(true) .setNonNullVideo(true) .build(); // 3. create context with bit depth specified TemplateParameterContextProvider contextProvider = createDefaultContextProviderWithCplAndDestContext( destContextMap, 2, 2, 2, EnumSet.allOf(SequenceType.class)); ResourceKey resourceKey = ResourceKey.create(getSegmentUuid(0), getSequenceUuid(0, SequenceType.VIDEO), SequenceType.VIDEO); ResourceUUID resourceUuid = getResourceUuid(0, 0, SequenceType.VIDEO, 0, 0); contextProvider.getResourceContext() .addResourceParameter( resourceKey, resourceUuid, ResourceContextParameters.BIT_DEPTH, "8"); // 4. init checker SilentConversionChecker checker = new SilentConversionChecker(contextProvider, config); // 5. check. no exception expected checker.check(); }