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;
|
void *opaque = NULL;
|
||||||
|
|
||||||
printf("Bitstream filters:\n");
|
printf("Bitstream filters:\n");
|
||||||
while ((bsf = av_bsf_next(&opaque)))
|
while ((bsf = av_bsf_iterate(&opaque)))
|
||||||
printf("%s\n", bsf->name);
|
printf("%s\n", bsf->name);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -5728,7 +5728,7 @@ attribute_deprecated
|
|||||||
void av_bitstream_filter_close(AVBitStreamFilterContext *bsf);
|
void av_bitstream_filter_close(AVBitStreamFilterContext *bsf);
|
||||||
/**
|
/**
|
||||||
* @deprecated the old bitstream filtering API (using AVBitStreamFilterContext)
|
* @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).
|
* AVBSFContext).
|
||||||
*/
|
*/
|
||||||
attribute_deprecated
|
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
|
* @return the next registered bitstream filter or NULL when the iteration is
|
||||||
* finished
|
* finished
|
||||||
*/
|
*/
|
||||||
|
const AVBitStreamFilter *av_bsf_iterate(void **opaque);
|
||||||
|
#if FF_API_NEXT
|
||||||
|
attribute_deprecated
|
||||||
const AVBitStreamFilter *av_bsf_next(void **opaque);
|
const AVBitStreamFilter *av_bsf_next(void **opaque);
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allocate a context for a given bitstream filter. The caller must fill in the
|
* 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;
|
void *opaque = NULL;
|
||||||
|
|
||||||
while (filter != f)
|
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)
|
void av_register_bitstream_filter(AVBitStreamFilter *bsf)
|
||||||
|
@ -52,7 +52,7 @@ extern const AVBitStreamFilter ff_vp9_superframe_split_bsf;
|
|||||||
|
|
||||||
#include "libavcodec/bsf_list.c"
|
#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;
|
uintptr_t i = (uintptr_t)*opaque;
|
||||||
const AVBitStreamFilter *f = bitstream_filters[i];
|
const AVBitStreamFilter *f = bitstream_filters[i];
|
||||||
@ -63,12 +63,18 @@ const AVBitStreamFilter *av_bsf_next(void **opaque)
|
|||||||
return f;
|
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)
|
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++) {
|
while ((f = av_bsf_iterate(&i))) {
|
||||||
const AVBitStreamFilter *f = bitstream_filters[i];
|
|
||||||
if (!strcmp(f->name, name))
|
if (!strcmp(f->name, name))
|
||||||
return f;
|
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)
|
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 */
|
/* find the filter that corresponds to prev */
|
||||||
for (i = 0; prev && bitstream_filters[i]; i++) {
|
while (prev && (f = av_bsf_iterate(&i))) {
|
||||||
if (bitstream_filters[i]->priv_class == prev) {
|
if (f->priv_class == prev) {
|
||||||
i++;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* find next filter with priv options */
|
/* find next filter with priv options */
|
||||||
for (; bitstream_filters[i]; i++)
|
while ((f = av_bsf_iterate(&i))) {
|
||||||
if (bitstream_filters[i]->priv_class)
|
if (f->priv_class)
|
||||||
return bitstream_filters[i]->priv_class;
|
return f->priv_class;
|
||||||
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user