Поделиться через


Требования для декодеров

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Декодеры, доставляющие примеры в VMR, должны соблюдать следующие правила:

  • Для каждого видеокадра в VMR должен быть доставлен один кадр подпиктуры. Два кадра должны иметь одинаковые метки времени.
  • Если вложенный шаблон не изменился, используйте флаг AM_GBF_NOTASYNCPOINT в методе IMemAllocator::GetBuffer , чтобы распределитель возвращал буфер, содержащий последний кадр, доставленный в VMR. Просто добавьте новую метку времени в образец и снова добавьте его в VMR. Если вложенная слава пуста, вы по-прежнему должны доставить ее. VMR обнаружит пустой кадр и не будет смешивать его с видео. Этот тест выполняется микросхемой VGA и не влияет на производительность воспроизведения.
  • Все примеры, за исключением потоковой трансляции, должны иметь действительные метки времени начала и остановки. (DVD не является трансляцией.)
  • Метки времени образца мультимедиа должны быть непрерывными
  • Декодер должен идентифицировать себя как vmr для использования построителями графов.
  • Вложенный поток теперь должен содержать внедренные значения альфа-канала для каждого пикселя. Тип поверхности ARGB4444 идеально подходит для подтипов.
  • Не следует предполагать, что шаг вложенной части совпадает с шириной поверхности. Это не всегда относится к VMR.

Сведения об ускорении видео в DirectX