cat->avf->interrupt_callback = avf->interrupt_callback;
- if ((ret = ff_copy_whitelists(cat->avf, avf)) < 0)
+ if ((ret = ff_copy_whiteblacklists(cat->avf, avf)) < 0)
return ret;
if ((ret = avformat_open_input(&cat->avf, file->url, NULL, NULL)) < 0 ||
while (1) {
ret = av_read_frame(cat->avf, pkt);
- if (ret == AVERROR_EOF || packet_after_outpoint(cat, pkt)) {
- if (ret == 0)
- av_packet_unref(pkt);
+ if (ret == AVERROR_EOF) {
if ((ret = open_next_file(avf)) < 0)
return ret;
continue;
av_packet_unref(pkt);
return ret;
}
+ if (packet_after_outpoint(cat, pkt)) {
+ av_packet_unref(pkt);
+ if ((ret = open_next_file(avf)) < 0)
+ return ret;
+ continue;
+ }
cs = &cat->cur_file->streams[pkt->stream_index];
if (cs->out_stream_index < 0) {
av_packet_unref(pkt);
static const AVOption options[] = {
{ "safe", "enable safe mode",
- OFFSET(safe), AV_OPT_TYPE_BOOL, {.i64 = -1}, -1, 1, DEC },
+ OFFSET(safe), AV_OPT_TYPE_BOOL, {.i64 = 1}, -1, 1, DEC },
{ "auto_convert", "automatically convert bitstream format",
OFFSET(auto_convert), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, DEC },
{ "segment_time_metadata", "output file segment start time and duration as packet metadata",