문제

내가 사용하여 MediaCodec API 에서의 응용이다.내가 사용하는 코드에서 bigflake 며 응용 프로그램은 실행하는 꽤 괜찮습니다.하지만 나는 아직도 이해할 수 없어 매개변수 timeoutUs 에 모두 기능 dequeueInputBuffer() 기능 dequeueOutputBuffer() 지 읽은 후에 그것에 대해 API 참조.그것은 좋은 것으면 누구나 잘 사용하는지 설명하고 효과의 이 매개 변수입니다.고 해야 그것은 동일한 모두에서 위의 함수 호출?

도움이 되었습니까?

해결책

론,메인 아이디어는 내부적으로 아래에 MediaCodec 층 구성 요소가 작동하는 비동기입니다.그래서를 호출할 때 dequeueInputBuffer()dequeueOutputBuffer() 아 실제 작업을 수행한다는 호출하는 스레드가 확인하고 내부 구성 요소 상태 동안 선택한 제한 시간까지 응답이 준비되거나 제한 시간이 발생합니다.내 경험에서도 버퍼가 할당 비동기,그렇지 않으면서 내부 버퍼를위한 준비 큐에서...소 시간 제한될 수 있습 INFO_TRY_AGAIN_LATER.하지만 주로 그것은 디코딩\인코딩이 있습니다.를 제출하는 입력한 프레임 처리를 차단하지 않는 전화,처리에서 발생하는 또 다른 스레드에 당신은 확인 출력 프레임 준비에도와 차단하지 않는다.그래서 모든 pipline 하지 않는 수면 위한 모든 무거운(디코딩\인코딩\등)작업을 수행할 수 있습 다른 작업

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top