DecoderConfigDescriptor dcd2 = esds2.getDecoderConfigDescriptor(); if (dcd1.getAudioSpecificInfo() != null && dcd2.getAudioSpecificInfo() != null && !dcd1.getAudioSpecificInfo().equals(dcd2.getAudioSpecificInfo())) { return null; if (dcd1.getAvgBitRate() != dcd2.getAvgBitRate()) { dcd1.setAvgBitRate((dcd1.getAvgBitRate() + dcd2.getAvgBitRate()) / 2); if (dcd1.getBufferSizeDB() != dcd2.getBufferSizeDB()) { if (dcd1.getDecoderSpecificInfo() != null ? !dcd1.getDecoderSpecificInfo().equals(dcd2.getDecoderSpecificInfo()) : dcd2.getDecoderSpecificInfo() != null) { return null; if (dcd1.getMaxBitRate() != dcd2.getMaxBitRate()) { dcd1.setMaxBitRate(Math.max(dcd1.getMaxBitRate(), dcd2.getMaxBitRate())); if (!dcd1.getProfileLevelIndicationDescriptors().equals(dcd2.getProfileLevelIndicationDescriptors())) { return null; if (dcd1.getObjectTypeIndication() != dcd2.getObjectTypeIndication()) { return null; if (dcd1.getStreamType() != dcd2.getStreamType()) { return null; if (dcd1.getUpStream() != dcd2.getUpStream()) { return null;
descriptor.setSlConfigDescriptor(slConfigDescriptor); DecoderConfigDescriptor decoderConfigDescriptor = new DecoderConfigDescriptor(); decoderConfigDescriptor.setObjectTypeIndication(0x40); decoderConfigDescriptor.setStreamType(5); decoderConfigDescriptor.setBufferSizeDB(bufferSizeDB); decoderConfigDescriptor.setMaxBitRate(maxBitRate); decoderConfigDescriptor.setAvgBitRate(avgBitRate); audioSpecificConfig.setSamplingFrequencyIndex(firstHeader.sampleFrequencyIndex); audioSpecificConfig.setChannelConfiguration(firstHeader.channelconfig); decoderConfigDescriptor.setAudioSpecificInfo(audioSpecificConfig);
descriptor.setSlConfigDescriptor(slConfigDescriptor); DecoderConfigDescriptor decoderConfigDescriptor = new DecoderConfigDescriptor(); decoderConfigDescriptor.setObjectTypeIndication(ES_OBJECT_TYPE_INDICATION); decoderConfigDescriptor.setStreamType(ES_STREAM_TYPE); decoderConfigDescriptor.setMaxBitRate(maxBitRate); decoderConfigDescriptor.setAvgBitRate(avgBitRate); descriptor.setDecoderConfigDescriptor(decoderConfigDescriptor);
if (descriptor != null) { DecoderConfigDescriptor configDescriptor = descriptor.getDecoderConfigDescriptor(); AudioSpecificConfig audioInfo = configDescriptor.getAudioSpecificInfo(); if (audioInfo != null) { audioDecoderBytes = audioInfo.getConfigBytes(); } else { log.debug("Audio specific config was not found"); DecoderSpecificInfo info = configDescriptor.getDecoderSpecificInfo(); if (info != null) { log.debug("Decoder info found: {}", info.getTag());
DecoderConfigDescriptor decoderConfigDescriptor = new DecoderConfigDescriptor(); decoderConfigDescriptor.setObjectTypeIndication(32); decoderConfigDescriptor.setStreamType(4); DecoderSpecificInfo decoderSpecificInfo = new DecoderSpecificInfo(); Sample s = createSampleObject(esdsStuff); s.asByteBuffer().get(data); decoderSpecificInfo.setData(data); decoderConfigDescriptor.setDecoderSpecificInfo(decoderSpecificInfo); esDescriptor.setDecoderConfigDescriptor(decoderConfigDescriptor); SLConfigDescriptor slConfigDescriptor = new SLConfigDescriptor();
final AudioSpecificConfig audioSpecificConfig = decoderConfigDescriptor.getAudioSpecificInfo(); if (audioSpecificConfig != null && audioSpecificConfig.sbrPresentFlag && !audioSpecificConfig.psPresentFlag) { return "mp4a.40.5"; esDescriptorBox = Path.getPath((Box) se, "..../esds"); // Apple does weird things if (esDescriptorBox.getEsDescriptor().getDecoderConfigDescriptor().getObjectTypeIndication() == 0x6C) { return "mp4v." + Integer.toHexString(esDescriptorBox.getEsDescriptor().getDecoderConfigDescriptor().getObjectTypeIndication()); } else { throw new RuntimeException("I don't know how to construct codec for mp4v with OTI " + esDescriptorBox.getEsDescriptor().getDecoderConfigDescriptor().getObjectTypeIndication() );
private static ChannelConfiguration getAACChannelConfig(AudioSampleEntry e, ESDescriptorBox esds) { final DecoderConfigDescriptor decoderConfigDescriptor = esds.getEsDescriptor().getDecoderConfigDescriptor(); final AudioSpecificConfig audioSpecificConfig = decoderConfigDescriptor.getAudioSpecificInfo(); ChannelConfiguration cc = new ChannelConfiguration(); cc.schemeIdUri = "urn:mpeg:dash:23003:3:audio_channel_configuration:2011"; cc.value = "2"; if (audioSpecificConfig != null && audioSpecificConfig.getChannelConfiguration() > 2) { // in case of mono let's assume stereo as it will be Parametric Stereo in most cases. cc.value = String.valueOf(audioSpecificConfig.getChannelConfiguration()); } return cc; }
DecoderConfigDescriptor decConf = descriptor.getDecoderConfigDescriptor(); if (decConf != null) { DecoderSpecificInfo decInfo = decConf.getDecoderSpecificInfo(); ByteBuffer byteBuffer = decInfo.serialize(); videoDecoderBytes = new byte[byteBuffer.limit()];
descriptor.setSlConfigDescriptor(slConfigDescriptor); DecoderConfigDescriptor decoderConfigDescriptor = new DecoderConfigDescriptor(); decoderConfigDescriptor.setObjectTypeIndication(ES_OBJECT_TYPE_INDICATION); decoderConfigDescriptor.setStreamType(ES_STREAM_TYPE); decoderConfigDescriptor.setMaxBitRate(maxBitRate); decoderConfigDescriptor.setAvgBitRate(avgBitRate); descriptor.setDecoderConfigDescriptor(decoderConfigDescriptor);
if (descriptor != null) { DecoderConfigDescriptor configDescriptor = descriptor.getDecoderConfigDescriptor(); AudioSpecificConfig audioInfo = configDescriptor.getAudioSpecificInfo(); if (audioInfo != null) { audioDecoderBytes = audioInfo.getConfigBytes(); } else { log.debug("Audio specific config was not found"); DecoderSpecificInfo info = configDescriptor.getDecoderSpecificInfo(); if (info != null) { log.debug("Decoder info found: {}", info.getTag());
DecoderConfigDescriptor decoderConfigDescriptor = new DecoderConfigDescriptor(); decoderConfigDescriptor.setObjectTypeIndication(32); decoderConfigDescriptor.setStreamType(4); DecoderSpecificInfo decoderSpecificInfo = new DecoderSpecificInfo(); Sample s = createSampleObject(esdsStuff); s.asByteBuffer().get(data); decoderSpecificInfo.setData(data); decoderConfigDescriptor.setDecoderSpecificInfo(decoderSpecificInfo); esDescriptor.setDecoderConfigDescriptor(decoderConfigDescriptor); SLConfigDescriptor slConfigDescriptor = new SLConfigDescriptor();
public static long getAudioSamplingRate(AudioSampleEntry e) { ESDescriptorBox esds = Path.getPath(e, "esds"); if (esds != null) { final DecoderConfigDescriptor decoderConfigDescriptor = esds.getEsDescriptor().getDecoderConfigDescriptor(); final AudioSpecificConfig audioSpecificConfig = decoderConfigDescriptor.getAudioSpecificInfo(); if (audioSpecificConfig.getExtensionAudioObjectType() > 0 && audioSpecificConfig.sbrPresentFlag) { return audioSpecificConfig.getExtensionSamplingFrequency(); } else { return audioSpecificConfig.getSamplingFrequency(); } } else { return e.getSampleRate(); } }
DecoderConfigDescriptor decConf = descriptor.getDecoderConfigDescriptor(); if (decConf != null) { DecoderSpecificInfo decInfo = decConf.getDecoderSpecificInfo(); ByteBuffer byteBuffer = decInfo.serialize(); videoDecoderBytes = new byte[byteBuffer.limit()];
descriptor.setSlConfigDescriptor(slConfigDescriptor); DecoderConfigDescriptor decoderConfigDescriptor = new DecoderConfigDescriptor(); decoderConfigDescriptor.setObjectTypeIndication(0x40); decoderConfigDescriptor.setStreamType(5); decoderConfigDescriptor.setBufferSizeDB(1536); decoderConfigDescriptor.setMaxBitRate(maxBitrate); decoderConfigDescriptor.setAvgBitRate(avgBitrate); audioSpecificConfig.setSamplingFrequencyIndex(firstHeader.sampleFrequencyIndex); audioSpecificConfig.setChannelConfiguration(firstHeader.channelconfig); decoderConfigDescriptor.setAudioSpecificInfo(audioSpecificConfig);
DecoderConfigDescriptor dcd2 = esds2.getDecoderConfigDescriptor(); if (dcd1.getAudioSpecificInfo() != null && dcd2.getAudioSpecificInfo() != null && !dcd1.getAudioSpecificInfo().equals(dcd2.getAudioSpecificInfo())) { return null; if (dcd1.getAvgBitRate() != dcd2.getAvgBitRate()) { dcd1.setAvgBitRate((dcd1.getAvgBitRate() + dcd2.getAvgBitRate()) / 2); if (dcd1.getBufferSizeDB() != dcd2.getBufferSizeDB()) { if (dcd1.getDecoderSpecificInfo() != null ? !dcd1.getDecoderSpecificInfo().equals(dcd2.getDecoderSpecificInfo()) : dcd2.getDecoderSpecificInfo() != null) { return null; if (dcd1.getMaxBitRate() != dcd2.getMaxBitRate()) { dcd1.setMaxBitRate(Math.max(dcd1.getMaxBitRate(), dcd2.getMaxBitRate())); if (!dcd1.getProfileLevelIndicationDescriptors().equals(dcd2.getProfileLevelIndicationDescriptors())) { return null; if (dcd1.getObjectTypeIndication() != dcd2.getObjectTypeIndication()) { return null; if (dcd1.getStreamType() != dcd2.getStreamType()) { return null; if (dcd1.getUpStream() != dcd2.getUpStream()) { return null;
if (descriptor != null) { DecoderConfigDescriptor configDescriptor = descriptor.getDecoderConfigDescriptor(); AudioSpecificConfig audioInfo = configDescriptor.getAudioSpecificInfo(); if (audioInfo != null) { audioDecoderBytes = audioInfo.getConfigBytes(); } else { log.debug("Audio specific config was not found"); DecoderSpecificInfo info = configDescriptor.getDecoderSpecificInfo(); if (info != null) { log.debug("Decoder info found: {}", info.getTag());
descriptor.setSlConfigDescriptor(slConfigDescriptor); DecoderConfigDescriptor decoderConfigDescriptor = new DecoderConfigDescriptor(); decoderConfigDescriptor.setObjectTypeIndication(0x40); decoderConfigDescriptor.setStreamType(5); decoderConfigDescriptor.setBufferSizeDB(bufferSizeDB); decoderConfigDescriptor.setMaxBitRate(maxBitRate); decoderConfigDescriptor.setAvgBitRate(avgBitRate); audioSpecificConfig.setSamplingFrequencyIndex(firstHeader.sampleFrequencyIndex); audioSpecificConfig.setChannelConfiguration(firstHeader.channelconfig); decoderConfigDescriptor.setAudioSpecificInfo(audioSpecificConfig);
if (descriptor != null) { DecoderConfigDescriptor configDescriptor = descriptor.getDecoderConfigDescriptor(); AudioSpecificConfig audioInfo = configDescriptor.getAudioSpecificInfo(); if (audioInfo != null) { audioDecoderBytes = audioInfo.getConfigBytes(); } else { log.debug("Audio specific config was not found"); DecoderSpecificInfo info = configDescriptor.getDecoderSpecificInfo(); if (info != null) { log.debug("Decoder info found: {}", info.getTag());