Nexusを使用してMediacodec APIでエンコードをテストしようとしています。エンコーダによって提供されるinputBuffersが(inputBuffers.capacityを記録することによって)119040であることがわかります。しかし、フレームのサイズ、すなわち入力は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);}
:私はバッファを変更する正しい方法はMAX_INPUT_SIZE、のようなものを調整することになると思うAndroid MediaCodec Documentation! –