am 4f0002e6: Merge "MediaMuxer sample code update, no functional change" into jb-mr2-dev

* commit '4f0002e6de601f6727475a3296618120b62d7f12':
  MediaMuxer sample code update, no functional change
This commit is contained in:
ztenghui
2013-05-31 11:07:35 -07:00
committed by Android Git Automerger

View File

@@ -35,20 +35,29 @@ import java.util.Map;
* It is generally used like this: * It is generally used like this:
* *
* <pre> * <pre>
* MediaMuxer muxer = new MediaMuxer(...); * MediaMuxer muxer = new MediaMuxer("temp.mp4", OutputFormat.MUXER_OUTPUT_MPEG_4);
* // More often, the MediaFormat will be retrieved from MediaCodec.getOutputFormat()
* // or MediaExtractor.getTrackFormat().
* MediaFormat audioFormat = new MediaFormat(...); * MediaFormat audioFormat = new MediaFormat(...);
* MediaFormat videoFormat = new MediaFormat(...); * MediaFormat videoFormat = new MediaFormat(...);
* int audioTrackIndex = muxer.addTrack(audioFormat); * int audioTrackIndex = muxer.addTrack(audioFormat);
* int videoTrackIndex = muxer.addTrack(videoFormat); * int videoTrackIndex = muxer.addTrack(videoFormat);
* ByteBuffer inputBuffer = ByteBuffer.allocate(...); * ByteBuffer inputBuffer = ByteBuffer.allocate(bufferSize);
* boolean finished = false;
* BufferInfo bufferInfo = new BufferInfo();
*
* muxer.start(); * muxer.start();
* while(inputBuffer has new data) { * while(!finished) {
* if (new data is audio sample) { * // getInputBuffer() will fill the inputBuffer with one frame of encoded
* muxer.writeSampleData(audioTrackIndex, inputBuffer, ...); * // sample from either MediaCodec or MediaExtractor, set isAudioSample to
* } else if (new data is video sample) { * // true when the sample is audio data, set up all the fields of bufferInfo,
* muxer.writeSampleData(videoTrackIndex, inputBuffer, ...); * // and return true if there are no more samples.
* finished = getInputBuffer(inputBuffer, isAudioSample, bufferInfo);
* if (!finished) {
* int currentTrackIndex = isAudioSample ? audioTrackIndex : videoTrackIndex;
* muxer.writeSampleData(currentTrackIndex, inputBuffer, bufferInfo);
* } * }
* } * };
* muxer.stop(); * muxer.stop();
* muxer.release(); * muxer.release();
* </pre> * </pre>