Требования для декодеров
[Функция, связанная с этой страницей 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.
Связанные темы