2013-05-31 1 views

답변

0

내장 된 것이 없지만 일반적인 병렬 처리 기술을 적용 할 수 있습니다. 일반적인 아이디어는 미리 스레드 풀을 만드는 것입니다 (전환 일시 중지를 중지하십시오). 미디어 샘플을 스레드에 사용할 수 있도록 만든 다음 작업자와 동기화하여 출력 샘플을 작성합니다. 들어오는 미디어 샘플을 대기열로 밀어 넣어 대기중인 스레드가 처리를 위해 그것을 가져온 다음 완료된 작업을 다시 출력 대기열로 푸시합니다.

+0

나는 이해하지만 어떻게 현재 샘플을 처리하고 다운 스트림을 보내기 전에 다음 프레임을 얻을 수 있습니까? 나는'변환 (ref MediaSample 입력, ref MediaSample 출력)'메서드를 가지고 있는데, 메서드에서 리턴 컨트롤을 반환하기 전에 대기열 프레임 couse를 사용할 수 없다. 출력 샘플을 채워야한다. Roman R. 감사합니다. –

+1

'Transform'은 한 번에 한 프레임을 처리하도록 제한합니다. 한 번에 여러 프레임을보다 유연하게 처리해야하는 경우 (예 : MS DTV/DVD 디코더가하는 방식은 필터를 변환하지 않고 일반 기본 필터 클래스에서 상속해야합니다. 변형을 사용하면 별도의 프레임으로 만 병렬 처리를 수행 할 수 있습니다. –