public AC3TrackImpl(DataSource dataSource, String lang) throws IOException { super(dataSource.toString()); this.dataSource = dataSource; this.trackMetaData.setLanguage(lang); samples = readSamples(); audioSampleEntry = createAudioSampleEntry(); trackMetaData.setCreationTime(new Date()); trackMetaData.setModificationTime(new Date()); trackMetaData.setLanguage(lang); trackMetaData.setTimescale(audioSampleEntry.getSampleRate()); // Audio tracks always use samplerate as timescale trackMetaData.setVolume(1); }
if (ase == null) { ase = (AudioSampleEntry) sampleEntry; } else if (ase.getSampleRate() != ((AudioSampleEntry) sampleEntry).getSampleRate()) { throw new RuntimeException("Multiple SampleEntries and different sample rates is not supported"); if (ase.getSampleRate() < minSampleRate) { minSampleRate = ase.getSampleRate(); long sc = testTrack.getSamples().size(); double stretch = (double) sc / refSampleCount; if (ase == null) { ase = (AudioSampleEntry) sampleEntry; } else if (ase.getSampleRate() != ((AudioSampleEntry) sampleEntry).getSampleRate()) { throw new RuntimeException("Multiple SampleEntries and different sample rates is not supported"); double factor = (double) ase.getSampleRate() / (double) minSampleRate; if (factor != Math.rint(factor)) { // Not an integer throw new RuntimeException("Sample rates must be a multiple of the lowest sample rate to create a correct file!");
IsoTypeWriter.writeUInt32(byteBuffer, getSampleRate()); } else { IsoTypeWriter.writeUInt32(byteBuffer, getSampleRate() << 16);
return null; if (ase1.getSampleRate() == ase2.getSampleRate()) { ase.setSampleRate(ase1.getSampleRate()); } else { return null;
public AC3TrackImpl(DataSource dataSource, String lang) throws IOException { super(dataSource.toString()); this.dataSource = dataSource; this.trackMetaData.setLanguage(lang); samples = readSamples(); audioSampleEntry = createAudioSampleEntry(); trackMetaData.setCreationTime(new Date()); trackMetaData.setModificationTime(new Date()); trackMetaData.setLanguage(lang); trackMetaData.setTimescale(audioSampleEntry.getSampleRate()); // Audio tracks always use samplerate as timescale trackMetaData.setVolume(1); }
if (ase == null) { ase = (AudioSampleEntry) sampleEntry; } else if (ase.getSampleRate() != ((AudioSampleEntry) sampleEntry).getSampleRate()) { throw new RuntimeException("Multiple SampleEntries and different sample rates is not supported"); if (ase.getSampleRate() < minSampleRate) { minSampleRate = ase.getSampleRate(); long sc = testTrack.getSamples().size(); double stretch = (double) sc / refSampleCount; if (ase == null) { ase = (AudioSampleEntry) sampleEntry; } else if (ase.getSampleRate() != ((AudioSampleEntry) sampleEntry).getSampleRate()) { throw new RuntimeException("Multiple SampleEntries and different sample rates is not supported"); double factor = (double) ase.getSampleRate() / (double) minSampleRate; if (factor != Math.rint(factor)) { // Not an integer throw new RuntimeException("Sample rates must be a multiple of the lowest sample rate to create a correct file!");
long ats = ase.getSampleRate();
long ats = ase.getSampleRate();
long ats = ase.getSampleRate();
long ats = ase.getSampleRate();
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(); } }
IsoTypeWriter.writeUInt32(byteBuffer, getSampleRate()); } else { IsoTypeWriter.writeUInt32(byteBuffer, getSampleRate() << 16);
return null; if (ase1.getSampleRate() == ase2.getSampleRate()) { ase.setSampleRate(ase1.getSampleRate()); } else { return null;