}
#if FF_API_CHILD_CLASS_NEXT
-FF_DISABLE_DEPRECATION_WARNINGS
static const AVClass *format_child_class_next(const AVClass *prev)
{
- AVInputFormat *ifmt = NULL;
- AVOutputFormat *ofmt = NULL;
+ const AVInputFormat *ifmt = NULL;
+ const AVOutputFormat *ofmt = NULL;
+ void *ifmt_iter = NULL, *ofmt_iter = NULL;
if (!prev)
return &ff_avio_class;
- while ((ifmt = av_iformat_next(ifmt)))
+ while ((ifmt = av_demuxer_iterate(&ifmt_iter)))
if (ifmt->priv_class == prev)
break;
- if (!ifmt)
- while ((ofmt = av_oformat_next(ofmt)))
+ if (!ifmt) {
+ ifmt_iter = NULL;
+ while ((ofmt = av_muxer_iterate(&ofmt_iter)))
if (ofmt->priv_class == prev)
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)
return ifmt->priv_class;
+ }
- while (ofmt = av_oformat_next(ofmt))
+ while ((ofmt = av_muxer_iterate(&ofmt_iter)))
if (ofmt->priv_class)
return ofmt->priv_class;
return NULL;
}
-FF_ENABLE_DEPRECATION_WARNINGS
#endif
enum {
av_log(s, loglevel, "Opening \'%s\' for %s\n", url, flags & AVIO_FLAG_WRITE ? "writing" : "reading");
-#if FF_API_OLD_OPEN_CALLBACKS
-FF_DISABLE_DEPRECATION_WARNINGS
- if (s->open_cb)
- return s->open_cb(s, pb, url, flags, &s->interrupt_callback, options);
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
-
return ffio_open_whitelist(pb, url, flags, &s->interrupt_callback, options, s->protocol_whitelist, s->protocol_blacklist);
}
av_free(ic);
return NULL;
}
+ internal->pkt = av_packet_alloc();
+ internal->parse_pkt = av_packet_alloc();
+ if (!internal->pkt || !internal->parse_pkt) {
+ av_packet_free(&internal->pkt);
+ av_packet_free(&internal->parse_pkt);
+ av_free(internal);
+ av_free(ic);
+ return NULL;
+ }
avformat_get_context_defaults(ic);
ic->internal = internal;
ic->internal->offset = AV_NOPTS_VALUE;