mirror of
https://github.com/librempeg/librempeg
synced 2024-11-23 11:39:47 +00:00
lavc/bsf: make BSF iteration the same as other iterators
This commit is contained in:
parent
cdc78058c7
commit
26d879c1ce
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user