ID3D11VideoContext::D ecoderBeginFrame 메서드(d3d11.h)

비디오 프레임을 디코딩하는 디코딩 작업을 시작합니다.

구문

HRESULT DecoderBeginFrame(
  [in] ID3D11VideoDecoder           *pDecoder,
  [in] ID3D11VideoDecoderOutputView *pView,
  [in] UINT                         ContentKeySize,
  [in] const void                   *pContentKey
);

매개 변수

[in] pDecoder

ID3D11VideoDecoder 인터페이스에 대한 포인터입니다. 이 포인터를 가져오려면 ID3D11VideoDevice::CreateVideoDecoder를 호출합니다.

[in] pView

ID3D11VideoDecoderOutputView 인터페이스에 대한 포인터입니다. 이 인터페이스는 디코딩된 프레임을 받을 리소스에 대해 설명합니다. 이 포인터를 가져오려면 ID3D11VideoDevice::CreateVideoDecoderOutputView를 호출합니다.

[in] ContentKeySize

pContentKey에 지정된 콘텐츠 키의 크기입니다. pContentKey가 NULL인 경우 ContentKeySize를 0으로 설정합니다.

[in] pContentKey

프레임 데이터를 암호화하는 데 사용된 콘텐츠 키에 대한 선택적 포인터입니다. 콘텐츠 키가 사용되지 않은 경우 이 매개 변수를 NULL로 설정합니다. 호출자가 콘텐츠 키를 제공하는 경우 호출자는 세션 키를 사용하여 콘텐츠 키를 암호화해야 합니다.

반환 값

메서드가 성공하면 S_OK를 반환하고, 성공하지 않으면 HRESULT 오류 코드를 반환합니다. 하드웨어 가 사용 중인 경우 D3DERR_WASSTILLDRAWING 또는 E_PENDING 반환되며, 이 경우 디코더가 다시 호출을 시도해야 합니다.

설명

이 메서드가 호출되면 ID3D11VideoContext::SubmitDecoderBuffers 를 호출하여 디코딩 작업을 수행합니다. 모든 디코딩 작업이 실행되면 ID3D11VideoContext::D ecoderEndFrame을 호출합니다.

DecoderBeginFrame에 대한 각 호출에는 DecoderEndFrame에 대한 일치하는 호출이 있어야 합니다. 대부분의 경우 DecoderBeginFrame 호출을 중첩할 수 없지만 VC-1과 같은 일부 코덱은 후처리와 같은 특수 작업에 대해 DecoderBeginFrame 호출을 중첩할 수 있습니다.

콘텐츠 키를 통해 지원되는 암호화 시나리오는 다음과 같습니다.

  • 디코더는 모든 프레임을 암호화하지 않도록 선택할 수 있습니다. 예를 들어 I 프레임만 암호화하고 P/B 프레임을 암호화하지 않을 수 있습니다. 이러한 시나리오에서 디코더는 암호화하지 않는 프레임에 대해 pContentKey = NULL 및 ContentKeySize = 0을 지정합니다.
  • 디코더는 세션 키를 사용하여 압축된 버퍼를 암호화하도록 선택할 수 있습니다. 이 시나리오에서 디코더는 모든 0을 포함하는 콘텐츠 키를 지정합니다.
  • 디코더는 별도의 콘텐츠 키를 사용하여 압축된 버퍼를 암호화하도록 선택할 수 있습니다. 이 시나리오에서 디코더는 ECB가 세션 키를 사용하여 콘텐츠 키를 암호화하고 암호화된 콘텐츠 키를 전달합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 d3d11.h

추가 정보

ID3D11VideoContext