[FFmpeg-devel] [PATCH v2 1/6] lavc: add new API for iterating codecs and codec parsers
Muhammad Faiz
mfcc64 at gmail.com
Wed Jan 3 21:16:06 EET 2018
On Wed, Jan 3, 2018 at 7:42 AM, Josh de Kock <josh at itanimul.li> wrote:
> Also replace linked list with an array.
> ---
> configure | 12 +-
> doc/APIchanges | 4 +
> libavcodec/allcodecs.c | 1473 ++++++++++++++++++++++++++++--------------------
> libavcodec/avcodec.h | 31 +
> libavcodec/parser.c | 87 ++-
> libavcodec/utils.c | 105 ----
> libavcodec/version.h | 3 +
> 7 files changed, 974 insertions(+), 741 deletions(-)
>
> +
> +#include "codec_list.c"
Won't work when building outside source directory. Use "libavcodec/codec_list.c"
> +static void av_codec_init_next(void)
> +{
> + AVCodec *prev = NULL, *p;
> + void *i = 0;
> + while ((p = (AVCodec*)av_codec_iterate(&i))) {
Better use: for (i = 0; codec_list[i]; i++)
> diff --git a/libavcodec/parser.c b/libavcodec/parser.c
> index 670680e..76532e2 100644
> --- a/libavcodec/parser.c
> +++ b/libavcodec/parser.c
> @@ -32,33 +32,104 @@
> #include "internal.h"
> #include "parser.h"
>
> -static AVCodecParser *av_first_parser = NULL;
> +#include "pthread.h"
> +
> +/* Parsers */
> +extern AVCodecParser ff_aac_parser;
> +extern AVCodecParser ff_aac_latm_parser;
> +extern AVCodecParser ff_ac3_parser;
> +extern AVCodecParser ff_adx_parser;
> +extern AVCodecParser ff_bmp_parser;
> +extern AVCodecParser ff_cavsvideo_parser;
> +extern AVCodecParser ff_cook_parser;
> +extern AVCodecParser ff_dca_parser;
> +extern AVCodecParser ff_dirac_parser;
> +extern AVCodecParser ff_dnxhd_parser;
> +extern AVCodecParser ff_dpx_parser;
> +extern AVCodecParser ff_dvaudio_parser;
> +extern AVCodecParser ff_dvbsub_parser;
> +extern AVCodecParser ff_dvdsub_parser;
> +extern AVCodecParser ff_dvd_nav_parser;
> +extern AVCodecParser ff_flac_parser;
> +extern AVCodecParser ff_g729_parser;
> +extern AVCodecParser ff_gsm_parser;
> +extern AVCodecParser ff_h261_parser;
> +extern AVCodecParser ff_h263_parser;
> +extern AVCodecParser ff_h264_parser;
> +extern AVCodecParser ff_hevc_parser;
> +extern AVCodecParser ff_mjpeg_parser;
> +extern AVCodecParser ff_mlp_parser;
> +extern AVCodecParser ff_mpeg4video_parser;
> +extern AVCodecParser ff_mpegaudio_parser;
> +extern AVCodecParser ff_mpegvideo_parser;
> +extern AVCodecParser ff_opus_parser;
> +extern AVCodecParser ff_png_parser;
> +extern AVCodecParser ff_pnm_parser;
> +extern AVCodecParser ff_rv30_parser;
> +extern AVCodecParser ff_rv40_parser;
> +extern AVCodecParser ff_sipr_parser;
> +extern AVCodecParser ff_tak_parser;
> +extern AVCodecParser ff_vc1_parser;
> +extern AVCodecParser ff_vorbis_parser;
> +extern AVCodecParser ff_vp3_parser;
> +extern AVCodecParser ff_vp8_parser;
> +extern AVCodecParser ff_vp9_parser;
> +extern AVCodecParser ff_xma_parser;
Why these are not in allcodecs.c?
More information about the ffmpeg-devel
mailing list