Próbuję użyć Nexusa do przetestowania kodowania za pomocą interfejsów API Mediacodec. Widzę, że inputBuffers dostarczane przez koder to 119040 (logując inputBuffers.capacity). Ale rozmiar ramki, tj. Dane wejściowe, wynosi 460 800. Otrzymałem komunikat o błędzie pod numerem z buffer overflow
. Dlatego właśnie ustawiłem bufor wejściowy na 460800. API, które mogłem znaleźć, to BufferInfo.set
. Jednak nie mogę znaleźć sposobu na dołączenie tego ustawienia do kodera. Czy ktoś może pomóc? Dzięki!!!Jak ustawić rozmiar bufora kodera utworzonego przez 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);}
to działa na mnie! –