我试图使用Nexus来测试Mediacodec API的编码。我可以看到编码器提供的inputBuffers是119040(通过记录inputBuffers.capacity)。但是帧的大小,即输入,是460800.我得到了inputBuffer.put
与buffer overflow
错误信息。所以我打算将输入缓冲区设置为460800.我可以找到的API是BufferInfo.set
。但是,我无法找到将此设置附加到编码器的方法。有人可以帮忙吗?谢谢!!!如何设置由MediaCodec创建的编码器缓冲区大小
encoder = MediaCodec.createByCodecName(codecInfo.getName());
ByteBuffer[] inputBuffers = encoder.getInputBuffers();
if (inputBufferIndex >= 0) {
ByteBuffer inputBuffer = inputBuffers[inputBufferIndex];
inputBuffer.clear();
inputBuffer.put(input);
encoder.queueInputBuffer(inputBufferIndex, 0, input.length, 0, 0);}
这对我的作品! – 2017-06-17 10:16:35