X-Git-Url: https://git.piment-noir.org/?p=deb_ffmpeg.git;a=blobdiff_plain;f=ffmpeg%2Flibavformat%2Fconcatdec.c;h=a2584d70e2af0f6b2484516ca118cc7968fa6264;hp=9e9857958d268c326a7ebcde7974da2a32e59965;hb=f6fa7814ccfe3e76514b36cf04f5cd3cb657c8cf;hpb=2ba45a602cbfa7b771effba9b11bb4245c21bc00 diff --git a/ffmpeg/libavformat/concatdec.c b/ffmpeg/libavformat/concatdec.c index 9e98579..a2584d7 100644 --- a/ffmpeg/libavformat/concatdec.c +++ b/ffmpeg/libavformat/concatdec.c @@ -23,6 +23,7 @@ #include "libavutil/intreadwrite.h" #include "libavutil/opt.h" #include "libavutil/parseutils.h" +#include "libavutil/timestamp.h" #include "avformat.h" #include "internal.h" #include "url.h" @@ -288,6 +289,10 @@ static int open_file(AVFormatContext *avf, unsigned fileno) return AVERROR(ENOMEM); cat->avf->interrupt_callback = avf->interrupt_callback; + + if ((ret = ff_copy_whitelists(cat->avf, avf)) < 0) + return ret; + if ((ret = avformat_open_input(&cat->avf, file->url, NULL, NULL)) < 0 || (ret = avformat_find_stream_info(cat->avf, NULL)) < 0) { av_log(avf, AV_LOG_ERROR, "Impossible to open '%s'\n", file->url); @@ -475,6 +480,7 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt) int ret; int64_t delta; ConcatStream *cs; + AVStream *st; while (1) { ret = av_read_frame(cat->avf, pkt); @@ -500,6 +506,12 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt) if ((ret = filter_packet(avf, cs, pkt))) return ret; + st = cat->avf->streams[pkt->stream_index]; + av_log(avf, AV_LOG_DEBUG, "file:%d stream:%d pts:%s pts_time:%s dts:%s dts_time:%s", + (unsigned)(cat->cur_file - cat->files), pkt->stream_index, + av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &st->time_base), + av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &st->time_base)); + delta = av_rescale_q(cat->cur_file->start_time - cat->avf->start_time, AV_TIME_BASE_Q, cat->avf->streams[pkt->stream_index]->time_base); @@ -507,6 +519,9 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt) pkt->pts += delta; if (pkt->dts != AV_NOPTS_VALUE) pkt->dts += delta; + av_log(avf, AV_LOG_DEBUG, " -> pts:%s pts_time:%s dts:%s dts_time:%s\n", + av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &st->time_base), + av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &st->time_base)); return ret; }