Поддержка шифрования

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

  • Структуры команд управления макроблоком

  • Блочные структуры остаточной разницы

  • Буферы битового потока

Чтобы декодер узла использовал шифрование, он должен определить, какие типы шифрования поддерживает ускоритель. Сведения о типах шифрования, поддерживаемых акселератором, содержатся в списке GUID типа шифрования, которые предоставляются узлу в виде GUID формата видео ускорителя. Дополнительные сведения о GUID формата видео акселератора см. в документации по Microsoft Windows SDK.

Примечание Все ускорители DirectX VA должны работать без шифрования. Поэтому не требуется объявлять поддержку работы без шифрования, а guid DXVA_NoEncrypt "no encryption" никогда не должен отправляться в список GUID формата видео акселератора.

Узел выбирает тип применяемого протокола шифрования и указывает этот вариант, отправляя guid в ускоритель. В типичном сценарии шифрования перед успешной передачей зашифрованных данных выполняется еще два шага:

  1. Декодеру узла может потребоваться проверка того, что ускоритель авторизован для получения данных. Эту проверку можно обеспечить путем передачи акселератору подписанной структуры на узел, чтобы доказать, что он содержит авторизованную пару открытого и закрытого ключей.

  2. Затем декодер узла отправляет зашифрованный ключ содержимого в ускоритель.

Точное количество шагов для инициализации протокола шифрования зависит от типа используемого шифрования и способа его реализации.

Каждый набор данных, передаваемый между узлом и ускорителем для передачи необходимых параметров инициализации шифрования, должен иметь префикс guid типа протокола шифрования. Этот GUID отличает данные одного типа шифрования от данных другого. Это необходимо, так как один тип шифрования можно использовать для одного буфера DirectX VA, а другой тип шифрования — для другого буфера DirectX VA.

Структура DXVA_EncryptProtocolHeader используется для указания того, что используется протокол шифрования, а также тип используемого шифрования.