0
변환 필터가 있습니다. DirectShow에서 동시에 여러 미디어 샘플을 처리 할 수있는 고성능 필터를 구현하는 방법은 무엇입니까?DirectShow 필터에서 샘플의 병렬 처리
변환 필터가 있습니다. DirectShow에서 동시에 여러 미디어 샘플을 처리 할 수있는 고성능 필터를 구현하는 방법은 무엇입니까?DirectShow 필터에서 샘플의 병렬 처리
내장 된 것이 없지만 일반적인 병렬 처리 기술을 적용 할 수 있습니다. 일반적인 아이디어는 미리 스레드 풀을 만드는 것입니다 (전환 일시 중지를 중지하십시오). 미디어 샘플을 스레드에 사용할 수 있도록 만든 다음 작업자와 동기화하여 출력 샘플을 작성합니다. 들어오는 미디어 샘플을 대기열로 밀어 넣어 대기중인 스레드가 처리를 위해 그것을 가져온 다음 완료된 작업을 다시 출력 대기열로 푸시합니다.
나는 이해하지만 어떻게 현재 샘플을 처리하고 다운 스트림을 보내기 전에 다음 프레임을 얻을 수 있습니까? 나는'변환 (ref MediaSample 입력, ref MediaSample 출력)'메서드를 가지고 있는데, 메서드에서 리턴 컨트롤을 반환하기 전에 대기열 프레임 couse를 사용할 수 없다. 출력 샘플을 채워야한다. Roman R. 감사합니다. –
'Transform'은 한 번에 한 프레임을 처리하도록 제한합니다. 한 번에 여러 프레임을보다 유연하게 처리해야하는 경우 (예 : MS DTV/DVD 디코더가하는 방식은 필터를 변환하지 않고 일반 기본 필터 클래스에서 상속해야합니다. 변형을 사용하면 별도의 프레임으로 만 병렬 처리를 수행 할 수 있습니다. –