On 21 July 2018 at 18:28, James Almer <jamr...@gmail.com> wrote: > And add it to the list of configurable components in Makefile, so changes > to > the file will be tracked and the usual warning to suggest re-running > configure > will be shown. > > Signed-off-by: James Almer <jamr...@gmail.com> > --- > Makefile | 1 + > configure | 2 +- > libavcodec/Makefile | 1 + > libavcodec/parser.c | 85 ---------------------------------- > libavcodec/parsers.c | 106 +++++++++++++++++++++++++++++++++++++++++++ > 5 files changed, 109 insertions(+), 86 deletions(-) > create mode 100644 libavcodec/parsers.c > > diff --git a/Makefile b/Makefile > index 0cd0a1d6f2..4bf1dfedcf 100644 > --- a/Makefile > +++ b/Makefile > @@ -58,6 +58,7 @@ tools/target_dec_%_fuzzer$(EXESUF): $(FF_DEP_LIBS) > CONFIGURABLE_COMPONENTS = \ > $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) \ > $(SRC_PATH)/libavcodec/bitstream_filters.c \ > + $(SRC_PATH)/libavcodec/parsers.c \ > $(SRC_PATH)/libavformat/protocols.c \ > > config.h: ffbuild/.config > diff --git a/configure b/configure > index 534c62ed98..741f56d565 100755 > --- a/configure > +++ b/configure > @@ -3679,7 +3679,7 @@ CODEC_LIST=" > $ENCODER_LIST > $DECODER_LIST > " > -PARSER_LIST=$(find_things_extern parser AVCodecParser > libavcodec/parser.c) > +PARSER_LIST=$(find_things_extern parser AVCodecParser > libavcodec/parsers.c) > BSF_LIST=$(find_things_extern bsf AVBitStreamFilter > libavcodec/bitstream_filters.c) > HWACCEL_LIST=$(find_things_extern hwaccel AVHWAccel > libavcodec/hwaccels.h) > PROTOCOL_LIST=$(find_things_extern protocol URLProtocol > libavformat/protocols.c) > diff --git a/libavcodec/Makefile b/libavcodec/Makefile > index 2d4bc48dab..e62603f0dd 100644 > --- a/libavcodec/Makefile > +++ b/libavcodec/Makefile > @@ -44,6 +44,7 @@ OBJS = ac3_parser.o > \ > options.o \ > mjpegenc_huffman.o \ > parser.o \ > + parsers.o \ > profiles.o \ > qsv_api.o \ > raw.o \ > diff --git a/libavcodec/parser.c b/libavcodec/parser.c > index f43b197d5e..0a994a3f30 100644 > --- a/libavcodec/parser.c > +++ b/libavcodec/parser.c > @@ -27,95 +27,10 @@ > #include "libavutil/avassert.h" > #include "libavutil/internal.h" > #include "libavutil/mem.h" > -#include "libavutil/thread.h" > > #include "internal.h" > #include "parser.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_sbc_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; > - > -#include "libavcodec/parser_list.c" > - > -static AVOnce av_parser_next_init = AV_ONCE_INIT; > - > -static void av_parser_init_next(void) > -{ > - AVCodecParser *prev = NULL, *p; > - int i = 0; > - while ((p = (AVCodecParser*)parser_list[i++])) { > - if (prev) > - prev->next = p; > - prev = p; > - } > -} > - > -AVCodecParser *av_parser_next(const AVCodecParser *p) > -{ > - ff_thread_once(&av_parser_next_init, av_parser_init_next); > - > - if (p) > - return p->next; > - else > - return (AVCodecParser*)parser_list[0]; > -} > - > -const AVCodecParser *av_parser_iterate(void **opaque) > -{ > - uintptr_t i = (uintptr_t)*opaque; > - const AVCodecParser *p = parser_list[i]; > - > - if (p) > - *opaque = (void*)(i + 1); > - > - return p; > -} > - > -void av_register_codec_parser(AVCodecParser *parser) > -{ > - ff_thread_once(&av_parser_next_init, av_parser_init_next); > -} > - > AVCodecParserContext *av_parser_init(int codec_id) > { > AVCodecParserContext *s = NULL; > diff --git a/libavcodec/parsers.c b/libavcodec/parsers.c > new file mode 100644 > index 0000000000..f2886ff45f > --- /dev/null > +++ b/libavcodec/parsers.c > @@ -0,0 +1,106 @@ > +/* > + * This file is part of FFmpeg. > + * > + * FFmpeg is free software; you can redistribute it and/or > + * modify it under the terms of the GNU Lesser General Public > + * License as published by the Free Software Foundation; either > + * version 2.1 of the License, or (at your option) any later version. > + * > + * FFmpeg is distributed in the hope that it will be useful, > + * 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 > + * License along with FFmpeg; if not, write to the Free Software > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > 02110-1301 USA > + */ > + > +#include <stdint.h> > + > +#include "libavutil/thread.h" > + > +#include "avcodec.h" > + > +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_sbc_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; > + > +#include "libavcodec/parser_list.c" > + > +static AVOnce av_parser_next_init = AV_ONCE_INIT; > + > +static void av_parser_init_next(void) > +{ > + AVCodecParser *prev = NULL, *p; > + int i = 0; > + while ((p = (AVCodecParser*)parser_list[i++])) { > + if (prev) > + prev->next = p; > + prev = p; > + } > +} > + > +AVCodecParser *av_parser_next(const AVCodecParser *p) > +{ > + ff_thread_once(&av_parser_next_init, av_parser_init_next); > + > + if (p) > + return p->next; > + else > + return (AVCodecParser*)parser_list[0]; > +} > + > +const AVCodecParser *av_parser_iterate(void **opaque) > +{ > + uintptr_t i = (uintptr_t)*opaque; > + const AVCodecParser *p = parser_list[i]; > + > + if (p) > + *opaque = (void*)(i + 1); > + > + return p; > +} > + > +void av_register_codec_parser(AVCodecParser *parser) > +{ > + ff_thread_once(&av_parser_next_init, av_parser_init_next); > +} > -- > 2.18.0 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >
Looks fine _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel