On 3 January 2018 at 19:16, Muhammad Faiz <mfc...@gmail.com> wrote: > On Wed, Jan 3, 2018 at 7:42 AM, Josh de Kock <j...@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" >
It pretty much will, this is exactly how hwaccels and bitstream filters currently work. > > > +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? > Because they're parsers. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel