IAMPushSource 인터페이스(strmif.h)
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
인터페이스는 IAMPushSource
라이브 원본을 렌더링하는 필터 그래프를 동기화합니다. 라이브 소스는 캡처 디바이스 또는 네트워크 브로드캐스트와 같은 데이터를 실시간으로 스트리밍하는 원본입니다.
라이브 데이터를 스트리밍하는 원본 필터는 출력 핀에 이 인터페이스를 노출해야 합니다. 일반적으로 애플리케이션은 이 인터페이스에서 메서드를 호출해서는 안 됩니다. 대신 IAMGraphStreams 인터페이스를 사용합니다.
상속
IAMPushSource 인터페이스는 IAMLatency에서 상속됩니다. IAMPushSource 에는 다음과 같은 유형의 멤버도 있습니다.
메서드
IAMPushSource 인터페이스에는 이러한 메서드가 있습니다.
IAMPushSource::GetMaxStreamOffset GetMaxStreamOffset 메서드는 필터에서 지원할 수 있는 최대 스트림 오프셋을 검색합니다. |
IAMPushSource::GetPushSourceFlags GetPushSourceFlags 메서드는 필터의 동작을 설명하는 플래그 조합을 검색합니다. |
IAMPushSource::GetStreamOffset GetStreamOffset 메서드는 타임스탬프를 생성할 때 필터가 사용하는 오프셋을 검색합니다. |
IAMPushSource::SetMaxStreamOffset SetMaxStreamOffset 메서드는 필터 그래프에서 허용되는 스트림 오프셋을 지정합니다. |
IAMPushSource::SetPushSourceFlags SetPushSourceFlags 메서드는 필터의 동작을 지정하는 플래그를 설정합니다. 현재 애플리케이션은 요청 플래그가 지원되지 않으며 애플리케이션이 필터에서 설정한 플래그를 재정의해서는 안 되므로 이 메서드를 호출해서는 안 됩니다. |
IAMPushSource::SetStreamOffset SetStreamOffset 메서드는 이 필터에서 생성된 타임스탬프의 오프셋을 설정합니다. |
설명
Filter Graph Manager는 이 인터페이스의 메서드를 사용하여 라이브 원본을 렌더링할 때 일반적으로 발생하는 두 가지 문제를 해결합니다.
- 대기 시간: 필터 그래프에 둘 이상의 라이브 원본이 포함된 경우 원본의 대기 시간이 서로 다르기 때문에 동기화되지 않을 수 있습니다. 예를 들어 오디오 캡처가 비디오 캡처보다 대기 시간이 길면 그래프가 차이를 보상하지 않는 한 오디오가 비디오보다 뒤쳐집니다.
- 속도 일치: 렌더러 필터가 라이브 원본에 연결되면 원본 필터의 프로덕션 속도에 맞게 데이터 사용률을 조정해야 합니다. 그렇지 않으면 데이터 간격이 있을 수 있습니다(렌더러가 원본보다 빠르게 실행되는 경우) 데이터가 삭제될 수 있습니다(원본이 더 빠르게 실행되는 경우).
IAMPushSource
하는 각 출력 핀에서 IAMLatency::GetLatency를 호출하고 그래프의 최대 대기 시간을 결정합니다. 그런 다음 최대 대기 시간보다 작은 필터에서 IAMPushSource::SetStreamOffset 을 호출하여 올바른 오프셋으로 생성하는 타임스탬프를 조정합니다.
속도 일치를 수행하려면 필터 그래프가 렌더러 필터가 클록 속도를 원본 필터와 일치시킬 수 있는지 여부를 결정해야 합니다. IAMPushSource::GetPushSourceFlags 메서드는 렌더러가 속도를 원본과 일치시키는 것이 안전한지 여부를 나타내는 플래그 집합을 반환합니다.
이러한 문제는 파일 캡처에 영향을 미치지 않습니다. 파일 작성기 필터는 들어오는 샘플의 타임스탬프를 사용하여 파일을 올바르게 작성합니다. 그런 다음 재생 중에 스트림이 동기화됩니다. 속도 일치에 관해서는 데이터는 항상 가능한 한 빨리 파일에 기록됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | strmif.h(Dshow.h 포함) |