@Override public AudioCodecMeta getCodecMeta(ByteBuffer data) throws IOException { return org.jcodec.common.AudioCodecMeta.fromAudioFormat(format); } }
@Override public AudioCodecMeta getCodecMeta(ByteBuffer _data) throws IOException { ByteBuffer frame = _data.duplicate(); frame.order(ByteOrder.BIG_ENDIAN); int h = frame.getInt(); int frameSize = (h >> 16) & 0xffff; if (frame.remaining() != frameSize) throw new IllegalArgumentException("Wrong s302m frame"); int channels = ((h >> 14) & 0x0003) * 2 + 2; int sampleSizeInBits = ((h >> 4) & 0x0003) * 4 + 16; return org.jcodec.common.AudioCodecMeta.fromAudioFormat(new AudioFormat(SAMPLE_RATE, sampleSizeInBits, channels, true, true)); } }
@Override public AudioCodecMeta getCodecMeta(ByteBuffer data) throws IOException { MpaHeader header = MpaHeader.read_header(data.duplicate()); AudioFormat format = new AudioFormat(frequencies[header.version][header.sampleFreq], 16, header.mode == SINGLE_CHANNEL ? 1 : 2, true, false); return AudioCodecMeta.fromAudioFormat(format); }; }
int channelCount = 1 + (b1 & 7); int sampleSizeInBits = 16 + ((b1 >> 6) & 3) * 4; return org.jcodec.common.AudioCodecMeta.fromAudioFormat(new AudioFormat(sampleRate, sampleSizeInBits, channelCount, true, false));
@Override public DemuxerTrackMeta getMeta() { AudioFormat format = header.getFormat(); AudioCodecMeta audioCodecMeta = org.jcodec.common.AudioCodecMeta.fromAudioFormat(format); long totalFrames = dataSize / format.getFrameSize(); return new DemuxerTrackMeta(TrackType.AUDIO, Codec.PCM, (double) totalFrames / format.getFrameRate(), null, (int) totalFrames, null, null, audioCodecMeta); }
@Override public AudioCodecMeta getCodecMeta(ByteBuffer data) throws IOException { SampleBuffer sampleBuffer = new SampleBuffer(); decoder.decodeFrame(NIOUtils.toArray(data), sampleBuffer); sampleBuffer.setBigEndian(false); return org.jcodec.common.AudioCodecMeta.fromAudioFormat(toAudioFormat(sampleBuffer)); }
@Override public DemuxerTrackMeta getMeta() { AudioSampleEntry ase = (AudioSampleEntry) getSampleEntries()[0]; AudioCodecMeta audioCodecMeta = org.jcodec.common.AudioCodecMeta.fromAudioFormat(ase.getFormat()); return new DemuxerTrackMeta(TrackType.AUDIO, Codec.codecByFourcc(getFourcc()), (double) duration / timescale, null, totalFrames, null, null, audioCodecMeta); } }
@Override public void outputAudioFrame(AudioFrameWithPacket audioFrame) throws IOException { if (!outputFormat.isAudio() || outputAudioCodec == null) return; outputAudioPacket(Packet.createPacketWithData(audioFrame.getPacket(), encodeAudio(audioFrame.getAudio())), org.jcodec.common.AudioCodecMeta.fromAudioFormat(audioFrame.getAudio().getFormat())); }
} else if (type == MP4TrackType.SOUND) { AudioSampleEntry ase = (AudioSampleEntry) track.getSampleEntries()[0]; audioCodecMeta = AudioCodecMeta.fromAudioFormat(ase.getFormat());