[FFmpeg-devel] [PATCH 05/13] lavc: Remove register mechanism for hwaccels
Philip Langdale
philipl at overt.org
Tue Nov 21 05:58:16 EET 2017
On Sat, 18 Nov 2017 18:47:05 +0000
Mark Thompson <sw at jkqxz.net> wrote:
> 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.
> ---
> configure | 2 +-
> libavcodec/allcodecs.c | 80
> -------------------------------------------------- 2 files changed, 1
> insertion(+), 81 deletions(-)
>
> diff --git a/configure b/configure
> index 8b7b7e164b..1695ae1770 100755
> --- a/configure
> +++ b/configure
> @@ -3509,7 +3509,6 @@ find_things(){
>
> ENCODER_LIST=$(find_things encoder ENC libavcodec/allcodecs.c)
> DECODER_LIST=$(find_things decoder DEC libavcodec/allcodecs.c)
> -HWACCEL_LIST=$(find_things hwaccel HWACCEL libavcodec/allcodecs.c)
> PARSER_LIST=$(find_things parser PARSER libavcodec/allcodecs.c)
> MUXER_LIST=$(find_things muxer _MUX
> libavformat/allformats.c) DEMUXER_LIST=$(find_things demuxer
> DEMUX libavformat/allformats.c) @@ -3525,6 +3524,7 @@
> find_things_extern(){ }
>
> BSF_LIST=$(find_things_extern bsf AVBitStreamFilter
> libavcodec/bitstream_filters.c) +HWACCEL_LIST=$(find_things_extern
> hwaccel AVHWAccel libavcodec/hwaccels.h)
> PROTOCOL_LIST=$(find_things_extern protocol URLProtocol
> libavformat/protocols.c) AVCODEC_COMPONENTS_LIST="
> diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
> index e0adb71951..4a21687b20 100644
> --- a/libavcodec/allcodecs.c
> +++ b/libavcodec/allcodecs.c
> @@ -29,13 +29,6 @@
> #include "avcodec.h"
> #include "version.h"
>
> -#define REGISTER_HWACCEL(X,
> x) \
> -
> { \
> - extern AVHWAccel
> ff_##x##_hwaccel; \
> - if
> (CONFIG_##X##_HWACCEL) \
> -
> av_register_hwaccel(&ff_##x##_hwaccel); \
> - }
> -
> #define REGISTER_ENCODER(X,
> x) \
> { \
> extern AVCodec ff_##x##_encoder; \ @@
> -61,79 +54,6 @@
> static void register_all(void)
> {
> - /* hardware accelerators */
> - REGISTER_HWACCEL(H263_VAAPI, h263_vaapi);
> - REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox);
> - REGISTER_HWACCEL(H264_CUVID, h264_cuvid);
> - REGISTER_HWACCEL(H264_D3D11VA, h264_d3d11va);
> - REGISTER_HWACCEL(H264_D3D11VA2, h264_d3d11va2);
> - REGISTER_HWACCEL(H264_DXVA2, h264_dxva2);
> - REGISTER_HWACCEL(H264_MEDIACODEC, h264_mediacodec);
> - REGISTER_HWACCEL(H264_MMAL, h264_mmal);
> - REGISTER_HWACCEL(H264_NVDEC, h264_nvdec);
> - REGISTER_HWACCEL(H264_QSV, h264_qsv);
> - REGISTER_HWACCEL(H264_VAAPI, h264_vaapi);
> - REGISTER_HWACCEL(H264_VDPAU, h264_vdpau);
> - REGISTER_HWACCEL(H264_VIDEOTOOLBOX, h264_videotoolbox);
> - REGISTER_HWACCEL(HEVC_CUVID, hevc_cuvid);
> - REGISTER_HWACCEL(HEVC_D3D11VA, hevc_d3d11va);
> - REGISTER_HWACCEL(HEVC_D3D11VA2, hevc_d3d11va2);
> - REGISTER_HWACCEL(HEVC_DXVA2, hevc_dxva2);
> - REGISTER_HWACCEL(HEVC_NVDEC, hevc_nvdec);
> - REGISTER_HWACCEL(HEVC_MEDIACODEC, hevc_mediacodec);
> - REGISTER_HWACCEL(HEVC_QSV, hevc_qsv);
> - REGISTER_HWACCEL(HEVC_VAAPI, hevc_vaapi);
> - REGISTER_HWACCEL(HEVC_VDPAU, hevc_vdpau);
> - REGISTER_HWACCEL(HEVC_VIDEOTOOLBOX, hevc_videotoolbox);
> - REGISTER_HWACCEL(MJPEG_CUVID, mjpeg_cuvid);
> - REGISTER_HWACCEL(MPEG1_CUVID, mpeg1_cuvid);
> - REGISTER_HWACCEL(MPEG1_XVMC, mpeg1_xvmc);
> - REGISTER_HWACCEL(MPEG1_VDPAU, mpeg1_vdpau);
> - REGISTER_HWACCEL(MPEG1_VIDEOTOOLBOX, mpeg1_videotoolbox);
> - REGISTER_HWACCEL(MPEG2_CUVID, mpeg2_cuvid);
> - REGISTER_HWACCEL(MPEG2_XVMC, mpeg2_xvmc);
> - REGISTER_HWACCEL(MPEG2_D3D11VA, mpeg2_d3d11va);
> - REGISTER_HWACCEL(MPEG2_D3D11VA2, mpeg2_d3d11va2);
> - REGISTER_HWACCEL(MPEG2_DXVA2, mpeg2_dxva2);
> - REGISTER_HWACCEL(MPEG2_MMAL, mpeg2_mmal);
> - REGISTER_HWACCEL(MPEG2_NVDEC, mpeg2_nvdec);
> - REGISTER_HWACCEL(MPEG2_QSV, mpeg2_qsv);
> - REGISTER_HWACCEL(MPEG2_VAAPI, mpeg2_vaapi);
> - REGISTER_HWACCEL(MPEG2_VDPAU, mpeg2_vdpau);
> - REGISTER_HWACCEL(MPEG2_VIDEOTOOLBOX, mpeg2_videotoolbox);
> - REGISTER_HWACCEL(MPEG2_MEDIACODEC, mpeg2_mediacodec);
> - REGISTER_HWACCEL(MPEG4_CUVID, mpeg4_cuvid);
> - REGISTER_HWACCEL(MPEG4_MEDIACODEC, mpeg4_mediacodec);
> - REGISTER_HWACCEL(MPEG4_MMAL, mpeg4_mmal);
> - REGISTER_HWACCEL(MPEG4_VAAPI, mpeg4_vaapi);
> - REGISTER_HWACCEL(MPEG4_VDPAU, mpeg4_vdpau);
> - REGISTER_HWACCEL(MPEG4_VIDEOTOOLBOX, mpeg4_videotoolbox);
> - REGISTER_HWACCEL(VC1_CUVID, vc1_cuvid);
> - REGISTER_HWACCEL(VC1_D3D11VA, vc1_d3d11va);
> - REGISTER_HWACCEL(VC1_D3D11VA2, vc1_d3d11va2);
> - REGISTER_HWACCEL(VC1_DXVA2, vc1_dxva2);
> - REGISTER_HWACCEL(VC1_NVDEC, vc1_nvdec);
> - REGISTER_HWACCEL(VC1_VAAPI, vc1_vaapi);
> - REGISTER_HWACCEL(VC1_VDPAU, vc1_vdpau);
> - REGISTER_HWACCEL(VC1_MMAL, vc1_mmal);
> - REGISTER_HWACCEL(VC1_QSV, vc1_qsv);
> - REGISTER_HWACCEL(VP8_CUVID, vp8_cuvid);
> - REGISTER_HWACCEL(VP8_MEDIACODEC, vp8_mediacodec);
> - REGISTER_HWACCEL(VP8_QSV, vp8_qsv);
> - REGISTER_HWACCEL(VP9_CUVID, vp9_cuvid);
> - REGISTER_HWACCEL(VP9_D3D11VA, vp9_d3d11va);
> - REGISTER_HWACCEL(VP9_D3D11VA2, vp9_d3d11va2);
> - REGISTER_HWACCEL(VP9_DXVA2, vp9_dxva2);
> - REGISTER_HWACCEL(VP9_MEDIACODEC, vp9_mediacodec);
> - REGISTER_HWACCEL(VP9_NVDEC, vp9_nvdec);
> - REGISTER_HWACCEL(VP9_VAAPI, vp9_vaapi);
> - REGISTER_HWACCEL(WMV3_D3D11VA, wmv3_d3d11va);
> - REGISTER_HWACCEL(WMV3_D3D11VA2, wmv3_d3d11va2);
> - REGISTER_HWACCEL(WMV3_DXVA2, wmv3_dxva2);
> - REGISTER_HWACCEL(WMV3_NVDEC, wmv3_nvdec);
> - REGISTER_HWACCEL(WMV3_VAAPI, wmv3_vaapi);
> - REGISTER_HWACCEL(WMV3_VDPAU, wmv3_vdpau);
> -
> /* video codecs */
> REGISTER_ENCODER(A64MULTI, a64multi);
> REGISTER_ENCODER(A64MULTI5, a64multi5);
LGTM
--phil
More information about the ffmpeg-devel
mailing list