Partilhar via


Amostras de vídeo

O objeto de amostra de vídeo é uma implementação especializada do interface IMFSample para uso com o Enhanced Video Renderer (EVR). Para criar uma instância desse objeto, chame a função MFCreateVideoSampleFromSurface. A função recebe um ponteiro para uma superfície Direct3D e retorna um ponteiro para a interface IMFSample. Os seguintes tipos de objetos devem alocar amostras usando essa função:

O objeto de exemplo de vídeo implementa as seguintes interfaces:

Se o parâmetro pUnkSurface de MFCreateVideoSampleFromSurface não forNULL, o exemplo de vídeo resultante conterá um único buffer de multimédia que encapsula a superfície Direct3D. Este objeto de buffer tem funcionalidade limitada:

A única maneira de acessar a superfície a partir do buffer é chamar IMFGetService::GetService, usando o identificador de serviço MR_BUFFER_SERVICE.

Se o parâmetro pUnkSurface for NULL, o exemplo de vídeo será criado sem buffers de mídia. Para adicionar um buffer ao exemplo, faça o seguinte:

  1. Crie uma superfície Direct3D.

  2. Crie um buffer de superfície chamando MFCreateDXSurfaceBuffer. Para obter mais informações, consulte DirectX Surface Buffer.

  3. Adicione o buffer ao exemplo chamando IMFSample::AddBuffer.

Use esta abordagem se precisar que a memória de superfície seja acessível por meio da interface IMF2DBuffer.

Buffers de Mídia

Amostras de mídia