use crate::DecodeError;
use windows::Win32::Graphics::Dxgi::Common::DXGI_FORMAT_NV12;
use windows::Win32::Media::MediaFoundation::{
D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT, D3D12_VIDEO_DECODE_PROFILE_H264, ID3D12VideoDecoder,
ID3D12VideoDecoderHeap, ID3D12VideoDevice,
};
use super::setup;
pub(super) fn check_support(
video_device: &ID3D12VideoDevice,
width: u32,
height: u32,
) -> Result<D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT, DecodeError> {
setup::check_decode_support(
video_device,
D3D12_VIDEO_DECODE_PROFILE_H264,
width,
height,
DXGI_FORMAT_NV12,
)
}
pub(super) fn create_decoder(
video_device: &ID3D12VideoDevice,
width: u32,
height: u32,
max_dpb_slots: u32,
) -> Result<(ID3D12VideoDecoder, ID3D12VideoDecoderHeap), DecodeError> {
setup::create_decoder(
video_device,
D3D12_VIDEO_DECODE_PROFILE_H264,
width,
height,
DXGI_FORMAT_NV12,
max_dpb_slots,
)
}