许多解码器要求实际压缩数据流以“codec specific data”为先导,也就是用于初始化codec的设置数据,例如AVC视频情况时的PPS/SPS,或vorbis音频情况时的code tables。MediaExtractor类提供codec specific data作为返回的track format的一部分,在命名为csd-0,csd-1的条目中。 通过指定BUFFER_FLAG_CODEC_CONFIG,这些buffers可...
3mediaFormat.setByteBuffer("csd-0", ByteBuffer.wrap(bytes)) 其中csd-0、csd-1 这些键可以从 MediaExtractor#getTrackFormat 获取的MediaFormat中获取,这些特定的数据会在start 时自动提交给 MediaCodec,无需直接提交此数据,如果在输出缓冲区或格式更改之前调用了 flush,则会丢失提交的特定数据,就需要在 queueInput...
It's very important to use the format from the extractor because // it contains a copy of the CSD-0/CSD-1 codec-specific data chunks. String mime = format.getString(MediaFormat.KEY_MIME); Log.d(TAG, "createDecoderByType mime:" + mime); //通过视频mime类型初始化解码器 MediaCodec ...
在mCodec.configure(mediaFormat, null,null, 0)中将 Surface 设置成null 然后用mCodec.getOutputBuffers...
status_t queueCSDInputBuffer(size_t bufferIndex); status_t handleSetSurface(const sp<Surface> &surface); status_t connectToSurface(const sp<Surface> &surface); status_t disconnectFromSurface(); void postActivityNotificationIfPossible(); void onInputBufferAvailable(); void onOutputBufferAvailable();...