mirror of
https://github.com/librempeg/librempeg
synced 2024-11-22 00:51:37 +00:00
libavutil/hwcontext_{d3d11va, dxva2}: Support Y212/XV36 pixel format
Use DXGI/D3DFMT 16bit pixel format to compatible with 12bit Y212/XV36 since there is no 12bit pixel defined in D3D11/D3D9. Fix cmdline on Windows: $ ffmpeg.exe -hwaccel qsv -init_hw_device qsv:hw,child_device_type= {d3d11, dxva2} -i input_12bit.bin -f null - Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Fei Wang <fei.w.wang@intel.com> Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
71b49b66d6
commit
a013fad39b
@ -104,6 +104,10 @@ static const struct {
|
||||
{ DXGI_FORMAT_P016, AV_PIX_FMT_P012 },
|
||||
{ DXGI_FORMAT_Y216, AV_PIX_FMT_Y216 },
|
||||
{ DXGI_FORMAT_Y416, AV_PIX_FMT_XV48 },
|
||||
// There is no 12bit pixel format defined in DXGI_FORMAT*, use 16bit to compatible
|
||||
// with 12 bit AV_PIX_FMT* formats.
|
||||
{ DXGI_FORMAT_Y216, AV_PIX_FMT_Y212 },
|
||||
{ DXGI_FORMAT_Y416, AV_PIX_FMT_XV36 },
|
||||
// Special opaque formats. The pix_fmt is merely a place holder, as the
|
||||
// opaque format cannot be accessed directly.
|
||||
{ DXGI_FORMAT_420_OPAQUE, AV_PIX_FMT_YUV420P },
|
||||
|
@ -95,6 +95,10 @@ static const struct {
|
||||
{ MKTAG('P', '0', '1', '6'), AV_PIX_FMT_P012 },
|
||||
{ MKTAG('Y', '2', '1', '6'), AV_PIX_FMT_Y216 },
|
||||
{ MKTAG('Y', '4', '1', '6'), AV_PIX_FMT_XV48 },
|
||||
// There is no 12bit pixel format defined in D3DFMT*, use 16bit to compatible
|
||||
// with 12 bit AV_PIX_FMT* formats.
|
||||
{ MKTAG('Y', '2', '1', '6'), AV_PIX_FMT_Y212 },
|
||||
{ MKTAG('Y', '4', '1', '6'), AV_PIX_FMT_XV36 },
|
||||
{ D3DFMT_P8, AV_PIX_FMT_PAL8 },
|
||||
{ D3DFMT_A8R8G8B8, AV_PIX_FMT_BGRA },
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user