我正在使用Nexus测试Mediacodec APIs编码。通过记录inputBuffers的容量,我可以看到编码器提供的inputBuffers为119040,但帧(即输入)的大小为460800。当我调用
inputBuffer.put
时,出现了buffer overflow
错误消息。因此,我想将输入缓冲区设置为460800。我找到的API是BufferInfo.set
。然而,我找不到一种方法将此设置附加到编码器上。能否有人提供帮助?谢谢!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);}