2002-06-11 16:41:41 +03:00
|
|
|
/*
|
2010-06-30 18:38:06 +03:00
|
|
|
* Provide registration of all codecs, parsers and bitstream filters for libavcodec.
|
2009-01-19 17:46:40 +02:00
|
|
|
* Copyright (c) 2002 Fabrice Bellard
|
2002-06-11 16:41:41 +03:00
|
|
|
*
|
2006-10-07 18:30:46 +03:00
|
|
|
* This file is part of FFmpeg.
|
|
|
|
*
|
|
|
|
* FFmpeg is free software; you can redistribute it and/or
|
2002-06-11 16:41:41 +03:00
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
2006-10-07 18:30:46 +03:00
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
2002-06-11 16:41:41 +03:00
|
|
|
*
|
2006-10-07 18:30:46 +03:00
|
|
|
* FFmpeg is distributed in the hope that it will be useful,
|
2002-06-11 16:41:41 +03:00
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
2006-10-07 18:30:46 +03:00
|
|
|
* License along with FFmpeg; if not, write to the Free Software
|
2006-01-13 00:43:26 +02:00
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
2002-06-11 16:41:41 +03:00
|
|
|
*/
|
2003-03-06 13:32:04 +02:00
|
|
|
|
|
|
|
/**
|
2010-04-20 17:45:34 +03:00
|
|
|
* @file
|
2010-06-30 18:38:06 +03:00
|
|
|
* Provide registration of all codecs, parsers and bitstream filters for libavcodec.
|
2003-03-06 13:32:04 +02:00
|
|
|
*/
|
|
|
|
|
2021-06-14 18:03:55 +02:00
|
|
|
#include <stdint.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
2012-08-06 16:49:32 +03:00
|
|
|
#include "config.h"
|
2022-02-23 14:56:49 +02:00
|
|
|
#include "config_components.h"
|
2017-03-07 10:51:12 +02:00
|
|
|
#include "libavutil/thread.h"
|
2021-06-14 18:03:55 +02:00
|
|
|
#include "codec.h"
|
|
|
|
#include "codec_id.h"
|
2022-03-16 22:09:54 +02:00
|
|
|
#include "codec_internal.h"
|
2002-06-11 16:41:41 +03:00
|
|
|
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_a64multi_encoder;
|
|
|
|
extern const FFCodec ff_a64multi5_encoder;
|
|
|
|
extern const FFCodec ff_aasc_decoder;
|
|
|
|
extern const FFCodec ff_aic_decoder;
|
|
|
|
extern const FFCodec ff_alias_pix_encoder;
|
|
|
|
extern const FFCodec ff_alias_pix_decoder;
|
|
|
|
extern const FFCodec ff_agm_decoder;
|
|
|
|
extern const FFCodec ff_amv_encoder;
|
|
|
|
extern const FFCodec ff_amv_decoder;
|
|
|
|
extern const FFCodec ff_anm_decoder;
|
|
|
|
extern const FFCodec ff_ansi_decoder;
|
|
|
|
extern const FFCodec ff_apng_encoder;
|
|
|
|
extern const FFCodec ff_apng_decoder;
|
|
|
|
extern const FFCodec ff_arbc_decoder;
|
|
|
|
extern const FFCodec ff_argo_decoder;
|
|
|
|
extern const FFCodec ff_asv1_encoder;
|
|
|
|
extern const FFCodec ff_asv1_decoder;
|
|
|
|
extern const FFCodec ff_asv2_encoder;
|
|
|
|
extern const FFCodec ff_asv2_decoder;
|
|
|
|
extern const FFCodec ff_aura_decoder;
|
|
|
|
extern const FFCodec ff_aura2_decoder;
|
|
|
|
extern const FFCodec ff_avrp_encoder;
|
|
|
|
extern const FFCodec ff_avrp_decoder;
|
|
|
|
extern const FFCodec ff_avrn_decoder;
|
|
|
|
extern const FFCodec ff_avs_decoder;
|
|
|
|
extern const FFCodec ff_avui_encoder;
|
|
|
|
extern const FFCodec ff_avui_decoder;
|
2022-08-07 19:50:18 +02:00
|
|
|
#if FF_API_AYUV_CODECID
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_ayuv_encoder;
|
|
|
|
extern const FFCodec ff_ayuv_decoder;
|
2022-08-07 19:50:18 +02:00
|
|
|
#endif
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_bethsoftvid_decoder;
|
|
|
|
extern const FFCodec ff_bfi_decoder;
|
|
|
|
extern const FFCodec ff_bink_decoder;
|
|
|
|
extern const FFCodec ff_bitpacked_decoder;
|
|
|
|
extern const FFCodec ff_bitpacked_encoder;
|
|
|
|
extern const FFCodec ff_bmp_encoder;
|
|
|
|
extern const FFCodec ff_bmp_decoder;
|
|
|
|
extern const FFCodec ff_bmv_video_decoder;
|
|
|
|
extern const FFCodec ff_brender_pix_decoder;
|
|
|
|
extern const FFCodec ff_c93_decoder;
|
|
|
|
extern const FFCodec ff_cavs_decoder;
|
|
|
|
extern const FFCodec ff_cdgraphics_decoder;
|
|
|
|
extern const FFCodec ff_cdtoons_decoder;
|
|
|
|
extern const FFCodec ff_cdxl_decoder;
|
|
|
|
extern const FFCodec ff_cfhd_encoder;
|
|
|
|
extern const FFCodec ff_cfhd_decoder;
|
|
|
|
extern const FFCodec ff_cinepak_encoder;
|
|
|
|
extern const FFCodec ff_cinepak_decoder;
|
|
|
|
extern const FFCodec ff_clearvideo_decoder;
|
|
|
|
extern const FFCodec ff_cljr_encoder;
|
|
|
|
extern const FFCodec ff_cljr_decoder;
|
|
|
|
extern const FFCodec ff_cllc_decoder;
|
|
|
|
extern const FFCodec ff_comfortnoise_encoder;
|
|
|
|
extern const FFCodec ff_comfortnoise_decoder;
|
|
|
|
extern const FFCodec ff_cpia_decoder;
|
|
|
|
extern const FFCodec ff_cri_decoder;
|
|
|
|
extern const FFCodec ff_cscd_decoder;
|
|
|
|
extern const FFCodec ff_cyuv_decoder;
|
|
|
|
extern const FFCodec ff_dds_decoder;
|
|
|
|
extern const FFCodec ff_dfa_decoder;
|
|
|
|
extern const FFCodec ff_dirac_decoder;
|
|
|
|
extern const FFCodec ff_dnxhd_encoder;
|
|
|
|
extern const FFCodec ff_dnxhd_decoder;
|
|
|
|
extern const FFCodec ff_dpx_encoder;
|
|
|
|
extern const FFCodec ff_dpx_decoder;
|
|
|
|
extern const FFCodec ff_dsicinvideo_decoder;
|
|
|
|
extern const FFCodec ff_dvaudio_decoder;
|
|
|
|
extern const FFCodec ff_dvvideo_encoder;
|
|
|
|
extern const FFCodec ff_dvvideo_decoder;
|
|
|
|
extern const FFCodec ff_dxa_decoder;
|
|
|
|
extern const FFCodec ff_dxtory_decoder;
|
|
|
|
extern const FFCodec ff_dxv_decoder;
|
|
|
|
extern const FFCodec ff_eacmv_decoder;
|
|
|
|
extern const FFCodec ff_eamad_decoder;
|
|
|
|
extern const FFCodec ff_eatgq_decoder;
|
|
|
|
extern const FFCodec ff_eatgv_decoder;
|
|
|
|
extern const FFCodec ff_eatqi_decoder;
|
|
|
|
extern const FFCodec ff_eightbps_decoder;
|
|
|
|
extern const FFCodec ff_eightsvx_exp_decoder;
|
|
|
|
extern const FFCodec ff_eightsvx_fib_decoder;
|
|
|
|
extern const FFCodec ff_escape124_decoder;
|
|
|
|
extern const FFCodec ff_escape130_decoder;
|
|
|
|
extern const FFCodec ff_exr_encoder;
|
|
|
|
extern const FFCodec ff_exr_decoder;
|
|
|
|
extern const FFCodec ff_ffv1_encoder;
|
|
|
|
extern const FFCodec ff_ffv1_decoder;
|
|
|
|
extern const FFCodec ff_ffvhuff_encoder;
|
|
|
|
extern const FFCodec ff_ffvhuff_decoder;
|
|
|
|
extern const FFCodec ff_fic_decoder;
|
|
|
|
extern const FFCodec ff_fits_encoder;
|
|
|
|
extern const FFCodec ff_fits_decoder;
|
|
|
|
extern const FFCodec ff_flashsv_encoder;
|
|
|
|
extern const FFCodec ff_flashsv_decoder;
|
|
|
|
extern const FFCodec ff_flashsv2_encoder;
|
|
|
|
extern const FFCodec ff_flashsv2_decoder;
|
|
|
|
extern const FFCodec ff_flic_decoder;
|
|
|
|
extern const FFCodec ff_flv_encoder;
|
|
|
|
extern const FFCodec ff_flv_decoder;
|
|
|
|
extern const FFCodec ff_fmvc_decoder;
|
|
|
|
extern const FFCodec ff_fourxm_decoder;
|
|
|
|
extern const FFCodec ff_fraps_decoder;
|
|
|
|
extern const FFCodec ff_frwu_decoder;
|
|
|
|
extern const FFCodec ff_g2m_decoder;
|
|
|
|
extern const FFCodec ff_gdv_decoder;
|
|
|
|
extern const FFCodec ff_gem_decoder;
|
|
|
|
extern const FFCodec ff_gif_encoder;
|
|
|
|
extern const FFCodec ff_gif_decoder;
|
|
|
|
extern const FFCodec ff_h261_encoder;
|
|
|
|
extern const FFCodec ff_h261_decoder;
|
|
|
|
extern const FFCodec ff_h263_encoder;
|
|
|
|
extern const FFCodec ff_h263_decoder;
|
|
|
|
extern const FFCodec ff_h263i_decoder;
|
|
|
|
extern const FFCodec ff_h263p_encoder;
|
|
|
|
extern const FFCodec ff_h263p_decoder;
|
|
|
|
extern const FFCodec ff_h263_v4l2m2m_decoder;
|
|
|
|
extern const FFCodec ff_h264_decoder;
|
|
|
|
extern const FFCodec ff_h264_crystalhd_decoder;
|
|
|
|
extern const FFCodec ff_h264_v4l2m2m_decoder;
|
|
|
|
extern const FFCodec ff_h264_mediacodec_decoder;
|
2022-10-17 18:23:08 +02:00
|
|
|
extern const FFCodec ff_h264_mediacodec_encoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_h264_mmal_decoder;
|
|
|
|
extern const FFCodec ff_h264_qsv_decoder;
|
|
|
|
extern const FFCodec ff_h264_rkmpp_decoder;
|
|
|
|
extern const FFCodec ff_hap_encoder;
|
|
|
|
extern const FFCodec ff_hap_decoder;
|
|
|
|
extern const FFCodec ff_hevc_decoder;
|
|
|
|
extern const FFCodec ff_hevc_qsv_decoder;
|
|
|
|
extern const FFCodec ff_hevc_rkmpp_decoder;
|
|
|
|
extern const FFCodec ff_hevc_v4l2m2m_decoder;
|
|
|
|
extern const FFCodec ff_hnm4_video_decoder;
|
|
|
|
extern const FFCodec ff_hq_hqa_decoder;
|
|
|
|
extern const FFCodec ff_hqx_decoder;
|
|
|
|
extern const FFCodec ff_huffyuv_encoder;
|
|
|
|
extern const FFCodec ff_huffyuv_decoder;
|
|
|
|
extern const FFCodec ff_hymt_decoder;
|
|
|
|
extern const FFCodec ff_idcin_decoder;
|
|
|
|
extern const FFCodec ff_iff_ilbm_decoder;
|
|
|
|
extern const FFCodec ff_imm4_decoder;
|
|
|
|
extern const FFCodec ff_imm5_decoder;
|
|
|
|
extern const FFCodec ff_indeo2_decoder;
|
|
|
|
extern const FFCodec ff_indeo3_decoder;
|
|
|
|
extern const FFCodec ff_indeo4_decoder;
|
|
|
|
extern const FFCodec ff_indeo5_decoder;
|
|
|
|
extern const FFCodec ff_interplay_video_decoder;
|
|
|
|
extern const FFCodec ff_ipu_decoder;
|
|
|
|
extern const FFCodec ff_jpeg2000_encoder;
|
|
|
|
extern const FFCodec ff_jpeg2000_decoder;
|
|
|
|
extern const FFCodec ff_jpegls_encoder;
|
|
|
|
extern const FFCodec ff_jpegls_decoder;
|
|
|
|
extern const FFCodec ff_jv_decoder;
|
|
|
|
extern const FFCodec ff_kgv1_decoder;
|
|
|
|
extern const FFCodec ff_kmvc_decoder;
|
|
|
|
extern const FFCodec ff_lagarith_decoder;
|
2022-10-14 04:19:39 +02:00
|
|
|
extern const FFCodec ff_lead_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_ljpeg_encoder;
|
|
|
|
extern const FFCodec ff_loco_decoder;
|
|
|
|
extern const FFCodec ff_lscr_decoder;
|
|
|
|
extern const FFCodec ff_m101_decoder;
|
|
|
|
extern const FFCodec ff_magicyuv_encoder;
|
|
|
|
extern const FFCodec ff_magicyuv_decoder;
|
|
|
|
extern const FFCodec ff_mdec_decoder;
|
2022-09-21 18:22:33 +02:00
|
|
|
extern const FFCodec ff_media100_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_mimic_decoder;
|
|
|
|
extern const FFCodec ff_mjpeg_encoder;
|
|
|
|
extern const FFCodec ff_mjpeg_decoder;
|
|
|
|
extern const FFCodec ff_mjpegb_decoder;
|
|
|
|
extern const FFCodec ff_mmvideo_decoder;
|
|
|
|
extern const FFCodec ff_mobiclip_decoder;
|
|
|
|
extern const FFCodec ff_motionpixels_decoder;
|
|
|
|
extern const FFCodec ff_mpeg1video_encoder;
|
|
|
|
extern const FFCodec ff_mpeg1video_decoder;
|
|
|
|
extern const FFCodec ff_mpeg2video_encoder;
|
|
|
|
extern const FFCodec ff_mpeg2video_decoder;
|
|
|
|
extern const FFCodec ff_mpeg4_encoder;
|
|
|
|
extern const FFCodec ff_mpeg4_decoder;
|
|
|
|
extern const FFCodec ff_mpeg4_crystalhd_decoder;
|
|
|
|
extern const FFCodec ff_mpeg4_v4l2m2m_decoder;
|
|
|
|
extern const FFCodec ff_mpeg4_mmal_decoder;
|
|
|
|
extern const FFCodec ff_mpegvideo_decoder;
|
|
|
|
extern const FFCodec ff_mpeg1_v4l2m2m_decoder;
|
|
|
|
extern const FFCodec ff_mpeg2_mmal_decoder;
|
|
|
|
extern const FFCodec ff_mpeg2_crystalhd_decoder;
|
|
|
|
extern const FFCodec ff_mpeg2_v4l2m2m_decoder;
|
|
|
|
extern const FFCodec ff_mpeg2_qsv_decoder;
|
|
|
|
extern const FFCodec ff_mpeg2_mediacodec_decoder;
|
|
|
|
extern const FFCodec ff_msa1_decoder;
|
|
|
|
extern const FFCodec ff_mscc_decoder;
|
|
|
|
extern const FFCodec ff_msmpeg4v1_decoder;
|
|
|
|
extern const FFCodec ff_msmpeg4v2_encoder;
|
|
|
|
extern const FFCodec ff_msmpeg4v2_decoder;
|
|
|
|
extern const FFCodec ff_msmpeg4v3_encoder;
|
|
|
|
extern const FFCodec ff_msmpeg4v3_decoder;
|
|
|
|
extern const FFCodec ff_msmpeg4_crystalhd_decoder;
|
|
|
|
extern const FFCodec ff_msp2_decoder;
|
2023-06-08 11:57:53 +02:00
|
|
|
extern const FFCodec ff_msrle_encoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_msrle_decoder;
|
|
|
|
extern const FFCodec ff_mss1_decoder;
|
|
|
|
extern const FFCodec ff_mss2_decoder;
|
|
|
|
extern const FFCodec ff_msvideo1_encoder;
|
|
|
|
extern const FFCodec ff_msvideo1_decoder;
|
|
|
|
extern const FFCodec ff_mszh_decoder;
|
|
|
|
extern const FFCodec ff_mts2_decoder;
|
|
|
|
extern const FFCodec ff_mv30_decoder;
|
|
|
|
extern const FFCodec ff_mvc1_decoder;
|
|
|
|
extern const FFCodec ff_mvc2_decoder;
|
|
|
|
extern const FFCodec ff_mvdv_decoder;
|
|
|
|
extern const FFCodec ff_mvha_decoder;
|
|
|
|
extern const FFCodec ff_mwsc_decoder;
|
|
|
|
extern const FFCodec ff_mxpeg_decoder;
|
|
|
|
extern const FFCodec ff_notchlc_decoder;
|
|
|
|
extern const FFCodec ff_nuv_decoder;
|
|
|
|
extern const FFCodec ff_paf_video_decoder;
|
|
|
|
extern const FFCodec ff_pam_encoder;
|
|
|
|
extern const FFCodec ff_pam_decoder;
|
|
|
|
extern const FFCodec ff_pbm_encoder;
|
|
|
|
extern const FFCodec ff_pbm_decoder;
|
|
|
|
extern const FFCodec ff_pcx_encoder;
|
|
|
|
extern const FFCodec ff_pcx_decoder;
|
2023-04-17 19:19:42 +02:00
|
|
|
extern const FFCodec ff_pdv_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_pfm_encoder;
|
|
|
|
extern const FFCodec ff_pfm_decoder;
|
|
|
|
extern const FFCodec ff_pgm_encoder;
|
|
|
|
extern const FFCodec ff_pgm_decoder;
|
|
|
|
extern const FFCodec ff_pgmyuv_encoder;
|
|
|
|
extern const FFCodec ff_pgmyuv_decoder;
|
|
|
|
extern const FFCodec ff_pgx_decoder;
|
2022-07-01 10:06:15 +02:00
|
|
|
extern const FFCodec ff_phm_encoder;
|
|
|
|
extern const FFCodec ff_phm_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_photocd_decoder;
|
|
|
|
extern const FFCodec ff_pictor_decoder;
|
|
|
|
extern const FFCodec ff_pixlet_decoder;
|
|
|
|
extern const FFCodec ff_png_encoder;
|
|
|
|
extern const FFCodec ff_png_decoder;
|
|
|
|
extern const FFCodec ff_ppm_encoder;
|
|
|
|
extern const FFCodec ff_ppm_decoder;
|
|
|
|
extern const FFCodec ff_prores_encoder;
|
|
|
|
extern const FFCodec ff_prores_decoder;
|
|
|
|
extern const FFCodec ff_prores_aw_encoder;
|
|
|
|
extern const FFCodec ff_prores_ks_encoder;
|
|
|
|
extern const FFCodec ff_prosumer_decoder;
|
|
|
|
extern const FFCodec ff_psd_decoder;
|
|
|
|
extern const FFCodec ff_ptx_decoder;
|
|
|
|
extern const FFCodec ff_qdraw_decoder;
|
2022-05-31 12:33:54 +02:00
|
|
|
extern const FFCodec ff_qoi_encoder;
|
|
|
|
extern const FFCodec ff_qoi_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_qpeg_decoder;
|
|
|
|
extern const FFCodec ff_qtrle_encoder;
|
|
|
|
extern const FFCodec ff_qtrle_decoder;
|
|
|
|
extern const FFCodec ff_r10k_encoder;
|
|
|
|
extern const FFCodec ff_r10k_decoder;
|
|
|
|
extern const FFCodec ff_r210_encoder;
|
|
|
|
extern const FFCodec ff_r210_decoder;
|
|
|
|
extern const FFCodec ff_rasc_decoder;
|
|
|
|
extern const FFCodec ff_rawvideo_encoder;
|
|
|
|
extern const FFCodec ff_rawvideo_decoder;
|
2023-01-31 22:03:38 +02:00
|
|
|
extern const FFCodec ff_rka_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_rl2_decoder;
|
|
|
|
extern const FFCodec ff_roq_encoder;
|
|
|
|
extern const FFCodec ff_roq_decoder;
|
|
|
|
extern const FFCodec ff_rpza_encoder;
|
|
|
|
extern const FFCodec ff_rpza_decoder;
|
|
|
|
extern const FFCodec ff_rscc_decoder;
|
2023-06-03 12:29:25 +02:00
|
|
|
extern const FFCodec ff_rtv1_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_rv10_encoder;
|
|
|
|
extern const FFCodec ff_rv10_decoder;
|
|
|
|
extern const FFCodec ff_rv20_encoder;
|
|
|
|
extern const FFCodec ff_rv20_decoder;
|
|
|
|
extern const FFCodec ff_rv30_decoder;
|
|
|
|
extern const FFCodec ff_rv40_decoder;
|
|
|
|
extern const FFCodec ff_s302m_encoder;
|
|
|
|
extern const FFCodec ff_s302m_decoder;
|
|
|
|
extern const FFCodec ff_sanm_decoder;
|
|
|
|
extern const FFCodec ff_scpr_decoder;
|
|
|
|
extern const FFCodec ff_screenpresso_decoder;
|
|
|
|
extern const FFCodec ff_sga_decoder;
|
|
|
|
extern const FFCodec ff_sgi_encoder;
|
|
|
|
extern const FFCodec ff_sgi_decoder;
|
|
|
|
extern const FFCodec ff_sgirle_decoder;
|
|
|
|
extern const FFCodec ff_sheervideo_decoder;
|
|
|
|
extern const FFCodec ff_simbiosis_imx_decoder;
|
|
|
|
extern const FFCodec ff_smacker_decoder;
|
|
|
|
extern const FFCodec ff_smc_encoder;
|
|
|
|
extern const FFCodec ff_smc_decoder;
|
|
|
|
extern const FFCodec ff_smvjpeg_decoder;
|
|
|
|
extern const FFCodec ff_snow_encoder;
|
|
|
|
extern const FFCodec ff_snow_decoder;
|
|
|
|
extern const FFCodec ff_sp5x_decoder;
|
|
|
|
extern const FFCodec ff_speedhq_decoder;
|
|
|
|
extern const FFCodec ff_speedhq_encoder;
|
|
|
|
extern const FFCodec ff_speex_decoder;
|
|
|
|
extern const FFCodec ff_srgc_decoder;
|
|
|
|
extern const FFCodec ff_sunrast_encoder;
|
|
|
|
extern const FFCodec ff_sunrast_decoder;
|
|
|
|
extern const FFCodec ff_svq1_encoder;
|
|
|
|
extern const FFCodec ff_svq1_decoder;
|
|
|
|
extern const FFCodec ff_svq3_decoder;
|
|
|
|
extern const FFCodec ff_targa_encoder;
|
|
|
|
extern const FFCodec ff_targa_decoder;
|
|
|
|
extern const FFCodec ff_targa_y216_decoder;
|
|
|
|
extern const FFCodec ff_tdsc_decoder;
|
|
|
|
extern const FFCodec ff_theora_decoder;
|
|
|
|
extern const FFCodec ff_thp_decoder;
|
|
|
|
extern const FFCodec ff_tiertexseqvideo_decoder;
|
|
|
|
extern const FFCodec ff_tiff_encoder;
|
|
|
|
extern const FFCodec ff_tiff_decoder;
|
|
|
|
extern const FFCodec ff_tmv_decoder;
|
|
|
|
extern const FFCodec ff_truemotion1_decoder;
|
|
|
|
extern const FFCodec ff_truemotion2_decoder;
|
|
|
|
extern const FFCodec ff_truemotion2rt_decoder;
|
|
|
|
extern const FFCodec ff_tscc_decoder;
|
|
|
|
extern const FFCodec ff_tscc2_decoder;
|
|
|
|
extern const FFCodec ff_txd_decoder;
|
|
|
|
extern const FFCodec ff_ulti_decoder;
|
|
|
|
extern const FFCodec ff_utvideo_encoder;
|
|
|
|
extern const FFCodec ff_utvideo_decoder;
|
|
|
|
extern const FFCodec ff_v210_encoder;
|
|
|
|
extern const FFCodec ff_v210_decoder;
|
|
|
|
extern const FFCodec ff_v210x_decoder;
|
|
|
|
extern const FFCodec ff_v308_encoder;
|
|
|
|
extern const FFCodec ff_v308_decoder;
|
|
|
|
extern const FFCodec ff_v408_encoder;
|
|
|
|
extern const FFCodec ff_v408_decoder;
|
|
|
|
extern const FFCodec ff_v410_encoder;
|
|
|
|
extern const FFCodec ff_v410_decoder;
|
|
|
|
extern const FFCodec ff_vb_decoder;
|
2022-03-22 03:29:29 +02:00
|
|
|
extern const FFCodec ff_vbn_encoder;
|
2022-03-19 02:22:23 +02:00
|
|
|
extern const FFCodec ff_vbn_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_vble_decoder;
|
|
|
|
extern const FFCodec ff_vc1_decoder;
|
|
|
|
extern const FFCodec ff_vc1_crystalhd_decoder;
|
|
|
|
extern const FFCodec ff_vc1image_decoder;
|
|
|
|
extern const FFCodec ff_vc1_mmal_decoder;
|
|
|
|
extern const FFCodec ff_vc1_qsv_decoder;
|
|
|
|
extern const FFCodec ff_vc1_v4l2m2m_decoder;
|
|
|
|
extern const FFCodec ff_vc2_encoder;
|
|
|
|
extern const FFCodec ff_vcr1_decoder;
|
|
|
|
extern const FFCodec ff_vmdvideo_decoder;
|
2023-06-04 20:30:59 +02:00
|
|
|
extern const FFCodec ff_vmix_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_vmnc_decoder;
|
|
|
|
extern const FFCodec ff_vp3_decoder;
|
|
|
|
extern const FFCodec ff_vp4_decoder;
|
|
|
|
extern const FFCodec ff_vp5_decoder;
|
|
|
|
extern const FFCodec ff_vp6_decoder;
|
|
|
|
extern const FFCodec ff_vp6a_decoder;
|
|
|
|
extern const FFCodec ff_vp6f_decoder;
|
|
|
|
extern const FFCodec ff_vp7_decoder;
|
|
|
|
extern const FFCodec ff_vp8_decoder;
|
|
|
|
extern const FFCodec ff_vp8_rkmpp_decoder;
|
|
|
|
extern const FFCodec ff_vp8_v4l2m2m_decoder;
|
|
|
|
extern const FFCodec ff_vp9_decoder;
|
|
|
|
extern const FFCodec ff_vp9_rkmpp_decoder;
|
|
|
|
extern const FFCodec ff_vp9_v4l2m2m_decoder;
|
|
|
|
extern const FFCodec ff_vqa_decoder;
|
2022-10-14 09:19:49 +02:00
|
|
|
extern const FFCodec ff_vqc_decoder;
|
vvcdec: add vvc decoder
vvc decoder plug-in to avcodec.
split frames into slices/tiles and send them to vvc_thread for further decoding
reorder and wait for the frame decoding to be done and output the frame
Features:
+ Support I, P, B frames
+ Support 8/10/12 bits, chroma 400, 420, 422, and 444 and range extension
+ Support VVC new tools like MIP, CCLM, AFFINE, GPM, DMVR, PROF, BDOF, LMCS, ALF
+ 295 conformace clips passed
- Not support RPR, IBC, PALETTE, and other minor features yet
Performance:
C code FPS on an i7-12700K (x86):
BQTerrace_1920x1080_60_10_420_22_RA.vvc 93.0
Chimera_8bit_1080P_1000_frames.vvc 184.3
NovosobornayaSquare_1920x1080.bin 191.3
RitualDance_1920x1080_60_10_420_32_LD.266 150.7
RitualDance_1920x1080_60_10_420_37_RA.266 170.0
Tango2_3840x2160_60_10_420_27_LD.266 33.7
C code FPS on a M1 Mac Pro (ARM):
BQTerrace_1920x1080_60_10_420_22_RA.vvc 58.7
Chimera_8bit_1080P_1000_frames.vvc 153.3
NovosobornayaSquare_1920x1080.bin 150.3
RitualDance_1920x1080_60_10_420_32_LD.266 105.0
RitualDance_1920x1080_60_10_420_37_RA.266 133.0
Tango2_3840x2160_60_10_420_27_LD.266 21.7
Asm optimizations still working in progress. please check
https://github.com/ffvvc/FFmpeg/wiki#performance-data for the latest
Contributors (based on code merge order):
Nuo Mi <nuomi2021@gmail.com>
Xu Mu <toxumu@outlook.com>
Frank Plowman <post@frankplowman.com>
Shaun Loo <shaunloo10@gmail.com>
Wu Jianhua <toqsxw@outlook.com>
Thank you for reporting issues and providing performance reports:
Łukasz Czech <lukaszcz18@wp.pl>
Xu Fulong <839789740@qq.com>
Thank you for providing review comments:
Ronald S. Bultje <rsbultje@gmail.com>
James Almer <jamrial@gmail.com>
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Co-authored-by: Xu Mu <toxumu@outlook.com>
Co-authored-by: Frank Plowman <post@frankplowman.com>
Co-authored-by: Shaun Loo <shaunloo10@gmail.com>
Co-authored-by: Wu Jianhua <toqsxw@outlook.com>
2023-12-28 08:17:29 +02:00
|
|
|
extern const FFCodec ff_vvc_decoder;
|
2022-08-07 10:40:47 +02:00
|
|
|
extern const FFCodec ff_wbmp_decoder;
|
|
|
|
extern const FFCodec ff_wbmp_encoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_webp_decoder;
|
|
|
|
extern const FFCodec ff_wcmv_decoder;
|
|
|
|
extern const FFCodec ff_wrapped_avframe_encoder;
|
|
|
|
extern const FFCodec ff_wrapped_avframe_decoder;
|
|
|
|
extern const FFCodec ff_wmv1_encoder;
|
|
|
|
extern const FFCodec ff_wmv1_decoder;
|
|
|
|
extern const FFCodec ff_wmv2_encoder;
|
|
|
|
extern const FFCodec ff_wmv2_decoder;
|
|
|
|
extern const FFCodec ff_wmv3_decoder;
|
|
|
|
extern const FFCodec ff_wmv3_crystalhd_decoder;
|
|
|
|
extern const FFCodec ff_wmv3image_decoder;
|
|
|
|
extern const FFCodec ff_wnv1_decoder;
|
|
|
|
extern const FFCodec ff_xan_wc3_decoder;
|
|
|
|
extern const FFCodec ff_xan_wc4_decoder;
|
|
|
|
extern const FFCodec ff_xbm_encoder;
|
|
|
|
extern const FFCodec ff_xbm_decoder;
|
|
|
|
extern const FFCodec ff_xface_encoder;
|
|
|
|
extern const FFCodec ff_xface_decoder;
|
|
|
|
extern const FFCodec ff_xl_decoder;
|
|
|
|
extern const FFCodec ff_xpm_decoder;
|
|
|
|
extern const FFCodec ff_xwd_encoder;
|
|
|
|
extern const FFCodec ff_xwd_decoder;
|
|
|
|
extern const FFCodec ff_y41p_encoder;
|
|
|
|
extern const FFCodec ff_y41p_decoder;
|
|
|
|
extern const FFCodec ff_ylc_decoder;
|
|
|
|
extern const FFCodec ff_yop_decoder;
|
|
|
|
extern const FFCodec ff_yuv4_encoder;
|
|
|
|
extern const FFCodec ff_yuv4_decoder;
|
|
|
|
extern const FFCodec ff_zero12v_decoder;
|
|
|
|
extern const FFCodec ff_zerocodec_decoder;
|
|
|
|
extern const FFCodec ff_zlib_encoder;
|
|
|
|
extern const FFCodec ff_zlib_decoder;
|
|
|
|
extern const FFCodec ff_zmbv_encoder;
|
|
|
|
extern const FFCodec ff_zmbv_decoder;
|
2017-12-23 00:17:00 +02:00
|
|
|
|
|
|
|
/* audio codecs */
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_aac_encoder;
|
|
|
|
extern const FFCodec ff_aac_decoder;
|
|
|
|
extern const FFCodec ff_aac_fixed_decoder;
|
|
|
|
extern const FFCodec ff_aac_latm_decoder;
|
|
|
|
extern const FFCodec ff_ac3_encoder;
|
|
|
|
extern const FFCodec ff_ac3_decoder;
|
|
|
|
extern const FFCodec ff_ac3_fixed_encoder;
|
|
|
|
extern const FFCodec ff_ac3_fixed_decoder;
|
|
|
|
extern const FFCodec ff_acelp_kelvin_decoder;
|
|
|
|
extern const FFCodec ff_alac_encoder;
|
|
|
|
extern const FFCodec ff_alac_decoder;
|
|
|
|
extern const FFCodec ff_als_decoder;
|
|
|
|
extern const FFCodec ff_amrnb_decoder;
|
|
|
|
extern const FFCodec ff_amrwb_decoder;
|
2022-09-19 22:14:05 +02:00
|
|
|
extern const FFCodec ff_apac_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_ape_decoder;
|
|
|
|
extern const FFCodec ff_aptx_encoder;
|
|
|
|
extern const FFCodec ff_aptx_decoder;
|
|
|
|
extern const FFCodec ff_aptx_hd_encoder;
|
|
|
|
extern const FFCodec ff_aptx_hd_decoder;
|
|
|
|
extern const FFCodec ff_atrac1_decoder;
|
|
|
|
extern const FFCodec ff_atrac3_decoder;
|
|
|
|
extern const FFCodec ff_atrac3al_decoder;
|
|
|
|
extern const FFCodec ff_atrac3p_decoder;
|
|
|
|
extern const FFCodec ff_atrac3pal_decoder;
|
|
|
|
extern const FFCodec ff_atrac9_decoder;
|
|
|
|
extern const FFCodec ff_binkaudio_dct_decoder;
|
|
|
|
extern const FFCodec ff_binkaudio_rdft_decoder;
|
|
|
|
extern const FFCodec ff_bmv_audio_decoder;
|
2022-09-07 13:58:53 +02:00
|
|
|
extern const FFCodec ff_bonk_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_cook_decoder;
|
|
|
|
extern const FFCodec ff_dca_encoder;
|
|
|
|
extern const FFCodec ff_dca_decoder;
|
|
|
|
extern const FFCodec ff_dfpwm_encoder;
|
|
|
|
extern const FFCodec ff_dfpwm_decoder;
|
|
|
|
extern const FFCodec ff_dolby_e_decoder;
|
|
|
|
extern const FFCodec ff_dsd_lsbf_decoder;
|
|
|
|
extern const FFCodec ff_dsd_msbf_decoder;
|
|
|
|
extern const FFCodec ff_dsd_lsbf_planar_decoder;
|
|
|
|
extern const FFCodec ff_dsd_msbf_planar_decoder;
|
|
|
|
extern const FFCodec ff_dsicinaudio_decoder;
|
|
|
|
extern const FFCodec ff_dss_sp_decoder;
|
|
|
|
extern const FFCodec ff_dst_decoder;
|
|
|
|
extern const FFCodec ff_eac3_encoder;
|
|
|
|
extern const FFCodec ff_eac3_decoder;
|
|
|
|
extern const FFCodec ff_evrc_decoder;
|
|
|
|
extern const FFCodec ff_fastaudio_decoder;
|
|
|
|
extern const FFCodec ff_ffwavesynth_decoder;
|
|
|
|
extern const FFCodec ff_flac_encoder;
|
|
|
|
extern const FFCodec ff_flac_decoder;
|
2022-08-30 17:14:46 +02:00
|
|
|
extern const FFCodec ff_ftr_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_g723_1_encoder;
|
|
|
|
extern const FFCodec ff_g723_1_decoder;
|
|
|
|
extern const FFCodec ff_g729_decoder;
|
|
|
|
extern const FFCodec ff_gsm_decoder;
|
|
|
|
extern const FFCodec ff_gsm_ms_decoder;
|
|
|
|
extern const FFCodec ff_hca_decoder;
|
|
|
|
extern const FFCodec ff_hcom_decoder;
|
2022-07-03 23:50:05 +02:00
|
|
|
extern const FFCodec ff_hdr_encoder;
|
|
|
|
extern const FFCodec ff_hdr_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_iac_decoder;
|
|
|
|
extern const FFCodec ff_ilbc_decoder;
|
|
|
|
extern const FFCodec ff_imc_decoder;
|
|
|
|
extern const FFCodec ff_interplay_acm_decoder;
|
|
|
|
extern const FFCodec ff_mace3_decoder;
|
|
|
|
extern const FFCodec ff_mace6_decoder;
|
|
|
|
extern const FFCodec ff_metasound_decoder;
|
2022-09-08 20:44:49 +02:00
|
|
|
extern const FFCodec ff_misc4_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_mlp_encoder;
|
|
|
|
extern const FFCodec ff_mlp_decoder;
|
|
|
|
extern const FFCodec ff_mp1_decoder;
|
|
|
|
extern const FFCodec ff_mp1float_decoder;
|
|
|
|
extern const FFCodec ff_mp2_encoder;
|
|
|
|
extern const FFCodec ff_mp2_decoder;
|
|
|
|
extern const FFCodec ff_mp2float_decoder;
|
|
|
|
extern const FFCodec ff_mp2fixed_encoder;
|
|
|
|
extern const FFCodec ff_mp3float_decoder;
|
|
|
|
extern const FFCodec ff_mp3_decoder;
|
|
|
|
extern const FFCodec ff_mp3adufloat_decoder;
|
|
|
|
extern const FFCodec ff_mp3adu_decoder;
|
|
|
|
extern const FFCodec ff_mp3on4float_decoder;
|
|
|
|
extern const FFCodec ff_mp3on4_decoder;
|
|
|
|
extern const FFCodec ff_mpc7_decoder;
|
|
|
|
extern const FFCodec ff_mpc8_decoder;
|
|
|
|
extern const FFCodec ff_msnsiren_decoder;
|
|
|
|
extern const FFCodec ff_nellymoser_encoder;
|
|
|
|
extern const FFCodec ff_nellymoser_decoder;
|
|
|
|
extern const FFCodec ff_on2avc_decoder;
|
|
|
|
extern const FFCodec ff_opus_encoder;
|
|
|
|
extern const FFCodec ff_opus_decoder;
|
2023-06-27 19:54:25 +02:00
|
|
|
extern const FFCodec ff_osq_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_paf_audio_decoder;
|
|
|
|
extern const FFCodec ff_qcelp_decoder;
|
|
|
|
extern const FFCodec ff_qdm2_decoder;
|
|
|
|
extern const FFCodec ff_qdmc_decoder;
|
2023-09-23 16:49:25 +02:00
|
|
|
extern const FFCodec ff_qoa_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_ra_144_encoder;
|
|
|
|
extern const FFCodec ff_ra_144_decoder;
|
|
|
|
extern const FFCodec ff_ra_288_decoder;
|
|
|
|
extern const FFCodec ff_ralf_decoder;
|
|
|
|
extern const FFCodec ff_sbc_encoder;
|
|
|
|
extern const FFCodec ff_sbc_decoder;
|
|
|
|
extern const FFCodec ff_shorten_decoder;
|
|
|
|
extern const FFCodec ff_sipr_decoder;
|
|
|
|
extern const FFCodec ff_siren_decoder;
|
|
|
|
extern const FFCodec ff_smackaud_decoder;
|
|
|
|
extern const FFCodec ff_sonic_encoder;
|
|
|
|
extern const FFCodec ff_sonic_decoder;
|
|
|
|
extern const FFCodec ff_sonic_ls_encoder;
|
|
|
|
extern const FFCodec ff_tak_decoder;
|
|
|
|
extern const FFCodec ff_truehd_encoder;
|
|
|
|
extern const FFCodec ff_truehd_decoder;
|
|
|
|
extern const FFCodec ff_truespeech_decoder;
|
|
|
|
extern const FFCodec ff_tta_encoder;
|
|
|
|
extern const FFCodec ff_tta_decoder;
|
|
|
|
extern const FFCodec ff_twinvq_decoder;
|
|
|
|
extern const FFCodec ff_vmdaudio_decoder;
|
|
|
|
extern const FFCodec ff_vorbis_encoder;
|
|
|
|
extern const FFCodec ff_vorbis_decoder;
|
2023-01-21 20:25:41 +02:00
|
|
|
extern const FFCodec ff_wavarc_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_wavpack_encoder;
|
|
|
|
extern const FFCodec ff_wavpack_decoder;
|
|
|
|
extern const FFCodec ff_wmalossless_decoder;
|
|
|
|
extern const FFCodec ff_wmapro_decoder;
|
|
|
|
extern const FFCodec ff_wmav1_encoder;
|
|
|
|
extern const FFCodec ff_wmav1_decoder;
|
|
|
|
extern const FFCodec ff_wmav2_encoder;
|
|
|
|
extern const FFCodec ff_wmav2_decoder;
|
|
|
|
extern const FFCodec ff_wmavoice_decoder;
|
|
|
|
extern const FFCodec ff_ws_snd1_decoder;
|
|
|
|
extern const FFCodec ff_xma1_decoder;
|
|
|
|
extern const FFCodec ff_xma2_decoder;
|
2017-12-23 00:17:00 +02:00
|
|
|
|
|
|
|
/* PCM codecs */
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_pcm_alaw_encoder;
|
|
|
|
extern const FFCodec ff_pcm_alaw_decoder;
|
|
|
|
extern const FFCodec ff_pcm_bluray_encoder;
|
|
|
|
extern const FFCodec ff_pcm_bluray_decoder;
|
|
|
|
extern const FFCodec ff_pcm_dvd_encoder;
|
|
|
|
extern const FFCodec ff_pcm_dvd_decoder;
|
|
|
|
extern const FFCodec ff_pcm_f16le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_f24le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_f32be_encoder;
|
|
|
|
extern const FFCodec ff_pcm_f32be_decoder;
|
|
|
|
extern const FFCodec ff_pcm_f32le_encoder;
|
|
|
|
extern const FFCodec ff_pcm_f32le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_f64be_encoder;
|
|
|
|
extern const FFCodec ff_pcm_f64be_decoder;
|
|
|
|
extern const FFCodec ff_pcm_f64le_encoder;
|
|
|
|
extern const FFCodec ff_pcm_f64le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_lxf_decoder;
|
|
|
|
extern const FFCodec ff_pcm_mulaw_encoder;
|
|
|
|
extern const FFCodec ff_pcm_mulaw_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s8_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s8_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s8_planar_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s8_planar_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s16be_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s16be_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s16be_planar_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s16be_planar_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s16le_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s16le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s16le_planar_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s16le_planar_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s24be_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s24be_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s24daud_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s24daud_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s24le_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s24le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s24le_planar_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s24le_planar_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s32be_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s32be_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s32le_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s32le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s32le_planar_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s32le_planar_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s64be_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s64be_decoder;
|
|
|
|
extern const FFCodec ff_pcm_s64le_encoder;
|
|
|
|
extern const FFCodec ff_pcm_s64le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_sga_decoder;
|
|
|
|
extern const FFCodec ff_pcm_u8_encoder;
|
|
|
|
extern const FFCodec ff_pcm_u8_decoder;
|
|
|
|
extern const FFCodec ff_pcm_u16be_encoder;
|
|
|
|
extern const FFCodec ff_pcm_u16be_decoder;
|
|
|
|
extern const FFCodec ff_pcm_u16le_encoder;
|
|
|
|
extern const FFCodec ff_pcm_u16le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_u24be_encoder;
|
|
|
|
extern const FFCodec ff_pcm_u24be_decoder;
|
|
|
|
extern const FFCodec ff_pcm_u24le_encoder;
|
|
|
|
extern const FFCodec ff_pcm_u24le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_u32be_encoder;
|
|
|
|
extern const FFCodec ff_pcm_u32be_decoder;
|
|
|
|
extern const FFCodec ff_pcm_u32le_encoder;
|
|
|
|
extern const FFCodec ff_pcm_u32le_decoder;
|
|
|
|
extern const FFCodec ff_pcm_vidc_encoder;
|
|
|
|
extern const FFCodec ff_pcm_vidc_decoder;
|
2017-12-23 00:17:00 +02:00
|
|
|
|
|
|
|
/* DPCM codecs */
|
2023-01-24 17:14:25 +02:00
|
|
|
extern const FFCodec ff_cbd2_dpcm_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_derf_dpcm_decoder;
|
|
|
|
extern const FFCodec ff_gremlin_dpcm_decoder;
|
|
|
|
extern const FFCodec ff_interplay_dpcm_decoder;
|
|
|
|
extern const FFCodec ff_roq_dpcm_encoder;
|
|
|
|
extern const FFCodec ff_roq_dpcm_decoder;
|
|
|
|
extern const FFCodec ff_sdx2_dpcm_decoder;
|
|
|
|
extern const FFCodec ff_sol_dpcm_decoder;
|
|
|
|
extern const FFCodec ff_xan_dpcm_decoder;
|
2023-01-21 13:21:44 +02:00
|
|
|
extern const FFCodec ff_wady_dpcm_decoder;
|
2017-12-23 00:17:00 +02:00
|
|
|
|
|
|
|
/* ADPCM codecs */
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_adpcm_4xm_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_adx_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_adx_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_afc_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_agm_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_aica_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_argo_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_argo_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_ct_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_dtk_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ea_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ea_maxis_xa_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ea_r1_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ea_r2_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ea_r3_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ea_xas_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_g722_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_g722_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_g726_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_g726_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_g726le_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_g726le_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_acorn_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_amv_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_amv_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_alp_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_alp_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_apc_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_apm_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_apm_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_cunning_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_dat4_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_dk3_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_dk4_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_ea_eacs_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_ea_sead_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_iss_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_moflex_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_mtf_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_oki_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_qt_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_qt_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_rad_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_ssi_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_ssi_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_smjpeg_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_wav_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_wav_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_ws_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_ws_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ms_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_ms_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_mtaf_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_psx_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_sbpro_2_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_sbpro_3_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_sbpro_4_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_swf_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_swf_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_thp_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_thp_le_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_vima_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_xa_decoder;
|
2023-01-25 20:31:44 +02:00
|
|
|
extern const FFCodec ff_adpcm_xmd_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_adpcm_yamaha_encoder;
|
|
|
|
extern const FFCodec ff_adpcm_yamaha_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_zork_decoder;
|
2017-12-23 00:17:00 +02:00
|
|
|
|
|
|
|
/* subtitles */
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_ssa_encoder;
|
|
|
|
extern const FFCodec ff_ssa_decoder;
|
|
|
|
extern const FFCodec ff_ass_encoder;
|
|
|
|
extern const FFCodec ff_ass_decoder;
|
|
|
|
extern const FFCodec ff_ccaption_decoder;
|
|
|
|
extern const FFCodec ff_dvbsub_encoder;
|
|
|
|
extern const FFCodec ff_dvbsub_decoder;
|
|
|
|
extern const FFCodec ff_dvdsub_encoder;
|
|
|
|
extern const FFCodec ff_dvdsub_decoder;
|
|
|
|
extern const FFCodec ff_jacosub_decoder;
|
|
|
|
extern const FFCodec ff_microdvd_decoder;
|
|
|
|
extern const FFCodec ff_movtext_encoder;
|
|
|
|
extern const FFCodec ff_movtext_decoder;
|
|
|
|
extern const FFCodec ff_mpl2_decoder;
|
|
|
|
extern const FFCodec ff_pgssub_decoder;
|
|
|
|
extern const FFCodec ff_pjs_decoder;
|
|
|
|
extern const FFCodec ff_realtext_decoder;
|
|
|
|
extern const FFCodec ff_sami_decoder;
|
|
|
|
extern const FFCodec ff_srt_encoder;
|
|
|
|
extern const FFCodec ff_srt_decoder;
|
|
|
|
extern const FFCodec ff_stl_decoder;
|
|
|
|
extern const FFCodec ff_subrip_encoder;
|
|
|
|
extern const FFCodec ff_subrip_decoder;
|
|
|
|
extern const FFCodec ff_subviewer_decoder;
|
|
|
|
extern const FFCodec ff_subviewer1_decoder;
|
|
|
|
extern const FFCodec ff_text_encoder;
|
|
|
|
extern const FFCodec ff_text_decoder;
|
|
|
|
extern const FFCodec ff_ttml_encoder;
|
|
|
|
extern const FFCodec ff_vplayer_decoder;
|
|
|
|
extern const FFCodec ff_webvtt_encoder;
|
|
|
|
extern const FFCodec ff_webvtt_decoder;
|
|
|
|
extern const FFCodec ff_xsub_encoder;
|
|
|
|
extern const FFCodec ff_xsub_decoder;
|
2017-12-23 00:17:00 +02:00
|
|
|
|
|
|
|
/* external libraries */
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_aac_at_encoder;
|
|
|
|
extern const FFCodec ff_aac_at_decoder;
|
|
|
|
extern const FFCodec ff_ac3_at_decoder;
|
|
|
|
extern const FFCodec ff_adpcm_ima_qt_at_decoder;
|
|
|
|
extern const FFCodec ff_alac_at_encoder;
|
|
|
|
extern const FFCodec ff_alac_at_decoder;
|
|
|
|
extern const FFCodec ff_amr_nb_at_decoder;
|
|
|
|
extern const FFCodec ff_eac3_at_decoder;
|
|
|
|
extern const FFCodec ff_gsm_ms_at_decoder;
|
|
|
|
extern const FFCodec ff_ilbc_at_encoder;
|
|
|
|
extern const FFCodec ff_ilbc_at_decoder;
|
|
|
|
extern const FFCodec ff_mp1_at_decoder;
|
|
|
|
extern const FFCodec ff_mp2_at_decoder;
|
|
|
|
extern const FFCodec ff_mp3_at_decoder;
|
|
|
|
extern const FFCodec ff_pcm_alaw_at_encoder;
|
|
|
|
extern const FFCodec ff_pcm_alaw_at_decoder;
|
|
|
|
extern const FFCodec ff_pcm_mulaw_at_encoder;
|
|
|
|
extern const FFCodec ff_pcm_mulaw_at_decoder;
|
|
|
|
extern const FFCodec ff_qdmc_at_decoder;
|
|
|
|
extern const FFCodec ff_qdm2_at_decoder;
|
|
|
|
extern FFCodec ff_libaom_av1_encoder;
|
2023-02-23 12:17:15 +02:00
|
|
|
/* preferred over libaribb24 */
|
|
|
|
extern const FFCodec ff_libaribcaption_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_libaribb24_decoder;
|
|
|
|
extern const FFCodec ff_libcelt_decoder;
|
|
|
|
extern const FFCodec ff_libcodec2_encoder;
|
|
|
|
extern const FFCodec ff_libcodec2_decoder;
|
|
|
|
extern const FFCodec ff_libdav1d_decoder;
|
|
|
|
extern const FFCodec ff_libdavs2_decoder;
|
|
|
|
extern const FFCodec ff_libfdk_aac_encoder;
|
|
|
|
extern const FFCodec ff_libfdk_aac_decoder;
|
|
|
|
extern const FFCodec ff_libgsm_encoder;
|
|
|
|
extern const FFCodec ff_libgsm_decoder;
|
|
|
|
extern const FFCodec ff_libgsm_ms_encoder;
|
|
|
|
extern const FFCodec ff_libgsm_ms_decoder;
|
|
|
|
extern const FFCodec ff_libilbc_encoder;
|
|
|
|
extern const FFCodec ff_libilbc_decoder;
|
2022-04-17 15:22:34 +02:00
|
|
|
extern const FFCodec ff_libjxl_decoder;
|
2022-04-17 15:22:35 +02:00
|
|
|
extern const FFCodec ff_libjxl_encoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_libmp3lame_encoder;
|
|
|
|
extern const FFCodec ff_libopencore_amrnb_encoder;
|
|
|
|
extern const FFCodec ff_libopencore_amrnb_decoder;
|
|
|
|
extern const FFCodec ff_libopencore_amrwb_decoder;
|
|
|
|
extern const FFCodec ff_libopenjpeg_encoder;
|
|
|
|
extern const FFCodec ff_libopus_encoder;
|
|
|
|
extern const FFCodec ff_libopus_decoder;
|
|
|
|
extern const FFCodec ff_librav1e_encoder;
|
|
|
|
extern const FFCodec ff_librsvg_decoder;
|
|
|
|
extern const FFCodec ff_libshine_encoder;
|
|
|
|
extern const FFCodec ff_libspeex_encoder;
|
|
|
|
extern const FFCodec ff_libspeex_decoder;
|
|
|
|
extern const FFCodec ff_libsvtav1_encoder;
|
|
|
|
extern const FFCodec ff_libtheora_encoder;
|
|
|
|
extern const FFCodec ff_libtwolame_encoder;
|
|
|
|
extern const FFCodec ff_libuavs3d_decoder;
|
|
|
|
extern const FFCodec ff_libvo_amrwbenc_encoder;
|
|
|
|
extern const FFCodec ff_libvorbis_encoder;
|
|
|
|
extern const FFCodec ff_libvorbis_decoder;
|
|
|
|
extern const FFCodec ff_libvpx_vp8_encoder;
|
|
|
|
extern const FFCodec ff_libvpx_vp8_decoder;
|
|
|
|
extern FFCodec ff_libvpx_vp9_encoder;
|
2023-03-12 20:05:05 +02:00
|
|
|
extern const FFCodec ff_libvpx_vp9_decoder;
|
2017-12-23 00:17:00 +02:00
|
|
|
/* preferred over libwebp */
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_libwebp_anim_encoder;
|
|
|
|
extern const FFCodec ff_libwebp_encoder;
|
|
|
|
extern const FFCodec ff_libx262_encoder;
|
2021-02-25 11:50:26 +02:00
|
|
|
#if CONFIG_LIBX264_ENCODER
|
|
|
|
#include <x264.h>
|
|
|
|
#if X264_BUILD < 153
|
2021-05-11 03:14:30 +02:00
|
|
|
#define LIBX264_CONST
|
2021-02-25 11:50:26 +02:00
|
|
|
#else
|
2021-05-11 03:14:30 +02:00
|
|
|
#define LIBX264_CONST const
|
2021-02-25 11:50:26 +02:00
|
|
|
#endif
|
2022-03-16 22:09:54 +02:00
|
|
|
extern LIBX264_CONST FFCodec ff_libx264_encoder;
|
2021-02-25 11:50:26 +02:00
|
|
|
#endif
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_libx264rgb_encoder;
|
|
|
|
extern FFCodec ff_libx265_encoder;
|
2023-09-19 13:34:21 +02:00
|
|
|
extern const FFCodec ff_libxeve_encoder;
|
2023-09-19 13:34:58 +02:00
|
|
|
extern const FFCodec ff_libxevd_decoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_libxavs_encoder;
|
|
|
|
extern const FFCodec ff_libxavs2_encoder;
|
|
|
|
extern const FFCodec ff_libxvid_encoder;
|
|
|
|
extern const FFCodec ff_libzvbi_teletext_decoder;
|
2017-12-23 00:17:00 +02:00
|
|
|
|
|
|
|
/* text */
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_bintext_decoder;
|
|
|
|
extern const FFCodec ff_xbin_decoder;
|
|
|
|
extern const FFCodec ff_idf_decoder;
|
2006-11-29 01:55:24 +02:00
|
|
|
|
2017-12-23 00:17:00 +02:00
|
|
|
/* external libraries, that shouldn't be used by default if one of the
|
|
|
|
* above is available */
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_aac_mf_encoder;
|
|
|
|
extern const FFCodec ff_ac3_mf_encoder;
|
|
|
|
extern const FFCodec ff_h263_v4l2m2m_encoder;
|
|
|
|
extern const FFCodec ff_libaom_av1_decoder;
|
2020-09-09 05:39:55 +02:00
|
|
|
/* hwaccel hooks only, so prefer external decoders */
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_av1_decoder;
|
|
|
|
extern const FFCodec ff_av1_cuvid_decoder;
|
2022-12-19 14:45:40 +02:00
|
|
|
extern const FFCodec ff_av1_mediacodec_decoder;
|
2023-04-25 18:37:05 +02:00
|
|
|
extern const FFCodec ff_av1_mediacodec_encoder;
|
2022-11-05 22:17:37 +02:00
|
|
|
extern const FFCodec ff_av1_nvenc_encoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_av1_qsv_decoder;
|
2022-10-13 10:25:23 +02:00
|
|
|
extern const FFCodec ff_av1_qsv_encoder;
|
2022-12-20 17:20:38 +02:00
|
|
|
extern const FFCodec ff_av1_amf_encoder;
|
2023-09-11 09:52:31 +02:00
|
|
|
extern const FFCodec ff_av1_vaapi_encoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_libopenh264_encoder;
|
|
|
|
extern const FFCodec ff_libopenh264_decoder;
|
|
|
|
extern const FFCodec ff_h264_amf_encoder;
|
|
|
|
extern const FFCodec ff_h264_cuvid_decoder;
|
|
|
|
extern const FFCodec ff_h264_mf_encoder;
|
|
|
|
extern const FFCodec ff_h264_nvenc_encoder;
|
|
|
|
extern const FFCodec ff_h264_omx_encoder;
|
|
|
|
extern const FFCodec ff_h264_qsv_encoder;
|
|
|
|
extern const FFCodec ff_h264_v4l2m2m_encoder;
|
|
|
|
extern const FFCodec ff_h264_vaapi_encoder;
|
|
|
|
extern const FFCodec ff_h264_videotoolbox_encoder;
|
|
|
|
extern const FFCodec ff_hevc_amf_encoder;
|
|
|
|
extern const FFCodec ff_hevc_cuvid_decoder;
|
|
|
|
extern const FFCodec ff_hevc_mediacodec_decoder;
|
2022-10-17 18:23:08 +02:00
|
|
|
extern const FFCodec ff_hevc_mediacodec_encoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_hevc_mf_encoder;
|
|
|
|
extern const FFCodec ff_hevc_nvenc_encoder;
|
|
|
|
extern const FFCodec ff_hevc_qsv_encoder;
|
|
|
|
extern const FFCodec ff_hevc_v4l2m2m_encoder;
|
|
|
|
extern const FFCodec ff_hevc_vaapi_encoder;
|
|
|
|
extern const FFCodec ff_hevc_videotoolbox_encoder;
|
|
|
|
extern const FFCodec ff_libkvazaar_encoder;
|
|
|
|
extern const FFCodec ff_mjpeg_cuvid_decoder;
|
|
|
|
extern const FFCodec ff_mjpeg_qsv_encoder;
|
|
|
|
extern const FFCodec ff_mjpeg_qsv_decoder;
|
|
|
|
extern const FFCodec ff_mjpeg_vaapi_encoder;
|
|
|
|
extern const FFCodec ff_mp3_mf_encoder;
|
|
|
|
extern const FFCodec ff_mpeg1_cuvid_decoder;
|
|
|
|
extern const FFCodec ff_mpeg2_cuvid_decoder;
|
|
|
|
extern const FFCodec ff_mpeg2_qsv_encoder;
|
|
|
|
extern const FFCodec ff_mpeg2_vaapi_encoder;
|
|
|
|
extern const FFCodec ff_mpeg4_cuvid_decoder;
|
|
|
|
extern const FFCodec ff_mpeg4_mediacodec_decoder;
|
2023-03-27 17:21:27 +02:00
|
|
|
extern const FFCodec ff_mpeg4_mediacodec_encoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_mpeg4_omx_encoder;
|
|
|
|
extern const FFCodec ff_mpeg4_v4l2m2m_encoder;
|
|
|
|
extern const FFCodec ff_prores_videotoolbox_encoder;
|
|
|
|
extern const FFCodec ff_vc1_cuvid_decoder;
|
|
|
|
extern const FFCodec ff_vp8_cuvid_decoder;
|
|
|
|
extern const FFCodec ff_vp8_mediacodec_decoder;
|
2023-04-19 22:29:18 +02:00
|
|
|
extern const FFCodec ff_vp8_mediacodec_encoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_vp8_qsv_decoder;
|
|
|
|
extern const FFCodec ff_vp8_v4l2m2m_encoder;
|
|
|
|
extern const FFCodec ff_vp8_vaapi_encoder;
|
|
|
|
extern const FFCodec ff_vp9_cuvid_decoder;
|
|
|
|
extern const FFCodec ff_vp9_mediacodec_decoder;
|
2023-03-27 17:21:34 +02:00
|
|
|
extern const FFCodec ff_vp9_mediacodec_encoder;
|
2022-03-16 22:09:54 +02:00
|
|
|
extern const FFCodec ff_vp9_qsv_decoder;
|
|
|
|
extern const FFCodec ff_vp9_vaapi_encoder;
|
|
|
|
extern const FFCodec ff_vp9_qsv_encoder;
|
2017-12-23 00:17:00 +02:00
|
|
|
|
2023-01-27 19:41:40 +02:00
|
|
|
// null codecs
|
|
|
|
extern const FFCodec ff_vnull_decoder;
|
|
|
|
extern const FFCodec ff_vnull_encoder;
|
|
|
|
extern const FFCodec ff_anull_decoder;
|
|
|
|
extern const FFCodec ff_anull_encoder;
|
|
|
|
|
2018-05-14 12:43:59 +02:00
|
|
|
// The iterate API is not usable with ossfuzz due to the excessive size of binaries created
|
|
|
|
#if CONFIG_OSSFUZZ
|
2022-03-16 22:09:54 +02:00
|
|
|
const FFCodec * codec_list[] = {
|
2020-02-07 14:59:15 +02:00
|
|
|
NULL,
|
2018-05-28 02:37:48 +02:00
|
|
|
NULL,
|
|
|
|
NULL
|
|
|
|
};
|
2018-05-14 12:43:59 +02:00
|
|
|
#else
|
2017-12-23 00:17:00 +02:00
|
|
|
#include "libavcodec/codec_list.c"
|
2018-05-14 12:43:59 +02:00
|
|
|
#endif
|
2017-12-23 00:17:00 +02:00
|
|
|
|
|
|
|
static AVOnce av_codec_static_init = AV_ONCE_INIT;
|
|
|
|
static void av_codec_init_static(void)
|
|
|
|
{
|
|
|
|
for (int i = 0; codec_list[i]; i++) {
|
|
|
|
if (codec_list[i]->init_static_data)
|
2022-03-16 22:09:54 +02:00
|
|
|
codec_list[i]->init_static_data((FFCodec*)codec_list[i]);
|
2012-12-25 17:29:39 +03:00
|
|
|
}
|
2017-12-23 00:17:00 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
const AVCodec *av_codec_iterate(void **opaque)
|
|
|
|
{
|
|
|
|
uintptr_t i = (uintptr_t)*opaque;
|
2022-03-16 22:09:54 +02:00
|
|
|
const FFCodec *c = codec_list[i];
|
2017-12-23 00:17:00 +02:00
|
|
|
|
|
|
|
ff_thread_once(&av_codec_static_init, av_codec_init_static);
|
|
|
|
|
2022-03-21 22:19:43 +02:00
|
|
|
if (c) {
|
2017-12-23 00:17:00 +02:00
|
|
|
*opaque = (void*)(i + 1);
|
2022-03-21 22:19:43 +02:00
|
|
|
return &c->p;
|
|
|
|
}
|
|
|
|
return NULL;
|
2017-12-23 00:17:00 +02:00
|
|
|
}
|
2012-12-25 17:29:39 +03:00
|
|
|
|
2017-12-23 00:17:00 +02:00
|
|
|
static enum AVCodecID remap_deprecated_codec_id(enum AVCodecID id)
|
|
|
|
{
|
|
|
|
switch(id){
|
|
|
|
//This is for future deprecatec codec ids, its empty since
|
|
|
|
//last major bump but will fill up again over time, please don't remove it
|
|
|
|
default : return id;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-02-25 08:45:51 +02:00
|
|
|
static const AVCodec *find_codec(enum AVCodecID id, int (*x)(const AVCodec *))
|
2017-12-23 00:17:00 +02:00
|
|
|
{
|
|
|
|
const AVCodec *p, *experimental = NULL;
|
|
|
|
void *i = 0;
|
|
|
|
|
|
|
|
id = remap_deprecated_codec_id(id);
|
|
|
|
|
|
|
|
while ((p = av_codec_iterate(&i))) {
|
|
|
|
if (!x(p))
|
|
|
|
continue;
|
|
|
|
if (p->id == id) {
|
|
|
|
if (p->capabilities & AV_CODEC_CAP_EXPERIMENTAL && !experimental) {
|
|
|
|
experimental = p;
|
|
|
|
} else
|
2021-02-25 08:45:51 +02:00
|
|
|
return p;
|
2017-12-23 00:17:00 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-02-25 08:45:51 +02:00
|
|
|
return experimental;
|
2017-12-23 00:17:00 +02:00
|
|
|
}
|
|
|
|
|
2021-02-25 08:45:51 +02:00
|
|
|
const AVCodec *avcodec_find_encoder(enum AVCodecID id)
|
2017-12-23 00:17:00 +02:00
|
|
|
{
|
|
|
|
return find_codec(id, av_codec_is_encoder);
|
|
|
|
}
|
|
|
|
|
2021-02-25 08:45:51 +02:00
|
|
|
const AVCodec *avcodec_find_decoder(enum AVCodecID id)
|
2017-12-23 00:17:00 +02:00
|
|
|
{
|
|
|
|
return find_codec(id, av_codec_is_decoder);
|
|
|
|
}
|
2017-03-07 10:51:12 +02:00
|
|
|
|
2021-02-25 08:45:51 +02:00
|
|
|
static const AVCodec *find_codec_by_name(const char *name, int (*x)(const AVCodec *))
|
2017-12-23 00:17:00 +02:00
|
|
|
{
|
|
|
|
void *i = 0;
|
|
|
|
const AVCodec *p;
|
|
|
|
|
|
|
|
if (!name)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
while ((p = av_codec_iterate(&i))) {
|
|
|
|
if (!x(p))
|
|
|
|
continue;
|
|
|
|
if (strcmp(name, p->name) == 0)
|
2021-02-25 08:45:51 +02:00
|
|
|
return p;
|
2017-12-23 00:17:00 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2021-02-25 08:45:51 +02:00
|
|
|
const AVCodec *avcodec_find_encoder_by_name(const char *name)
|
2017-12-23 00:17:00 +02:00
|
|
|
{
|
|
|
|
return find_codec_by_name(name, av_codec_is_encoder);
|
|
|
|
}
|
|
|
|
|
2021-02-25 08:45:51 +02:00
|
|
|
const AVCodec *avcodec_find_decoder_by_name(const char *name)
|
2017-12-23 00:17:00 +02:00
|
|
|
{
|
|
|
|
return find_codec_by_name(name, av_codec_is_decoder);
|
2017-03-07 10:51:12 +02:00
|
|
|
}
|