Перечисление D3D12_VIDEO_DECODE_TIER (d3d12video.h)
Указывает уровень декодирования аппаратного декодера видео, который определяет требуемый формат текстур и буферов, определяемых приложением.
Синтаксис
typedef enum D3D12_VIDEO_DECODE_TIER {
D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED,
D3D12_VIDEO_DECODE_TIER_1,
D3D12_VIDEO_DECODE_TIER_2,
D3D12_VIDEO_DECODE_TIER_3
} ;
Константы
D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED Декодирование видео не поддерживается. |
D3D12_VIDEO_DECODE_TIER_1 На уровне 1 аппаратный декодер требует, чтобы приложение выделило ссылочные текстуры в виде массива текстур. Это необходимо для удовлетворения требований к оборудованию, чтобы текстуры были "закрыты" в адресном пространстве, так как оборудование не поддерживает полноразмерный указатель для каждого отдельного буфера рисунков. Вместо этого он имеет один указатель и более ограниченное битовое смещение. Дополнительные сведения о массивах текстур см. в статье Введение в текстуры в Direct3D 11. Если для оборудования декодера требуется уникальный макет памяти, который не поддерживается для операций с другими подсистемами или других операций с видео, декодер может задать флаг конфигурации D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED в структуре D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT при запросе поддержки профиля. Этот флаг указывает, что приложение должно выделять ссылки с флагом D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY . Приложение должно использовать структуру D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS для задания выходных данных только для ссылок, если выходные данные необходимы в качестве будущей опорной рамки. Выходной кадр, передаваемый в ID3D12VideoCommandList::D ecodeFrame , является ресурсом D3D12, который может использоваться другими частями конвейера и не должен иметь флаг D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY. #### Требования уровня 1 для сжатых входных буферов - Все срезы для заданного кадра должны быть расположены по порядку и должны быть смежными, т. е. между срезами не должно быть пробелов. Буферы элементов управления срезом должны указывать параметры смещения и размера, соответствующие этому требованию. — Первый срез должен начинаться с границы в 128 байтов. Смещение, заданное в структуре D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM , должно быть кратно 128 байтам. — Декодирование поддерживается из буферов, выделенных с помощью D3D12_MEMORY_POOL_L0. Это всегда системная память, но буфер D3D12. — Декодирование поддерживается из буферов, выделенных с помощью D3D12_MEMORY_POOL_L1, пула по умолчанию, включая буферы, выделенные D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE. |
D3D12_VIDEO_DECODE_TIER_2 На уровне декодирования 2 на текстуры можно ссылаться как на массив текстур или как на массив отдельных двухd-ресурсов текстуры (каждый ресурс с размером массива 1). Это более гибкое решение для вызывающего объекта и важно в сценариях, где разрешение часто меняется, например при потоковой передаче видео, так как массив текстур можно выделить и освободить только как единое целое, но отдельные двухмерные ресурсы текстуры можно выделить и освободить по отдельности. Если для декодирования оборудования требуется уникальный формат облицовки, который не поддерживается для операций с другими модулями или других операций с видео, декодер может задать флаг конфигурации D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED в структуре D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT при запросе поддержки профиля. Этот флаг указывает, что приложение должно выделять ссылки с флагом D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY . Приложение должно использовать структуру D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS для задания выходных данных только в том случае, если выходные данные требуются в качестве будущей опорной рамки. Выходной кадр, передаваемый в ID3D12VideoCommandList::D ecodeFrame , является ресурсом D3D12, который может использоваться другими частями конвейера и не должен иметь флаг D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY. #### Требования уровня 2 для сжатых входных буферов Эти требования идентичны требованиям уровня 1. - Все срезы для заданного кадра должны быть расположены по порядку и должны быть смежными, т. е. между срезами не должно быть пробелов. Буферы элементов управления срезом должны указывать параметры смещения и размера, соответствующие этому требованию. — Первый срез должен начинаться с границы в 128 байтов. Смещение, заданное в структуре D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM , должно быть кратно 128 байтам. — Декодирование поддерживается из буферов, выделенных с помощью D3D12_MEMORY_POOL_L0. Это всегда системная память, но буфер D3D12. — Декодирование поддерживается из буферов, выделенных с помощью D3D12_MEMORY_POOL_L1, пула по умолчанию, включая буферы, выделенные D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE. - |
D3D12_VIDEO_DECODE_TIER_3 Данное поле зарезервировано. |
Требования
Требование | Значение |
---|---|
Заголовок | d3d12video.h |