History

dxva: add support for new dxva2 and d3d11 hwaccel APIs

This also adds support to avconv (which is trivial due to the new hwaccel API being generic enough). The new decoder setup code in dxva2.c is significantly based on work by Steve Lhomme <robux4@gmail.com>, but with heavy changes/rewrites. Merges Libav commit f9e7a2f95a7194a8736cc1416a03a1a0155a3e9f. Also adds untested VP9 support. The check for DXVA2 COBJs is removed. Just update your MinGW to something newer than a 5 year old release.

wm4 committed 9 years ago

Commit 70143a31 parent 5659f7422 files · +885 −476Browse files

Showing the changes to libavcodec/allcodecs.c (1 of 22 files). Show all

Unified · Split

libavcodec/allcodecs.c+6−0
@@ -66,6 +66,7 @@ static void register_all(void) · 65 unmodified lines
66 REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox);66 REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox);
67 REGISTER_HWACCEL(H264_CUVID, h264_cuvid);67 REGISTER_HWACCEL(H264_CUVID, h264_cuvid);
68 REGISTER_HWACCEL(H264_D3D11VA, h264_d3d11va);68 REGISTER_HWACCEL(H264_D3D11VA, h264_d3d11va);
69 REGISTER_HWACCEL(H264_D3D11VA2, h264_d3d11va2);
69 REGISTER_HWACCEL(H264_DXVA2, h264_dxva2);70 REGISTER_HWACCEL(H264_DXVA2, h264_dxva2);
70 REGISTER_HWACCEL(H264_MEDIACODEC, h264_mediacodec);71 REGISTER_HWACCEL(H264_MEDIACODEC, h264_mediacodec);
71 REGISTER_HWACCEL(H264_MMAL, h264_mmal);72 REGISTER_HWACCEL(H264_MMAL, h264_mmal);
@@ -77,6 +78,7 @@ static void register_all(void) · 5 unmodified lines
77 REGISTER_HWACCEL(H264_VIDEOTOOLBOX, h264_videotoolbox);78 REGISTER_HWACCEL(H264_VIDEOTOOLBOX, h264_videotoolbox);
78 REGISTER_HWACCEL(HEVC_CUVID, hevc_cuvid);79 REGISTER_HWACCEL(HEVC_CUVID, hevc_cuvid);
79 REGISTER_HWACCEL(HEVC_D3D11VA, hevc_d3d11va);80 REGISTER_HWACCEL(HEVC_D3D11VA, hevc_d3d11va);
81 REGISTER_HWACCEL(HEVC_D3D11VA2, hevc_d3d11va2);
80 REGISTER_HWACCEL(HEVC_DXVA2, hevc_dxva2);82 REGISTER_HWACCEL(HEVC_DXVA2, hevc_dxva2);
81 REGISTER_HWACCEL(HEVC_MEDIACODEC, hevc_mediacodec);83 REGISTER_HWACCEL(HEVC_MEDIACODEC, hevc_mediacodec);
82 REGISTER_HWACCEL(HEVC_QSV, hevc_qsv);84 REGISTER_HWACCEL(HEVC_QSV, hevc_qsv);
@@ -90,6 +92,7 @@ static void register_all(void) · 7 unmodified lines
90 REGISTER_HWACCEL(MPEG2_CUVID, mpeg2_cuvid);92 REGISTER_HWACCEL(MPEG2_CUVID, mpeg2_cuvid);
91 REGISTER_HWACCEL(MPEG2_XVMC, mpeg2_xvmc);93 REGISTER_HWACCEL(MPEG2_XVMC, mpeg2_xvmc);
92 REGISTER_HWACCEL(MPEG2_D3D11VA, mpeg2_d3d11va);94 REGISTER_HWACCEL(MPEG2_D3D11VA, mpeg2_d3d11va);
95 REGISTER_HWACCEL(MPEG2_D3D11VA2, mpeg2_d3d11va2);
93 REGISTER_HWACCEL(MPEG2_DXVA2, mpeg2_dxva2);96 REGISTER_HWACCEL(MPEG2_DXVA2, mpeg2_dxva2);
94 REGISTER_HWACCEL(MPEG2_MMAL, mpeg2_mmal);97 REGISTER_HWACCEL(MPEG2_MMAL, mpeg2_mmal);
95 REGISTER_HWACCEL(MPEG2_QSV, mpeg2_qsv);98 REGISTER_HWACCEL(MPEG2_QSV, mpeg2_qsv);
@@ -105,6 +108,7 @@ static void register_all(void) · 9 unmodified lines
105 REGISTER_HWACCEL(MPEG4_VIDEOTOOLBOX, mpeg4_videotoolbox);108 REGISTER_HWACCEL(MPEG4_VIDEOTOOLBOX, mpeg4_videotoolbox);
106 REGISTER_HWACCEL(VC1_CUVID, vc1_cuvid);109 REGISTER_HWACCEL(VC1_CUVID, vc1_cuvid);
107 REGISTER_HWACCEL(VC1_D3D11VA, vc1_d3d11va);110 REGISTER_HWACCEL(VC1_D3D11VA, vc1_d3d11va);
111 REGISTER_HWACCEL(VC1_D3D11VA2, vc1_d3d11va2);
108 REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2);112 REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2);
109 REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi);113 REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi);
110 REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau);114 REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau);
@@ -115,10 +119,12 @@ static void register_all(void) · 4 unmodified lines
115 REGISTER_HWACCEL(VP8_QSV, vp8_qsv);119 REGISTER_HWACCEL(VP8_QSV, vp8_qsv);
116 REGISTER_HWACCEL(VP9_CUVID, vp9_cuvid);120 REGISTER_HWACCEL(VP9_CUVID, vp9_cuvid);
117 REGISTER_HWACCEL(VP9_D3D11VA, vp9_d3d11va);121 REGISTER_HWACCEL(VP9_D3D11VA, vp9_d3d11va);
122 REGISTER_HWACCEL(VP9_D3D11VA2, vp9_d3d11va2);
118 REGISTER_HWACCEL(VP9_DXVA2, vp9_dxva2);123 REGISTER_HWACCEL(VP9_DXVA2, vp9_dxva2);
119 REGISTER_HWACCEL(VP9_MEDIACODEC, vp9_mediacodec);124 REGISTER_HWACCEL(VP9_MEDIACODEC, vp9_mediacodec);
120 REGISTER_HWACCEL(VP9_VAAPI, vp9_vaapi);125 REGISTER_HWACCEL(VP9_VAAPI, vp9_vaapi);
121 REGISTER_HWACCEL(WMV3_D3D11VA, wmv3_d3d11va);126 REGISTER_HWACCEL(WMV3_D3D11VA, wmv3_d3d11va);
127 REGISTER_HWACCEL(WMV3_D3D11VA2, wmv3_d3d11va2);
122 REGISTER_HWACCEL(WMV3_DXVA2, wmv3_dxva2);128 REGISTER_HWACCEL(WMV3_DXVA2, wmv3_dxva2);
123 REGISTER_HWACCEL(WMV3_VAAPI, wmv3_vaapi);129 REGISTER_HWACCEL(WMV3_VAAPI, wmv3_vaapi);
124 REGISTER_HWACCEL(WMV3_VDPAU, wmv3_vdpau);130 REGISTER_HWACCEL(WMV3_VDPAU, wmv3_vdpau);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t