You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

917 lines
29KB

  1. /*
  2. * Provide registration of all codecs, parsers and bitstream filters for libavcodec.
  3. * Copyright (c) 2002 Fabrice Bellard
  4. *
  5. * This file is part of FFmpeg.
  6. *
  7. * FFmpeg is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU Lesser General Public
  9. * License as published by the Free Software Foundation; either
  10. * version 2.1 of the License, or (at your option) any later version.
  11. *
  12. * FFmpeg is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with FFmpeg; if not, write to the Free Software
  19. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  20. */
  21. /**
  22. * @file
  23. * Provide registration of all codecs, parsers and bitstream filters for libavcodec.
  24. */
  25. #include "config.h"
  26. #include "libavutil/thread.h"
  27. #include "avcodec.h"
  28. #include "version.h"
  29. extern AVCodec ff_a64multi_encoder;
  30. extern AVCodec ff_a64multi5_encoder;
  31. extern AVCodec ff_aasc_decoder;
  32. extern AVCodec ff_aic_decoder;
  33. extern AVCodec ff_alias_pix_encoder;
  34. extern AVCodec ff_alias_pix_decoder;
  35. extern AVCodec ff_amv_encoder;
  36. extern AVCodec ff_amv_decoder;
  37. extern AVCodec ff_anm_decoder;
  38. extern AVCodec ff_ansi_decoder;
  39. extern AVCodec ff_apng_encoder;
  40. extern AVCodec ff_apng_decoder;
  41. extern AVCodec ff_arbc_decoder;
  42. extern AVCodec ff_asv1_encoder;
  43. extern AVCodec ff_asv1_decoder;
  44. extern AVCodec ff_asv2_encoder;
  45. extern AVCodec ff_asv2_decoder;
  46. extern AVCodec ff_aura_decoder;
  47. extern AVCodec ff_aura2_decoder;
  48. extern AVCodec ff_avrp_encoder;
  49. extern AVCodec ff_avrp_decoder;
  50. extern AVCodec ff_avrn_decoder;
  51. extern AVCodec ff_avs_decoder;
  52. extern AVCodec ff_avui_encoder;
  53. extern AVCodec ff_avui_decoder;
  54. extern AVCodec ff_ayuv_encoder;
  55. extern AVCodec ff_ayuv_decoder;
  56. extern AVCodec ff_bethsoftvid_decoder;
  57. extern AVCodec ff_bfi_decoder;
  58. extern AVCodec ff_bink_decoder;
  59. extern AVCodec ff_bitpacked_decoder;
  60. extern AVCodec ff_bmp_encoder;
  61. extern AVCodec ff_bmp_decoder;
  62. extern AVCodec ff_bmv_video_decoder;
  63. extern AVCodec ff_brender_pix_decoder;
  64. extern AVCodec ff_c93_decoder;
  65. extern AVCodec ff_cavs_decoder;
  66. extern AVCodec ff_cdgraphics_decoder;
  67. extern AVCodec ff_cdxl_decoder;
  68. extern AVCodec ff_cfhd_decoder;
  69. extern AVCodec ff_cinepak_encoder;
  70. extern AVCodec ff_cinepak_decoder;
  71. extern AVCodec ff_clearvideo_decoder;
  72. extern AVCodec ff_cljr_encoder;
  73. extern AVCodec ff_cljr_decoder;
  74. extern AVCodec ff_cllc_decoder;
  75. extern AVCodec ff_comfortnoise_encoder;
  76. extern AVCodec ff_comfortnoise_decoder;
  77. extern AVCodec ff_cpia_decoder;
  78. extern AVCodec ff_cscd_decoder;
  79. extern AVCodec ff_cyuv_decoder;
  80. extern AVCodec ff_dds_decoder;
  81. extern AVCodec ff_dfa_decoder;
  82. extern AVCodec ff_dirac_decoder;
  83. extern AVCodec ff_dnxhd_encoder;
  84. extern AVCodec ff_dnxhd_decoder;
  85. extern AVCodec ff_dpx_encoder;
  86. extern AVCodec ff_dpx_decoder;
  87. extern AVCodec ff_dsicinvideo_decoder;
  88. extern AVCodec ff_dvaudio_decoder;
  89. extern AVCodec ff_dvvideo_encoder;
  90. extern AVCodec ff_dvvideo_decoder;
  91. extern AVCodec ff_dxa_decoder;
  92. extern AVCodec ff_dxtory_decoder;
  93. extern AVCodec ff_dxv_decoder;
  94. extern AVCodec ff_eacmv_decoder;
  95. extern AVCodec ff_eamad_decoder;
  96. extern AVCodec ff_eatgq_decoder;
  97. extern AVCodec ff_eatgv_decoder;
  98. extern AVCodec ff_eatqi_decoder;
  99. extern AVCodec ff_eightbps_decoder;
  100. extern AVCodec ff_eightsvx_exp_decoder;
  101. extern AVCodec ff_eightsvx_fib_decoder;
  102. extern AVCodec ff_escape124_decoder;
  103. extern AVCodec ff_escape130_decoder;
  104. extern AVCodec ff_exr_decoder;
  105. extern AVCodec ff_ffv1_encoder;
  106. extern AVCodec ff_ffv1_decoder;
  107. extern AVCodec ff_ffvhuff_encoder;
  108. extern AVCodec ff_ffvhuff_decoder;
  109. extern AVCodec ff_fic_decoder;
  110. extern AVCodec ff_fits_encoder;
  111. extern AVCodec ff_fits_decoder;
  112. extern AVCodec ff_flashsv_encoder;
  113. extern AVCodec ff_flashsv_decoder;
  114. extern AVCodec ff_flashsv2_encoder;
  115. extern AVCodec ff_flashsv2_decoder;
  116. extern AVCodec ff_flic_decoder;
  117. extern AVCodec ff_flv_encoder;
  118. extern AVCodec ff_flv_decoder;
  119. extern AVCodec ff_fmvc_decoder;
  120. extern AVCodec ff_fourxm_decoder;
  121. extern AVCodec ff_fraps_decoder;
  122. extern AVCodec ff_frwu_decoder;
  123. extern AVCodec ff_g2m_decoder;
  124. extern AVCodec ff_gdv_decoder;
  125. extern AVCodec ff_gif_encoder;
  126. extern AVCodec ff_gif_decoder;
  127. extern AVCodec ff_h261_encoder;
  128. extern AVCodec ff_h261_decoder;
  129. extern AVCodec ff_h263_encoder;
  130. extern AVCodec ff_h263_decoder;
  131. extern AVCodec ff_h263i_decoder;
  132. extern AVCodec ff_h263p_encoder;
  133. extern AVCodec ff_h263p_decoder;
  134. extern AVCodec ff_h263_v4l2m2m_decoder;
  135. extern AVCodec ff_h264_decoder;
  136. extern AVCodec ff_h264_crystalhd_decoder;
  137. extern AVCodec ff_h264_v4l2m2m_decoder;
  138. extern AVCodec ff_h264_mediacodec_decoder;
  139. extern AVCodec ff_h264_mmal_decoder;
  140. extern AVCodec ff_h264_qsv_decoder;
  141. extern AVCodec ff_h264_rkmpp_decoder;
  142. extern AVCodec ff_hap_encoder;
  143. extern AVCodec ff_hap_decoder;
  144. extern AVCodec ff_hevc_decoder;
  145. extern AVCodec ff_hevc_qsv_decoder;
  146. extern AVCodec ff_hevc_rkmpp_decoder;
  147. extern AVCodec ff_hevc_v4l2m2m_decoder;
  148. extern AVCodec ff_hnm4_video_decoder;
  149. extern AVCodec ff_hq_hqa_decoder;
  150. extern AVCodec ff_hqx_decoder;
  151. extern AVCodec ff_huffyuv_encoder;
  152. extern AVCodec ff_huffyuv_decoder;
  153. extern AVCodec ff_hymt_decoder;
  154. extern AVCodec ff_idcin_decoder;
  155. extern AVCodec ff_iff_ilbm_decoder;
  156. extern AVCodec ff_imm4_decoder;
  157. extern AVCodec ff_indeo2_decoder;
  158. extern AVCodec ff_indeo3_decoder;
  159. extern AVCodec ff_indeo4_decoder;
  160. extern AVCodec ff_indeo5_decoder;
  161. extern AVCodec ff_interplay_video_decoder;
  162. extern AVCodec ff_jpeg2000_encoder;
  163. extern AVCodec ff_jpeg2000_decoder;
  164. extern AVCodec ff_jpegls_encoder;
  165. extern AVCodec ff_jpegls_decoder;
  166. extern AVCodec ff_jv_decoder;
  167. extern AVCodec ff_kgv1_decoder;
  168. extern AVCodec ff_kmvc_decoder;
  169. extern AVCodec ff_lagarith_decoder;
  170. extern AVCodec ff_ljpeg_encoder;
  171. extern AVCodec ff_loco_decoder;
  172. extern AVCodec ff_m101_decoder;
  173. extern AVCodec ff_magicyuv_encoder;
  174. extern AVCodec ff_magicyuv_decoder;
  175. extern AVCodec ff_mdec_decoder;
  176. extern AVCodec ff_mimic_decoder;
  177. extern AVCodec ff_mjpeg_encoder;
  178. extern AVCodec ff_mjpeg_decoder;
  179. extern AVCodec ff_mjpegb_decoder;
  180. extern AVCodec ff_mmvideo_decoder;
  181. extern AVCodec ff_motionpixels_decoder;
  182. extern AVCodec ff_mpeg1video_encoder;
  183. extern AVCodec ff_mpeg1video_decoder;
  184. extern AVCodec ff_mpeg2video_encoder;
  185. extern AVCodec ff_mpeg2video_decoder;
  186. extern AVCodec ff_mpeg4_encoder;
  187. extern AVCodec ff_mpeg4_decoder;
  188. extern AVCodec ff_mpeg4_crystalhd_decoder;
  189. extern AVCodec ff_mpeg4_v4l2m2m_decoder;
  190. extern AVCodec ff_mpeg4_mmal_decoder;
  191. extern AVCodec ff_mpegvideo_decoder;
  192. extern AVCodec ff_mpeg1_v4l2m2m_decoder;
  193. extern AVCodec ff_mpeg2_mmal_decoder;
  194. extern AVCodec ff_mpeg2_crystalhd_decoder;
  195. extern AVCodec ff_mpeg2_v4l2m2m_decoder;
  196. extern AVCodec ff_mpeg2_qsv_decoder;
  197. extern AVCodec ff_mpeg2_mediacodec_decoder;
  198. extern AVCodec ff_msa1_decoder;
  199. extern AVCodec ff_mscc_decoder;
  200. extern AVCodec ff_msmpeg4v1_decoder;
  201. extern AVCodec ff_msmpeg4v2_encoder;
  202. extern AVCodec ff_msmpeg4v2_decoder;
  203. extern AVCodec ff_msmpeg4v3_encoder;
  204. extern AVCodec ff_msmpeg4v3_decoder;
  205. extern AVCodec ff_msmpeg4_crystalhd_decoder;
  206. extern AVCodec ff_msrle_decoder;
  207. extern AVCodec ff_mss1_decoder;
  208. extern AVCodec ff_mss2_decoder;
  209. extern AVCodec ff_msvideo1_encoder;
  210. extern AVCodec ff_msvideo1_decoder;
  211. extern AVCodec ff_mszh_decoder;
  212. extern AVCodec ff_mts2_decoder;
  213. extern AVCodec ff_mvc1_decoder;
  214. extern AVCodec ff_mvc2_decoder;
  215. extern AVCodec ff_mwsc_decoder;
  216. extern AVCodec ff_mxpeg_decoder;
  217. extern AVCodec ff_nuv_decoder;
  218. extern AVCodec ff_paf_video_decoder;
  219. extern AVCodec ff_pam_encoder;
  220. extern AVCodec ff_pam_decoder;
  221. extern AVCodec ff_pbm_encoder;
  222. extern AVCodec ff_pbm_decoder;
  223. extern AVCodec ff_pcx_encoder;
  224. extern AVCodec ff_pcx_decoder;
  225. extern AVCodec ff_pgm_encoder;
  226. extern AVCodec ff_pgm_decoder;
  227. extern AVCodec ff_pgmyuv_encoder;
  228. extern AVCodec ff_pgmyuv_decoder;
  229. extern AVCodec ff_pictor_decoder;
  230. extern AVCodec ff_pixlet_decoder;
  231. extern AVCodec ff_png_encoder;
  232. extern AVCodec ff_png_decoder;
  233. extern AVCodec ff_ppm_encoder;
  234. extern AVCodec ff_ppm_decoder;
  235. extern AVCodec ff_prores_encoder;
  236. extern AVCodec ff_prores_decoder;
  237. extern AVCodec ff_prores_aw_encoder;
  238. extern AVCodec ff_prores_ks_encoder;
  239. extern AVCodec ff_prosumer_decoder;
  240. extern AVCodec ff_psd_decoder;
  241. extern AVCodec ff_ptx_decoder;
  242. extern AVCodec ff_qdraw_decoder;
  243. extern AVCodec ff_qpeg_decoder;
  244. extern AVCodec ff_qtrle_encoder;
  245. extern AVCodec ff_qtrle_decoder;
  246. extern AVCodec ff_r10k_encoder;
  247. extern AVCodec ff_r10k_decoder;
  248. extern AVCodec ff_r210_encoder;
  249. extern AVCodec ff_r210_decoder;
  250. extern AVCodec ff_rasc_decoder;
  251. extern AVCodec ff_rawvideo_encoder;
  252. extern AVCodec ff_rawvideo_decoder;
  253. extern AVCodec ff_rl2_decoder;
  254. extern AVCodec ff_roq_encoder;
  255. extern AVCodec ff_roq_decoder;
  256. extern AVCodec ff_rpza_decoder;
  257. extern AVCodec ff_rscc_decoder;
  258. extern AVCodec ff_rv10_encoder;
  259. extern AVCodec ff_rv10_decoder;
  260. extern AVCodec ff_rv20_encoder;
  261. extern AVCodec ff_rv20_decoder;
  262. extern AVCodec ff_rv30_decoder;
  263. extern AVCodec ff_rv40_decoder;
  264. extern AVCodec ff_s302m_encoder;
  265. extern AVCodec ff_s302m_decoder;
  266. extern AVCodec ff_sanm_decoder;
  267. extern AVCodec ff_scpr_decoder;
  268. extern AVCodec ff_screenpresso_decoder;
  269. extern AVCodec ff_sdx2_dpcm_decoder;
  270. extern AVCodec ff_sgi_encoder;
  271. extern AVCodec ff_sgi_decoder;
  272. extern AVCodec ff_sgirle_decoder;
  273. extern AVCodec ff_sheervideo_decoder;
  274. extern AVCodec ff_smacker_decoder;
  275. extern AVCodec ff_smc_decoder;
  276. extern AVCodec ff_smvjpeg_decoder;
  277. extern AVCodec ff_snow_encoder;
  278. extern AVCodec ff_snow_decoder;
  279. extern AVCodec ff_sp5x_decoder;
  280. extern AVCodec ff_speedhq_decoder;
  281. extern AVCodec ff_srgc_decoder;
  282. extern AVCodec ff_sunrast_encoder;
  283. extern AVCodec ff_sunrast_decoder;
  284. extern AVCodec ff_svq1_encoder;
  285. extern AVCodec ff_svq1_decoder;
  286. extern AVCodec ff_svq3_decoder;
  287. extern AVCodec ff_targa_encoder;
  288. extern AVCodec ff_targa_decoder;
  289. extern AVCodec ff_targa_y216_decoder;
  290. extern AVCodec ff_tdsc_decoder;
  291. extern AVCodec ff_theora_decoder;
  292. extern AVCodec ff_thp_decoder;
  293. extern AVCodec ff_tiertexseqvideo_decoder;
  294. extern AVCodec ff_tiff_encoder;
  295. extern AVCodec ff_tiff_decoder;
  296. extern AVCodec ff_tmv_decoder;
  297. extern AVCodec ff_truemotion1_decoder;
  298. extern AVCodec ff_truemotion2_decoder;
  299. extern AVCodec ff_truemotion2rt_decoder;
  300. extern AVCodec ff_tscc_decoder;
  301. extern AVCodec ff_tscc2_decoder;
  302. extern AVCodec ff_txd_decoder;
  303. extern AVCodec ff_ulti_decoder;
  304. extern AVCodec ff_utvideo_encoder;
  305. extern AVCodec ff_utvideo_decoder;
  306. extern AVCodec ff_v210_encoder;
  307. extern AVCodec ff_v210_decoder;
  308. extern AVCodec ff_v210x_decoder;
  309. extern AVCodec ff_v308_encoder;
  310. extern AVCodec ff_v308_decoder;
  311. extern AVCodec ff_v408_encoder;
  312. extern AVCodec ff_v408_decoder;
  313. extern AVCodec ff_v410_encoder;
  314. extern AVCodec ff_v410_decoder;
  315. extern AVCodec ff_vb_decoder;
  316. extern AVCodec ff_vble_decoder;
  317. extern AVCodec ff_vc1_decoder;
  318. extern AVCodec ff_vc1_crystalhd_decoder;
  319. extern AVCodec ff_vc1image_decoder;
  320. extern AVCodec ff_vc1_mmal_decoder;
  321. extern AVCodec ff_vc1_qsv_decoder;
  322. extern AVCodec ff_vc1_v4l2m2m_decoder;
  323. extern AVCodec ff_vc2_encoder;
  324. extern AVCodec ff_vcr1_decoder;
  325. extern AVCodec ff_vmdvideo_decoder;
  326. extern AVCodec ff_vmnc_decoder;
  327. extern AVCodec ff_vp3_decoder;
  328. extern AVCodec ff_vp5_decoder;
  329. extern AVCodec ff_vp6_decoder;
  330. extern AVCodec ff_vp6a_decoder;
  331. extern AVCodec ff_vp6f_decoder;
  332. extern AVCodec ff_vp7_decoder;
  333. extern AVCodec ff_vp8_decoder;
  334. extern AVCodec ff_vp8_rkmpp_decoder;
  335. extern AVCodec ff_vp8_v4l2m2m_decoder;
  336. extern AVCodec ff_vp9_decoder;
  337. extern AVCodec ff_vp9_rkmpp_decoder;
  338. extern AVCodec ff_vp9_v4l2m2m_decoder;
  339. extern AVCodec ff_vqa_decoder;
  340. extern AVCodec ff_webp_decoder;
  341. extern AVCodec ff_wcmv_decoder;
  342. extern AVCodec ff_wrapped_avframe_encoder;
  343. extern AVCodec ff_wrapped_avframe_decoder;
  344. extern AVCodec ff_wmv1_encoder;
  345. extern AVCodec ff_wmv1_decoder;
  346. extern AVCodec ff_wmv2_encoder;
  347. extern AVCodec ff_wmv2_decoder;
  348. extern AVCodec ff_wmv3_decoder;
  349. extern AVCodec ff_wmv3_crystalhd_decoder;
  350. extern AVCodec ff_wmv3image_decoder;
  351. extern AVCodec ff_wnv1_decoder;
  352. extern AVCodec ff_xan_wc3_decoder;
  353. extern AVCodec ff_xan_wc4_decoder;
  354. extern AVCodec ff_xbm_encoder;
  355. extern AVCodec ff_xbm_decoder;
  356. extern AVCodec ff_xface_encoder;
  357. extern AVCodec ff_xface_decoder;
  358. extern AVCodec ff_xl_decoder;
  359. extern AVCodec ff_xpm_decoder;
  360. extern AVCodec ff_xwd_encoder;
  361. extern AVCodec ff_xwd_decoder;
  362. extern AVCodec ff_y41p_encoder;
  363. extern AVCodec ff_y41p_decoder;
  364. extern AVCodec ff_ylc_decoder;
  365. extern AVCodec ff_yop_decoder;
  366. extern AVCodec ff_yuv4_encoder;
  367. extern AVCodec ff_yuv4_decoder;
  368. extern AVCodec ff_zero12v_decoder;
  369. extern AVCodec ff_zerocodec_decoder;
  370. extern AVCodec ff_zlib_encoder;
  371. extern AVCodec ff_zlib_decoder;
  372. extern AVCodec ff_zmbv_encoder;
  373. extern AVCodec ff_zmbv_decoder;
  374. /* audio codecs */
  375. extern AVCodec ff_aac_encoder;
  376. extern AVCodec ff_aac_decoder;
  377. extern AVCodec ff_aac_fixed_decoder;
  378. extern AVCodec ff_aac_latm_decoder;
  379. extern AVCodec ff_ac3_encoder;
  380. extern AVCodec ff_ac3_decoder;
  381. extern AVCodec ff_ac3_fixed_encoder;
  382. extern AVCodec ff_ac3_fixed_decoder;
  383. extern AVCodec ff_alac_encoder;
  384. extern AVCodec ff_alac_decoder;
  385. extern AVCodec ff_als_decoder;
  386. extern AVCodec ff_amrnb_decoder;
  387. extern AVCodec ff_amrwb_decoder;
  388. extern AVCodec ff_ape_decoder;
  389. extern AVCodec ff_aptx_encoder;
  390. extern AVCodec ff_aptx_decoder;
  391. extern AVCodec ff_aptx_hd_encoder;
  392. extern AVCodec ff_aptx_hd_decoder;
  393. extern AVCodec ff_atrac1_decoder;
  394. extern AVCodec ff_atrac3_decoder;
  395. extern AVCodec ff_atrac3al_decoder;
  396. extern AVCodec ff_atrac3p_decoder;
  397. extern AVCodec ff_atrac3pal_decoder;
  398. extern AVCodec ff_atrac9_decoder;
  399. extern AVCodec ff_binkaudio_dct_decoder;
  400. extern AVCodec ff_binkaudio_rdft_decoder;
  401. extern AVCodec ff_bmv_audio_decoder;
  402. extern AVCodec ff_cook_decoder;
  403. extern AVCodec ff_dca_encoder;
  404. extern AVCodec ff_dca_decoder;
  405. extern AVCodec ff_dolby_e_decoder;
  406. extern AVCodec ff_dsd_lsbf_decoder;
  407. extern AVCodec ff_dsd_msbf_decoder;
  408. extern AVCodec ff_dsd_lsbf_planar_decoder;
  409. extern AVCodec ff_dsd_msbf_planar_decoder;
  410. extern AVCodec ff_dsicinaudio_decoder;
  411. extern AVCodec ff_dss_sp_decoder;
  412. extern AVCodec ff_dst_decoder;
  413. extern AVCodec ff_eac3_encoder;
  414. extern AVCodec ff_eac3_decoder;
  415. extern AVCodec ff_evrc_decoder;
  416. extern AVCodec ff_ffwavesynth_decoder;
  417. extern AVCodec ff_flac_encoder;
  418. extern AVCodec ff_flac_decoder;
  419. extern AVCodec ff_g723_1_encoder;
  420. extern AVCodec ff_g723_1_decoder;
  421. extern AVCodec ff_g729_decoder;
  422. extern AVCodec ff_gsm_decoder;
  423. extern AVCodec ff_gsm_ms_decoder;
  424. extern AVCodec ff_hcom_decoder;
  425. extern AVCodec ff_iac_decoder;
  426. extern AVCodec ff_ilbc_decoder;
  427. extern AVCodec ff_imc_decoder;
  428. extern AVCodec ff_interplay_acm_decoder;
  429. extern AVCodec ff_mace3_decoder;
  430. extern AVCodec ff_mace6_decoder;
  431. extern AVCodec ff_metasound_decoder;
  432. extern AVCodec ff_mlp_encoder;
  433. extern AVCodec ff_mlp_decoder;
  434. extern AVCodec ff_mp1_decoder;
  435. extern AVCodec ff_mp1float_decoder;
  436. extern AVCodec ff_mp2_encoder;
  437. extern AVCodec ff_mp2_decoder;
  438. extern AVCodec ff_mp2float_decoder;
  439. extern AVCodec ff_mp2fixed_encoder;
  440. extern AVCodec ff_mp3float_decoder;
  441. extern AVCodec ff_mp3_decoder;
  442. extern AVCodec ff_mp3adufloat_decoder;
  443. extern AVCodec ff_mp3adu_decoder;
  444. extern AVCodec ff_mp3on4float_decoder;
  445. extern AVCodec ff_mp3on4_decoder;
  446. extern AVCodec ff_mpc7_decoder;
  447. extern AVCodec ff_mpc8_decoder;
  448. extern AVCodec ff_nellymoser_encoder;
  449. extern AVCodec ff_nellymoser_decoder;
  450. extern AVCodec ff_on2avc_decoder;
  451. extern AVCodec ff_opus_encoder;
  452. extern AVCodec ff_opus_decoder;
  453. extern AVCodec ff_paf_audio_decoder;
  454. extern AVCodec ff_qcelp_decoder;
  455. extern AVCodec ff_qdm2_decoder;
  456. extern AVCodec ff_qdmc_decoder;
  457. extern AVCodec ff_ra_144_encoder;
  458. extern AVCodec ff_ra_144_decoder;
  459. extern AVCodec ff_ra_288_decoder;
  460. extern AVCodec ff_ralf_decoder;
  461. extern AVCodec ff_sbc_encoder;
  462. extern AVCodec ff_sbc_decoder;
  463. extern AVCodec ff_shorten_decoder;
  464. extern AVCodec ff_sipr_decoder;
  465. extern AVCodec ff_smackaud_decoder;
  466. extern AVCodec ff_sonic_encoder;
  467. extern AVCodec ff_sonic_decoder;
  468. extern AVCodec ff_sonic_ls_encoder;
  469. extern AVCodec ff_tak_decoder;
  470. extern AVCodec ff_truehd_encoder;
  471. extern AVCodec ff_truehd_decoder;
  472. extern AVCodec ff_truespeech_decoder;
  473. extern AVCodec ff_tta_encoder;
  474. extern AVCodec ff_tta_decoder;
  475. extern AVCodec ff_twinvq_decoder;
  476. extern AVCodec ff_vmdaudio_decoder;
  477. extern AVCodec ff_vorbis_encoder;
  478. extern AVCodec ff_vorbis_decoder;
  479. extern AVCodec ff_wavpack_encoder;
  480. extern AVCodec ff_wavpack_decoder;
  481. extern AVCodec ff_wmalossless_decoder;
  482. extern AVCodec ff_wmapro_decoder;
  483. extern AVCodec ff_wmav1_encoder;
  484. extern AVCodec ff_wmav1_decoder;
  485. extern AVCodec ff_wmav2_encoder;
  486. extern AVCodec ff_wmav2_decoder;
  487. extern AVCodec ff_wmavoice_decoder;
  488. extern AVCodec ff_ws_snd1_decoder;
  489. extern AVCodec ff_xma1_decoder;
  490. extern AVCodec ff_xma2_decoder;
  491. /* PCM codecs */
  492. extern AVCodec ff_pcm_alaw_encoder;
  493. extern AVCodec ff_pcm_alaw_decoder;
  494. extern AVCodec ff_pcm_bluray_decoder;
  495. extern AVCodec ff_pcm_dvd_encoder;
  496. extern AVCodec ff_pcm_dvd_decoder;
  497. extern AVCodec ff_pcm_f16le_decoder;
  498. extern AVCodec ff_pcm_f24le_decoder;
  499. extern AVCodec ff_pcm_f32be_encoder;
  500. extern AVCodec ff_pcm_f32be_decoder;
  501. extern AVCodec ff_pcm_f32le_encoder;
  502. extern AVCodec ff_pcm_f32le_decoder;
  503. extern AVCodec ff_pcm_f64be_encoder;
  504. extern AVCodec ff_pcm_f64be_decoder;
  505. extern AVCodec ff_pcm_f64le_encoder;
  506. extern AVCodec ff_pcm_f64le_decoder;
  507. extern AVCodec ff_pcm_lxf_decoder;
  508. extern AVCodec ff_pcm_mulaw_encoder;
  509. extern AVCodec ff_pcm_mulaw_decoder;
  510. extern AVCodec ff_pcm_s8_encoder;
  511. extern AVCodec ff_pcm_s8_decoder;
  512. extern AVCodec ff_pcm_s8_planar_encoder;
  513. extern AVCodec ff_pcm_s8_planar_decoder;
  514. extern AVCodec ff_pcm_s16be_encoder;
  515. extern AVCodec ff_pcm_s16be_decoder;
  516. extern AVCodec ff_pcm_s16be_planar_encoder;
  517. extern AVCodec ff_pcm_s16be_planar_decoder;
  518. extern AVCodec ff_pcm_s16le_encoder;
  519. extern AVCodec ff_pcm_s16le_decoder;
  520. extern AVCodec ff_pcm_s16le_planar_encoder;
  521. extern AVCodec ff_pcm_s16le_planar_decoder;
  522. extern AVCodec ff_pcm_s24be_encoder;
  523. extern AVCodec ff_pcm_s24be_decoder;
  524. extern AVCodec ff_pcm_s24daud_encoder;
  525. extern AVCodec ff_pcm_s24daud_decoder;
  526. extern AVCodec ff_pcm_s24le_encoder;
  527. extern AVCodec ff_pcm_s24le_decoder;
  528. extern AVCodec ff_pcm_s24le_planar_encoder;
  529. extern AVCodec ff_pcm_s24le_planar_decoder;
  530. extern AVCodec ff_pcm_s32be_encoder;
  531. extern AVCodec ff_pcm_s32be_decoder;
  532. extern AVCodec ff_pcm_s32le_encoder;
  533. extern AVCodec ff_pcm_s32le_decoder;
  534. extern AVCodec ff_pcm_s32le_planar_encoder;
  535. extern AVCodec ff_pcm_s32le_planar_decoder;
  536. extern AVCodec ff_pcm_s64be_encoder;
  537. extern AVCodec ff_pcm_s64be_decoder;
  538. extern AVCodec ff_pcm_s64le_encoder;
  539. extern AVCodec ff_pcm_s64le_decoder;
  540. extern AVCodec ff_pcm_u8_encoder;
  541. extern AVCodec ff_pcm_u8_decoder;
  542. extern AVCodec ff_pcm_u16be_encoder;
  543. extern AVCodec ff_pcm_u16be_decoder;
  544. extern AVCodec ff_pcm_u16le_encoder;
  545. extern AVCodec ff_pcm_u16le_decoder;
  546. extern AVCodec ff_pcm_u24be_encoder;
  547. extern AVCodec ff_pcm_u24be_decoder;
  548. extern AVCodec ff_pcm_u24le_encoder;
  549. extern AVCodec ff_pcm_u24le_decoder;
  550. extern AVCodec ff_pcm_u32be_encoder;
  551. extern AVCodec ff_pcm_u32be_decoder;
  552. extern AVCodec ff_pcm_u32le_encoder;
  553. extern AVCodec ff_pcm_u32le_decoder;
  554. extern AVCodec ff_pcm_vidc_encoder;
  555. extern AVCodec ff_pcm_vidc_decoder;
  556. extern AVCodec ff_pcm_zork_decoder;
  557. /* DPCM codecs */
  558. extern AVCodec ff_gremlin_dpcm_decoder;
  559. extern AVCodec ff_interplay_dpcm_decoder;
  560. extern AVCodec ff_roq_dpcm_encoder;
  561. extern AVCodec ff_roq_dpcm_decoder;
  562. extern AVCodec ff_sol_dpcm_decoder;
  563. extern AVCodec ff_xan_dpcm_decoder;
  564. /* ADPCM codecs */
  565. extern AVCodec ff_adpcm_4xm_decoder;
  566. extern AVCodec ff_adpcm_adx_encoder;
  567. extern AVCodec ff_adpcm_adx_decoder;
  568. extern AVCodec ff_adpcm_afc_decoder;
  569. extern AVCodec ff_adpcm_aica_decoder;
  570. extern AVCodec ff_adpcm_ct_decoder;
  571. extern AVCodec ff_adpcm_dtk_decoder;
  572. extern AVCodec ff_adpcm_ea_decoder;
  573. extern AVCodec ff_adpcm_ea_maxis_xa_decoder;
  574. extern AVCodec ff_adpcm_ea_r1_decoder;
  575. extern AVCodec ff_adpcm_ea_r2_decoder;
  576. extern AVCodec ff_adpcm_ea_r3_decoder;
  577. extern AVCodec ff_adpcm_ea_xas_decoder;
  578. extern AVCodec ff_adpcm_g722_encoder;
  579. extern AVCodec ff_adpcm_g722_decoder;
  580. extern AVCodec ff_adpcm_g726_encoder;
  581. extern AVCodec ff_adpcm_g726_decoder;
  582. extern AVCodec ff_adpcm_g726le_encoder;
  583. extern AVCodec ff_adpcm_g726le_decoder;
  584. extern AVCodec ff_adpcm_ima_amv_decoder;
  585. extern AVCodec ff_adpcm_ima_apc_decoder;
  586. extern AVCodec ff_adpcm_ima_dat4_decoder;
  587. extern AVCodec ff_adpcm_ima_dk3_decoder;
  588. extern AVCodec ff_adpcm_ima_dk4_decoder;
  589. extern AVCodec ff_adpcm_ima_ea_eacs_decoder;
  590. extern AVCodec ff_adpcm_ima_ea_sead_decoder;
  591. extern AVCodec ff_adpcm_ima_iss_decoder;
  592. extern AVCodec ff_adpcm_ima_oki_decoder;
  593. extern AVCodec ff_adpcm_ima_qt_encoder;
  594. extern AVCodec ff_adpcm_ima_qt_decoder;
  595. extern AVCodec ff_adpcm_ima_rad_decoder;
  596. extern AVCodec ff_adpcm_ima_smjpeg_decoder;
  597. extern AVCodec ff_adpcm_ima_wav_encoder;
  598. extern AVCodec ff_adpcm_ima_wav_decoder;
  599. extern AVCodec ff_adpcm_ima_ws_decoder;
  600. extern AVCodec ff_adpcm_ms_encoder;
  601. extern AVCodec ff_adpcm_ms_decoder;
  602. extern AVCodec ff_adpcm_mtaf_decoder;
  603. extern AVCodec ff_adpcm_psx_decoder;
  604. extern AVCodec ff_adpcm_sbpro_2_decoder;
  605. extern AVCodec ff_adpcm_sbpro_3_decoder;
  606. extern AVCodec ff_adpcm_sbpro_4_decoder;
  607. extern AVCodec ff_adpcm_swf_encoder;
  608. extern AVCodec ff_adpcm_swf_decoder;
  609. extern AVCodec ff_adpcm_thp_decoder;
  610. extern AVCodec ff_adpcm_thp_le_decoder;
  611. extern AVCodec ff_adpcm_vima_decoder;
  612. extern AVCodec ff_adpcm_xa_decoder;
  613. extern AVCodec ff_adpcm_yamaha_encoder;
  614. extern AVCodec ff_adpcm_yamaha_decoder;
  615. /* subtitles */
  616. extern AVCodec ff_ssa_encoder;
  617. extern AVCodec ff_ssa_decoder;
  618. extern AVCodec ff_ass_encoder;
  619. extern AVCodec ff_ass_decoder;
  620. extern AVCodec ff_ccaption_decoder;
  621. extern AVCodec ff_dvbsub_encoder;
  622. extern AVCodec ff_dvbsub_decoder;
  623. extern AVCodec ff_dvdsub_encoder;
  624. extern AVCodec ff_dvdsub_decoder;
  625. extern AVCodec ff_jacosub_decoder;
  626. extern AVCodec ff_microdvd_decoder;
  627. extern AVCodec ff_movtext_encoder;
  628. extern AVCodec ff_movtext_decoder;
  629. extern AVCodec ff_mpl2_decoder;
  630. extern AVCodec ff_pgssub_decoder;
  631. extern AVCodec ff_pjs_decoder;
  632. extern AVCodec ff_realtext_decoder;
  633. extern AVCodec ff_sami_decoder;
  634. extern AVCodec ff_srt_encoder;
  635. extern AVCodec ff_srt_decoder;
  636. extern AVCodec ff_stl_decoder;
  637. extern AVCodec ff_subrip_encoder;
  638. extern AVCodec ff_subrip_decoder;
  639. extern AVCodec ff_subviewer_decoder;
  640. extern AVCodec ff_subviewer1_decoder;
  641. extern AVCodec ff_text_encoder;
  642. extern AVCodec ff_text_decoder;
  643. extern AVCodec ff_vplayer_decoder;
  644. extern AVCodec ff_webvtt_encoder;
  645. extern AVCodec ff_webvtt_decoder;
  646. extern AVCodec ff_xsub_encoder;
  647. extern AVCodec ff_xsub_decoder;
  648. /* external libraries */
  649. extern AVCodec ff_aac_at_encoder;
  650. extern AVCodec ff_aac_at_decoder;
  651. extern AVCodec ff_ac3_at_decoder;
  652. extern AVCodec ff_adpcm_ima_qt_at_decoder;
  653. extern AVCodec ff_alac_at_encoder;
  654. extern AVCodec ff_alac_at_decoder;
  655. extern AVCodec ff_amr_nb_at_decoder;
  656. extern AVCodec ff_eac3_at_decoder;
  657. extern AVCodec ff_gsm_ms_at_decoder;
  658. extern AVCodec ff_ilbc_at_encoder;
  659. extern AVCodec ff_ilbc_at_decoder;
  660. extern AVCodec ff_mp1_at_decoder;
  661. extern AVCodec ff_mp2_at_decoder;
  662. extern AVCodec ff_mp3_at_decoder;
  663. extern AVCodec ff_pcm_alaw_at_encoder;
  664. extern AVCodec ff_pcm_alaw_at_decoder;
  665. extern AVCodec ff_pcm_mulaw_at_encoder;
  666. extern AVCodec ff_pcm_mulaw_at_decoder;
  667. extern AVCodec ff_qdmc_at_decoder;
  668. extern AVCodec ff_qdm2_at_decoder;
  669. extern AVCodec ff_libaom_av1_decoder;
  670. extern AVCodec ff_libaom_av1_encoder;
  671. extern AVCodec ff_libcelt_decoder;
  672. extern AVCodec ff_libcodec2_encoder;
  673. extern AVCodec ff_libcodec2_decoder;
  674. extern AVCodec ff_libdav1d_decoder;
  675. extern AVCodec ff_libdavs2_decoder;
  676. extern AVCodec ff_libfdk_aac_encoder;
  677. extern AVCodec ff_libfdk_aac_decoder;
  678. extern AVCodec ff_libgsm_encoder;
  679. extern AVCodec ff_libgsm_decoder;
  680. extern AVCodec ff_libgsm_ms_encoder;
  681. extern AVCodec ff_libgsm_ms_decoder;
  682. extern AVCodec ff_libilbc_encoder;
  683. extern AVCodec ff_libilbc_decoder;
  684. extern AVCodec ff_libmp3lame_encoder;
  685. extern AVCodec ff_libopencore_amrnb_encoder;
  686. extern AVCodec ff_libopencore_amrnb_decoder;
  687. extern AVCodec ff_libopencore_amrwb_decoder;
  688. extern AVCodec ff_libopenjpeg_encoder;
  689. extern AVCodec ff_libopenjpeg_decoder;
  690. extern AVCodec ff_libopus_encoder;
  691. extern AVCodec ff_libopus_decoder;
  692. extern AVCodec ff_librsvg_decoder;
  693. extern AVCodec ff_libshine_encoder;
  694. extern AVCodec ff_libspeex_encoder;
  695. extern AVCodec ff_libspeex_decoder;
  696. extern AVCodec ff_libtheora_encoder;
  697. extern AVCodec ff_libtwolame_encoder;
  698. extern AVCodec ff_libvo_amrwbenc_encoder;
  699. extern AVCodec ff_libvorbis_encoder;
  700. extern AVCodec ff_libvorbis_decoder;
  701. extern AVCodec ff_libvpx_vp8_encoder;
  702. extern AVCodec ff_libvpx_vp8_decoder;
  703. extern AVCodec ff_libvpx_vp9_encoder;
  704. extern AVCodec ff_libvpx_vp9_decoder;
  705. extern AVCodec ff_libwavpack_encoder;
  706. /* preferred over libwebp */
  707. extern AVCodec ff_libwebp_anim_encoder;
  708. extern AVCodec ff_libwebp_encoder;
  709. extern AVCodec ff_libx262_encoder;
  710. extern AVCodec ff_libx264_encoder;
  711. extern AVCodec ff_libx264rgb_encoder;
  712. extern AVCodec ff_libx265_encoder;
  713. extern AVCodec ff_libxavs_encoder;
  714. extern AVCodec ff_libxavs2_encoder;
  715. extern AVCodec ff_libxvid_encoder;
  716. extern AVCodec ff_libzvbi_teletext_decoder;
  717. /* text */
  718. extern AVCodec ff_bintext_decoder;
  719. extern AVCodec ff_xbin_decoder;
  720. extern AVCodec ff_idf_decoder;
  721. /* external libraries, that shouldn't be used by default if one of the
  722. * above is available */
  723. extern AVCodec ff_h263_v4l2m2m_encoder;
  724. extern AVCodec ff_libopenh264_encoder;
  725. extern AVCodec ff_libopenh264_decoder;
  726. extern AVCodec ff_h264_amf_encoder;
  727. extern AVCodec ff_h264_cuvid_decoder;
  728. extern AVCodec ff_h264_nvenc_encoder;
  729. extern AVCodec ff_h264_omx_encoder;
  730. extern AVCodec ff_h264_qsv_encoder;
  731. extern AVCodec ff_h264_v4l2m2m_encoder;
  732. extern AVCodec ff_h264_vaapi_encoder;
  733. extern AVCodec ff_h264_videotoolbox_encoder;
  734. #if FF_API_NVENC_OLD_NAME
  735. extern AVCodec ff_nvenc_encoder;
  736. extern AVCodec ff_nvenc_h264_encoder;
  737. extern AVCodec ff_nvenc_hevc_encoder;
  738. #endif
  739. extern AVCodec ff_hevc_amf_encoder;
  740. extern AVCodec ff_hevc_cuvid_decoder;
  741. extern AVCodec ff_hevc_mediacodec_decoder;
  742. extern AVCodec ff_hevc_nvenc_encoder;
  743. extern AVCodec ff_hevc_qsv_encoder;
  744. extern AVCodec ff_hevc_v4l2m2m_encoder;
  745. extern AVCodec ff_hevc_vaapi_encoder;
  746. extern AVCodec ff_hevc_videotoolbox_encoder;
  747. extern AVCodec ff_libkvazaar_encoder;
  748. extern AVCodec ff_mjpeg_cuvid_decoder;
  749. extern AVCodec ff_mjpeg_qsv_encoder;
  750. extern AVCodec ff_mjpeg_vaapi_encoder;
  751. extern AVCodec ff_mpeg1_cuvid_decoder;
  752. extern AVCodec ff_mpeg2_cuvid_decoder;
  753. extern AVCodec ff_mpeg2_qsv_encoder;
  754. extern AVCodec ff_mpeg2_vaapi_encoder;
  755. extern AVCodec ff_mpeg4_cuvid_decoder;
  756. extern AVCodec ff_mpeg4_mediacodec_decoder;
  757. extern AVCodec ff_mpeg4_v4l2m2m_encoder;
  758. extern AVCodec ff_vc1_cuvid_decoder;
  759. extern AVCodec ff_vp8_cuvid_decoder;
  760. extern AVCodec ff_vp8_mediacodec_decoder;
  761. extern AVCodec ff_vp8_qsv_decoder;
  762. extern AVCodec ff_vp8_v4l2m2m_encoder;
  763. extern AVCodec ff_vp8_vaapi_encoder;
  764. extern AVCodec ff_vp9_cuvid_decoder;
  765. extern AVCodec ff_vp9_mediacodec_decoder;
  766. extern AVCodec ff_vp9_vaapi_encoder;
  767. // The iterate API is not usable with ossfuzz due to the excessive size of binaries created
  768. #if CONFIG_OSSFUZZ
  769. AVCodec * codec_list[] = {
  770. NULL,
  771. NULL
  772. };
  773. #else
  774. #include "libavcodec/codec_list.c"
  775. #endif
  776. static AVOnce av_codec_static_init = AV_ONCE_INIT;
  777. static void av_codec_init_static(void)
  778. {
  779. for (int i = 0; codec_list[i]; i++) {
  780. if (codec_list[i]->init_static_data)
  781. codec_list[i]->init_static_data((AVCodec*)codec_list[i]);
  782. }
  783. }
  784. const AVCodec *av_codec_iterate(void **opaque)
  785. {
  786. uintptr_t i = (uintptr_t)*opaque;
  787. const AVCodec *c = codec_list[i];
  788. ff_thread_once(&av_codec_static_init, av_codec_init_static);
  789. if (c)
  790. *opaque = (void*)(i + 1);
  791. return c;
  792. }
  793. #if FF_API_NEXT
  794. FF_DISABLE_DEPRECATION_WARNINGS
  795. static AVOnce av_codec_next_init = AV_ONCE_INIT;
  796. static void av_codec_init_next(void)
  797. {
  798. AVCodec *prev = NULL, *p;
  799. void *i = 0;
  800. while ((p = (AVCodec*)av_codec_iterate(&i))) {
  801. if (prev)
  802. prev->next = p;
  803. prev = p;
  804. }
  805. }
  806. av_cold void avcodec_register(AVCodec *codec)
  807. {
  808. ff_thread_once(&av_codec_next_init, av_codec_init_next);
  809. }
  810. AVCodec *av_codec_next(const AVCodec *c)
  811. {
  812. ff_thread_once(&av_codec_next_init, av_codec_init_next);
  813. if (c)
  814. return c->next;
  815. else
  816. return (AVCodec*)codec_list[0];
  817. }
  818. void avcodec_register_all(void)
  819. {
  820. ff_thread_once(&av_codec_next_init, av_codec_init_next);
  821. }
  822. FF_ENABLE_DEPRECATION_WARNINGS
  823. #endif
  824. static enum AVCodecID remap_deprecated_codec_id(enum AVCodecID id)
  825. {
  826. switch(id){
  827. //This is for future deprecatec codec ids, its empty since
  828. //last major bump but will fill up again over time, please don't remove it
  829. default : return id;
  830. }
  831. }
  832. static AVCodec *find_codec(enum AVCodecID id, int (*x)(const AVCodec *))
  833. {
  834. const AVCodec *p, *experimental = NULL;
  835. void *i = 0;
  836. id = remap_deprecated_codec_id(id);
  837. while ((p = av_codec_iterate(&i))) {
  838. if (!x(p))
  839. continue;
  840. if (p->id == id) {
  841. if (p->capabilities & AV_CODEC_CAP_EXPERIMENTAL && !experimental) {
  842. experimental = p;
  843. } else
  844. return (AVCodec*)p;
  845. }
  846. }
  847. return (AVCodec*)experimental;
  848. }
  849. AVCodec *avcodec_find_encoder(enum AVCodecID id)
  850. {
  851. return find_codec(id, av_codec_is_encoder);
  852. }
  853. AVCodec *avcodec_find_decoder(enum AVCodecID id)
  854. {
  855. return find_codec(id, av_codec_is_decoder);
  856. }
  857. static AVCodec *find_codec_by_name(const char *name, int (*x)(const AVCodec *))
  858. {
  859. void *i = 0;
  860. const AVCodec *p;
  861. if (!name)
  862. return NULL;
  863. while ((p = av_codec_iterate(&i))) {
  864. if (!x(p))
  865. continue;
  866. if (strcmp(name, p->name) == 0)
  867. return (AVCodec*)p;
  868. }
  869. return NULL;
  870. }
  871. AVCodec *avcodec_find_encoder_by_name(const char *name)
  872. {
  873. return find_codec_by_name(name, av_codec_is_encoder);
  874. }
  875. AVCodec *avcodec_find_decoder_by_name(const char *name)
  876. {
  877. return find_codec_by_name(name, av_codec_is_decoder);
  878. }