2011-11-21 3 views
1

나는 DSPACK 컴포넌트 라이브러리를 사용하여 델파이 6로 작성된 DirectShow 필터를 가지고있다. 현재 필자는 FillBuffer() 호출의 맨 위에 그 목적을 위해 만들어진 sync obj를 사용하여 필터 상태를 잠그고 끝에 (최종적으로는 try/finally 구조 섹션에 있음)이를 릴리스합니다. FillBuffer() 호출은 데이터 생성 작업을 수행하는 스레드에 의해 릴리스 된 WaitForSingleObject() 호출을 통해 새 데이터가 전송 될 때까지 기다리는 동안 차단할 수 있으므로 좋지 않은 생각입니까? 필자는 FillBuffer() 호출이 상대적으로 오랜 시간 동안 차단되면 이것이 내 필터 또는 전체 필터 그래프에 부정적인 영향을 미칠 수 있다고 우려하고 있습니다.DirectShow 푸시 소스 필터 FillBuffer() 호출 중에 필터 상태를 잠글까요?

답변

1

잠금 해제 된 중요한 섹션을 기다려야합니다. 그렇지 않으면 대기중인 작업자 스레드가 제어 스레드를 차단하는 등의 이유로 이벤트가 발생할 수 있습니다. 필터 그래프의 상태를 변경하는 요구가있다.

관련 문제