Browse code

lavc: Remove register mechanism for hwaccels

There is no longer any need for a list of them at runtime, because
decoders now carry the pointers to their associated hwaccels internally.
The file containing external declarations is now used to make the list
of hwaccels for configure.

Mark Thompson authored on 2017/10/26 08:18:45
Showing 2 changed files
... ...
@@ -3527,7 +3527,6 @@ find_things(){
3527 3527
 
3528 3528
 ENCODER_LIST=$(find_things  encoder  ENC      libavcodec/allcodecs.c)
3529 3529
 DECODER_LIST=$(find_things  decoder  DEC      libavcodec/allcodecs.c)
3530
-HWACCEL_LIST=$(find_things  hwaccel  HWACCEL  libavcodec/allcodecs.c)
3531 3530
 PARSER_LIST=$(find_things   parser   PARSER   libavcodec/allcodecs.c)
3532 3531
 MUXER_LIST=$(find_things    muxer    _MUX     libavformat/allformats.c)
3533 3532
 DEMUXER_LIST=$(find_things  demuxer  DEMUX    libavformat/allformats.c)
... ...
@@ -3543,6 +3542,7 @@ find_things_extern(){
3543 3543
 }
3544 3544
 
3545 3545
 BSF_LIST=$(find_things_extern bsf AVBitStreamFilter libavcodec/bitstream_filters.c)
3546
+HWACCEL_LIST=$(find_things_extern hwaccel AVHWAccel libavcodec/hwaccels.h)
3546 3547
 PROTOCOL_LIST=$(find_things_extern protocol URLProtocol libavformat/protocols.c)
3547 3548
 
3548 3549
 AVCODEC_COMPONENTS_LIST="
... ...
@@ -29,13 +29,6 @@
29 29
 #include "avcodec.h"
30 30
 #include "version.h"
31 31
 
32
-#define REGISTER_HWACCEL(X, x)                                          \
33
-    {                                                                   \
34
-        extern AVHWAccel ff_##x##_hwaccel;                              \
35
-        if (CONFIG_##X##_HWACCEL)                                       \
36
-            av_register_hwaccel(&ff_##x##_hwaccel);                     \
37
-    }
38
-
39 32
 #define REGISTER_ENCODER(X, x)                                          \
40 33
     {                                                                   \
41 34
         extern AVCodec ff_##x##_encoder;                                \
... ...
@@ -61,81 +54,6 @@
61 61
 
62 62
 static void register_all(void)
63 63
 {
64
-    /* hardware accelerators */
65
-    REGISTER_HWACCEL(H263_VAAPI,        h263_vaapi);
66
-    REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox);
67
-    REGISTER_HWACCEL(H264_CUVID,        h264_cuvid);
68
-    REGISTER_HWACCEL(H264_D3D11VA,      h264_d3d11va);
69
-    REGISTER_HWACCEL(H264_D3D11VA2,     h264_d3d11va2);
70
-    REGISTER_HWACCEL(H264_DXVA2,        h264_dxva2);
71
-    REGISTER_HWACCEL(H264_MEDIACODEC,   h264_mediacodec);
72
-    REGISTER_HWACCEL(H264_MMAL,         h264_mmal);
73
-    REGISTER_HWACCEL(H264_NVDEC,        h264_nvdec);
74
-    REGISTER_HWACCEL(H264_QSV,          h264_qsv);
75
-    REGISTER_HWACCEL(H264_VAAPI,        h264_vaapi);
76
-    REGISTER_HWACCEL(H264_VDPAU,        h264_vdpau);
77
-    REGISTER_HWACCEL(H264_VIDEOTOOLBOX, h264_videotoolbox);
78
-    REGISTER_HWACCEL(HEVC_CUVID,        hevc_cuvid);
79
-    REGISTER_HWACCEL(HEVC_D3D11VA,      hevc_d3d11va);
80
-    REGISTER_HWACCEL(HEVC_D3D11VA2,     hevc_d3d11va2);
81
-    REGISTER_HWACCEL(HEVC_DXVA2,        hevc_dxva2);
82
-    REGISTER_HWACCEL(HEVC_NVDEC,        hevc_nvdec);
83
-    REGISTER_HWACCEL(HEVC_MEDIACODEC,   hevc_mediacodec);
84
-    REGISTER_HWACCEL(HEVC_QSV,          hevc_qsv);
85
-    REGISTER_HWACCEL(HEVC_VAAPI,        hevc_vaapi);
86
-    REGISTER_HWACCEL(HEVC_VDPAU,        hevc_vdpau);
87
-    REGISTER_HWACCEL(HEVC_VIDEOTOOLBOX, hevc_videotoolbox);
88
-    REGISTER_HWACCEL(MJPEG_CUVID,       mjpeg_cuvid);
89
-    REGISTER_HWACCEL(MPEG1_CUVID,       mpeg1_cuvid);
90
-    REGISTER_HWACCEL(MPEG1_NVDEC,       mpeg1_nvdec);
91
-    REGISTER_HWACCEL(MPEG1_XVMC,        mpeg1_xvmc);
92
-    REGISTER_HWACCEL(MPEG1_VDPAU,       mpeg1_vdpau);
93
-    REGISTER_HWACCEL(MPEG1_VIDEOTOOLBOX, mpeg1_videotoolbox);
94
-    REGISTER_HWACCEL(MPEG2_CUVID,       mpeg2_cuvid);
95
-    REGISTER_HWACCEL(MPEG2_XVMC,        mpeg2_xvmc);
96
-    REGISTER_HWACCEL(MPEG2_D3D11VA,     mpeg2_d3d11va);
97
-    REGISTER_HWACCEL(MPEG2_D3D11VA2,    mpeg2_d3d11va2);
98
-    REGISTER_HWACCEL(MPEG2_DXVA2,       mpeg2_dxva2);
99
-    REGISTER_HWACCEL(MPEG2_MMAL,        mpeg2_mmal);
100
-    REGISTER_HWACCEL(MPEG2_NVDEC,       mpeg2_nvdec);
101
-    REGISTER_HWACCEL(MPEG2_QSV,         mpeg2_qsv);
102
-    REGISTER_HWACCEL(MPEG2_VAAPI,       mpeg2_vaapi);
103
-    REGISTER_HWACCEL(MPEG2_VDPAU,       mpeg2_vdpau);
104
-    REGISTER_HWACCEL(MPEG2_VIDEOTOOLBOX, mpeg2_videotoolbox);
105
-    REGISTER_HWACCEL(MPEG2_MEDIACODEC,  mpeg2_mediacodec);
106
-    REGISTER_HWACCEL(MPEG4_CUVID,       mpeg4_cuvid);
107
-    REGISTER_HWACCEL(MPEG4_MEDIACODEC,  mpeg4_mediacodec);
108
-    REGISTER_HWACCEL(MPEG4_MMAL,        mpeg4_mmal);
109
-    REGISTER_HWACCEL(MPEG4_NVDEC,       mpeg4_nvdec);
110
-    REGISTER_HWACCEL(MPEG4_VAAPI,       mpeg4_vaapi);
111
-    REGISTER_HWACCEL(MPEG4_VDPAU,       mpeg4_vdpau);
112
-    REGISTER_HWACCEL(MPEG4_VIDEOTOOLBOX, mpeg4_videotoolbox);
113
-    REGISTER_HWACCEL(VC1_CUVID,         vc1_cuvid);
114
-    REGISTER_HWACCEL(VC1_D3D11VA,       vc1_d3d11va);
115
-    REGISTER_HWACCEL(VC1_D3D11VA2,      vc1_d3d11va2);
116
-    REGISTER_HWACCEL(VC1_DXVA2,         vc1_dxva2);
117
-    REGISTER_HWACCEL(VC1_NVDEC,         vc1_nvdec);
118
-    REGISTER_HWACCEL(VC1_VAAPI,         vc1_vaapi);
119
-    REGISTER_HWACCEL(VC1_VDPAU,         vc1_vdpau);
120
-    REGISTER_HWACCEL(VC1_MMAL,          vc1_mmal);
121
-    REGISTER_HWACCEL(VC1_QSV,           vc1_qsv);
122
-    REGISTER_HWACCEL(VP8_CUVID,         vp8_cuvid);
123
-    REGISTER_HWACCEL(VP8_MEDIACODEC,    vp8_mediacodec);
124
-    REGISTER_HWACCEL(VP8_QSV,           vp8_qsv);
125
-    REGISTER_HWACCEL(VP9_CUVID,         vp9_cuvid);
126
-    REGISTER_HWACCEL(VP9_D3D11VA,       vp9_d3d11va);
127
-    REGISTER_HWACCEL(VP9_D3D11VA2,      vp9_d3d11va2);
128
-    REGISTER_HWACCEL(VP9_DXVA2,         vp9_dxva2);
129
-    REGISTER_HWACCEL(VP9_MEDIACODEC,    vp9_mediacodec);
130
-    REGISTER_HWACCEL(VP9_NVDEC,         vp9_nvdec);
131
-    REGISTER_HWACCEL(VP9_VAAPI,         vp9_vaapi);
132
-    REGISTER_HWACCEL(WMV3_D3D11VA,      wmv3_d3d11va);
133
-    REGISTER_HWACCEL(WMV3_D3D11VA2,     wmv3_d3d11va2);
134
-    REGISTER_HWACCEL(WMV3_DXVA2,        wmv3_dxva2);
135
-    REGISTER_HWACCEL(WMV3_NVDEC,        wmv3_nvdec);
136
-    REGISTER_HWACCEL(WMV3_VAAPI,        wmv3_vaapi);
137
-    REGISTER_HWACCEL(WMV3_VDPAU,        wmv3_vdpau);
138
-
139 64
     /* video codecs */
140 65
     REGISTER_ENCODER(A64MULTI,          a64multi);
141 66
     REGISTER_ENCODER(A64MULTI5,         a64multi5);