Mediacodec

From kangssu
Jump to: navigation, search

MediaCodec

https://stackoverflow.com/questions/24429187/decode-h264-packets-via-mediacodec-dequeueinputbuffer-returns-no-such-buffer


int index = decoder.dequeueInputBuffer(/*대기시간*/); 을 호출하면

decoder.getInputBuffers(); 에서 사용가능한 인덱스 번호가 나옵니다.

대기 시간동안 구하지 못하면 -1이 반환되구요..

만약 0 이 반환되었다면, inputBuffers[0] 에 데이터를 넣으시고 decoder.queueInputBuffer 를 통해 입력 해주시면 됩니다.

반대로 꺼내는 것은 dequeueInputBuffer를 통해 인덱스를 구하고 구한 인덱스에 해당하는 outputBuffers 의 값이 연산결과입니다.


buffer index는 dequeueInputBuffer 함수를 통해서 가지고오게됩니다.

decoder.getInputBuffers()[buffer index] 에 값을 밀어넣어야 함.

https://github.com/VolodymyrLykhonis/MediaCodec <------ 참고 하면 bytebuffer 로 처리하는 방법 알 수 있게 됨.