avformat/options: use the iterate API in format_child_class_next()
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
ac36080b2d
commit
bddf53841a
@ -55,35 +55,38 @@ static void *format_child_next(void *obj, void *prev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if FF_API_CHILD_CLASS_NEXT
|
#if FF_API_CHILD_CLASS_NEXT
|
||||||
FF_DISABLE_DEPRECATION_WARNINGS
|
|
||||||
static const AVClass *format_child_class_next(const AVClass *prev)
|
static const AVClass *format_child_class_next(const AVClass *prev)
|
||||||
{
|
{
|
||||||
AVInputFormat *ifmt = NULL;
|
const AVInputFormat *ifmt = NULL;
|
||||||
AVOutputFormat *ofmt = NULL;
|
const AVOutputFormat *ofmt = NULL;
|
||||||
|
void *ifmt_iter = NULL, *ofmt_iter = NULL;
|
||||||
|
|
||||||
if (!prev)
|
if (!prev)
|
||||||
return &ff_avio_class;
|
return &ff_avio_class;
|
||||||
|
|
||||||
while ((ifmt = av_iformat_next(ifmt)))
|
while ((ifmt = av_demuxer_iterate(&ifmt_iter)))
|
||||||
if (ifmt->priv_class == prev)
|
if (ifmt->priv_class == prev)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (!ifmt)
|
if (!ifmt) {
|
||||||
while ((ofmt = av_oformat_next(ofmt)))
|
ifmt_iter = NULL;
|
||||||
|
while ((ofmt = av_muxer_iterate(&ofmt_iter)))
|
||||||
if (ofmt->priv_class == prev)
|
if (ofmt->priv_class == prev)
|
||||||
break;
|
break;
|
||||||
if (!ofmt)
|
}
|
||||||
while (ifmt = av_iformat_next(ifmt))
|
if (!ofmt) {
|
||||||
|
ofmt_iter = NULL;
|
||||||
|
while ((ifmt = av_demuxer_iterate(&ifmt_iter)))
|
||||||
if (ifmt->priv_class)
|
if (ifmt->priv_class)
|
||||||
return ifmt->priv_class;
|
return ifmt->priv_class;
|
||||||
|
}
|
||||||
|
|
||||||
while (ofmt = av_oformat_next(ofmt))
|
while ((ofmt = av_muxer_iterate(&ofmt_iter)))
|
||||||
if (ofmt->priv_class)
|
if (ofmt->priv_class)
|
||||||
return ofmt->priv_class;
|
return ofmt->priv_class;
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
FF_ENABLE_DEPRECATION_WARNINGS
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user