On Fri, 2 Feb 2018 19:44:18 +0000 Josh de Kock <j...@itanimul.li> wrote:
> --- > fftools/cmdutils.c | 2 +- > libavcodec/avcodec.h | 6 +++++- > libavcodec/bitstream_filter.c | 4 ++-- > libavcodec/bitstream_filters.c | 29 ++++++++++++++++++----------- > 4 files changed, 26 insertions(+), 15 deletions(-) > > diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c > index 9ecc51b..0b06ccc 100644 > --- a/fftools/cmdutils.c > +++ b/fftools/cmdutils.c > @@ -1586,7 +1586,7 @@ int show_bsfs(void *optctx, const char *opt, const char > *arg) > void *opaque = NULL; > > printf("Bitstream filters:\n"); > - while ((bsf = av_bsf_next(&opaque))) > + while ((bsf = av_bsf_iterate(&opaque))) > printf("%s\n", bsf->name); > printf("\n"); > return 0; > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h > index 99f5fb9..c41779a 100644 > --- a/libavcodec/avcodec.h > +++ b/libavcodec/avcodec.h > @@ -5728,7 +5728,7 @@ attribute_deprecated > void av_bitstream_filter_close(AVBitStreamFilterContext *bsf); > /** > * @deprecated the old bitstream filtering API (using > AVBitStreamFilterContext) > - * is deprecated. Use av_bsf_next() from the new bitstream filtering API > (using > + * is deprecated. Use av_bsf_iterate() from the new bitstream filtering API > (using > * AVBSFContext). > */ > attribute_deprecated > @@ -5750,7 +5750,11 @@ const AVBitStreamFilter *av_bsf_get_by_name(const char > *name); > * @return the next registered bitstream filter or NULL when the iteration is > * finished > */ > +const AVBitStreamFilter *av_bsf_iterate(void **opaque); > +#if FF_API_NEXT > +attribute_deprecated > const AVBitStreamFilter *av_bsf_next(void **opaque); > +#endif > > /** > * Allocate a context for a given bitstream filter. The caller must fill in > the > diff --git a/libavcodec/bitstream_filter.c b/libavcodec/bitstream_filter.c > index ed1cf33..ca11ed3 100644 > --- a/libavcodec/bitstream_filter.c > +++ b/libavcodec/bitstream_filter.c > @@ -34,9 +34,9 @@ const AVBitStreamFilter *av_bitstream_filter_next(const > AVBitStreamFilter *f) > void *opaque = NULL; > > while (filter != f) > - filter = av_bsf_next(&opaque); > + filter = av_bsf_iterate(&opaque); > > - return av_bsf_next(&opaque); > + return av_bsf_iterate(&opaque); > } > > void av_register_bitstream_filter(AVBitStreamFilter *bsf) > diff --git a/libavcodec/bitstream_filters.c b/libavcodec/bitstream_filters.c > index 7b0cb50..338ef82 100644 > --- a/libavcodec/bitstream_filters.c > +++ b/libavcodec/bitstream_filters.c > @@ -52,7 +52,7 @@ extern const AVBitStreamFilter ff_vp9_superframe_split_bsf; > > #include "libavcodec/bsf_list.c" > > -const AVBitStreamFilter *av_bsf_next(void **opaque) > +const AVBitStreamFilter *av_bsf_iterate(void **opaque) > { > uintptr_t i = (uintptr_t)*opaque; > const AVBitStreamFilter *f = bitstream_filters[i]; > @@ -63,12 +63,18 @@ const AVBitStreamFilter *av_bsf_next(void **opaque) > return f; > } > > +#if FF_API_NEXT > +const AVBitStreamFilter *av_bsf_next(void **opaque) { > + return av_bsf_iterate(opaque); > +} > +#endif > + > const AVBitStreamFilter *av_bsf_get_by_name(const char *name) > { > - int i; > + const AVBitStreamFilter *f = NULL; > + void *i = 0; > > - for (i = 0; bitstream_filters[i]; i++) { > - const AVBitStreamFilter *f = bitstream_filters[i]; > + while ((f = av_bsf_iterate(&i))) { > if (!strcmp(f->name, name)) > return f; > } > @@ -78,19 +84,20 @@ const AVBitStreamFilter *av_bsf_get_by_name(const char > *name) > > const AVClass *ff_bsf_child_class_next(const AVClass *prev) > { > - int i; > + const AVBitStreamFilter *f = NULL; > + void *i = 0; > > /* find the filter that corresponds to prev */ > - for (i = 0; prev && bitstream_filters[i]; i++) { > - if (bitstream_filters[i]->priv_class == prev) { > - i++; > + while (prev && (f = av_bsf_iterate(&i))) { > + if (f->priv_class == prev) { > break; > } > } > > /* find next filter with priv options */ > - for (; bitstream_filters[i]; i++) > - if (bitstream_filters[i]->priv_class) > - return bitstream_filters[i]->priv_class; > + while ((f = av_bsf_iterate(&i))) { > + if (f->priv_class) > + return f->priv_class; > + } > return NULL; > } I like _next better than _iterate (as others have also said), but I think I can tolerate it. At least it'll be consistent across all those APIs. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel