Requisitos para decodificadores

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Os decodificadores que fornecem exemplos para a VMR devem observar as seguintes regras:

  • Deve haver um quadro de subpictura entregue à VMR para cada quadro de vídeo. Os dois quadros devem ter os mesmos carimbos de data/hora.
  • Se a subpictura não tiver sido alterada, use o sinalizador AM_GBF_NOTASYNCPOINT no método IMemAllocator::GetBuffer para forçar o alocador a retornar um buffer que contém o último quadro entregue à VMR. Basta colocar um novo carimbo de data/hora no exemplo e entregá-lo à VMR novamente. Se a fama da subpictura estiver em branco, você ainda deverá entregá-la. A VMR detectará o quadro vazio e não o misturará com o vídeo. Esse teste é executado pelo chip VGA e não afeta o desempenho da reprodução.
  • Todos os exemplos, exceto para transmissões ao vivo, devem ter carimbos de data/hora de início e parada válidos anexados. (DVD não é uma transmissão ao vivo.)
  • Os carimbos de data/hora de exemplo de mídia devem ser contíguos
  • O decodificador deve se identificar como compatível com VMR para uso por construtores de grafo.
  • O fluxo de subpictura agora deve conter valores alfa inseridos por pixel. O tipo de superfície ARGB4444 é ideal para subpictures.
  • Não suponha que o passo da subpictura seja o mesmo que a largura da superfície. Nem sempre é o caso da VMR.

Sobre a aceleração de vídeo do DirectX