비디오 포트 핀
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
하드웨어 비디오 포트가 있는 캡처 디바이스는 Microsoft® DirectX®의 VPE(비디오 포트 확장)를 사용할 수 있습니다. 이 경우 캡처 필터에는 VP(비디오 포트) 핀이 있습니다. VP 핀에서 필터 그래프를 통해 이동하는 비디오 데이터는 없습니다. 대신, 비디오 프레임은 하드웨어에서 생성되고 비디오 메모리로 직접 전송됩니다. VP 핀을 사용하면 제어 메시지를 하드웨어로 보낼 수 있습니다.
애플리케이션이 미리 보기 없이 파일 캡처만 수행하더라도 VP 핀을 연결하는 것이 중요합니다. 핀을 연결되지 않은 상태로 두면 그래프가 올바르게 실행되지 않습니다. 이는 연결할 필요가 없는 미리 보기 핀과 다릅니다.
다양한 DirectShow 비디오 렌더러가 VP 핀에 대한 다양한 지원을 제공합니다.
- 비디오 렌더러: VP 핀을 연결하여 오버레이 믹서 필터에 0을 고정하고 오버레이 믹서 필터를 Video Renderer에 연결합니다.
- VMR-7: VP 핀을 비디오 포트 관리자 필터에 연결하고 Video Port Manager를 VMR-7에 연결합니다.
- VMR-9: Direct3D 9는 비디오 포트를 지원하지 않으므로 디바이스에 VP 핀이 있는 경우 VMR-9를 사용할 수 없습니다. Video Renderer 또는 VMR-7을 사용합니다.
비디오 포트 시나리오의 경우 비디오 포트 관리자 및 VMR-7을 통해 오버레이 믹서 및 비디오 렌더러를 사용하는 것이 좋습니다. 모든 드라이버가 Video Port Manager를 지원하는 것은 아니기 때문입니다. 일반적으로 오버레이 믹서는 비디오 포트에 가장 신뢰할 수 있는 옵션입니다.
ICaptureGraphBuilder2::RenderStream 메서드는 VP 핀이 있는 경우 오버레이 믹서가 자동으로 삽입됩니다. 이 메서드를 사용하지 않고 그래프를 빌드하는 경우 캡처 필터에 비디오 포트 핀을 검사 다음 다이어그램과 같이 오버레이 믹서 필터에 연결해야 합니다.
ICaptureGraphBuilder2::FindPin 메서드를 사용하여 캡처 필터에서 VP 핀을 검색할 수 있습니다.
hr = pBuild->FindPin(
pCap, // Pointer to the capture filter.
PINDIR_OUTPUT, // Look for an output pin.
&PIN_CATEGORY_VIDEOPORT, // Look for a video port pin.
NULL, // Any media type.
FALSE, // Pin can be connected.
0, // Retrieve the first matching pin.
&pVPPin // Receives a pointer to the pin.
);
그래프에 오버레이 믹서가 추가되면 FindPin 을 다시 호출하여 오버레이 믹서에서 핀 0을 찾습니다. 핀 0은 항상 필터의 첫 번째 입력 핀입니다.
pBuild->FindPin(pOvMix, PINDIR_INPUT, NULL, NULL, TRUE, 0, &pOVPin);
IGraphBuilder::Connect를 호출하여 두 핀을 연결합니다.
pGraph->Connect(pVPPin, pOvPin);
그런 다음 오버레이 믹서의 출력 핀을 Video Renderer 필터에 연결합니다. 필터 그래프 관리자에서 IVideoWindow::p ut_AutoShow 및 IVideoWindow::p ut_Visible 메서드를 호출하여 비디오를 숨길 수 있습니다.
TV 튜너의 경우 캡처 필터에 비디오 포트 VBI 핀(PIN_CATEGORY_VIDEOPORT_VBI)이 있을 수도 있습니다. 그렇다면 해당 핀을 VBI Surface 할당자 필터에 연결합니다. 자세한 내용은 선택 자막 보기를 참조하세요.
관련 항목