Le quintidi 25 frimaire, an CCXXIII, Michael Niedermayer a écrit : > Lines: 36 > > Fixes Ticket3598 > > Signed-off-by: Michael Niedermayer <michae...@gmx.at> > --- > libavformat/concatdec.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c > index a2584d7..253951a 100644 > --- a/libavformat/concatdec.c > +++ b/libavformat/concatdec.c > @@ -512,9 +512,14 @@ static int concat_read_packet(AVFormatContext *avf, > AVPacket *pkt) > 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); > + if (cat->avf->start_time == AV_NOPTS_VALUE) > + delta = av_rescale_q(cat->cur_file->start_time, > + AV_TIME_BASE_Q, > + > cat->avf->streams[pkt->stream_index]->time_base); > + else > + 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); > if (pkt->pts != AV_NOPTS_VALUE) > pkt->pts += delta; > if (pkt->dts != AV_NOPTS_VALUE)
I am ok in principle, but I like it better written like [PATCH 1/2]: less code duplication, less changed lines. Also, I wonder if there is any disadvantage in [PATCH 2/2], which would fix this particular problem too. Please feel free to apply your version or any of my patches without waiting for me, but beware, neither was tested beyond a run of FATE, as I have little time right now. Regards, -- Nicolas George
From 5379ff7c282b79dc455cf75f650655cf2da2d469 Mon Sep 17 00:00:00 2001 From: Nicolas George <geo...@nsup.org> Date: Mon, 15 Dec 2014 18:42:41 +0100 Subject: [PATCH 1/2] lavf/concatdec: handle NOPTS start_time. Fix trac ticket #3598. Signed-off-by: Nicolas George <geo...@nsup.org> --- libavformat/concatdec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c index a2584d7..e109524 100644 --- a/libavformat/concatdec.c +++ b/libavformat/concatdec.c @@ -478,7 +478,7 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt) { ConcatContext *cat = avf->priv_data; int ret; - int64_t delta; + int64_t file_start_time, delta; ConcatStream *cs; AVStream *st; @@ -512,7 +512,10 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt) 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, + file_start_time = cat->avf->start_time; + if (file_start_time == AV_NOPTS_VALUE) + file_start_time = 0; + delta = av_rescale_q(cat->cur_file->start_time - file_start_time, AV_TIME_BASE_Q, cat->avf->streams[pkt->stream_index]->time_base); if (pkt->pts != AV_NOPTS_VALUE) -- 2.1.3
From 4d06c29ea18a7a7d43a7b13f370cdec3e90724d6 Mon Sep 17 00:00:00 2001 From: Nicolas George <geo...@nsup.org> Date: Mon, 15 Dec 2014 18:45:44 +0100 Subject: [PATCH 2/2] lavf/wavdec: set start_time to 0. Signed-off-by: Nicolas George <geo...@nsup.org> --- libavformat/wavdec.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c index 9c4e2df..f775ca9 100644 --- a/libavformat/wavdec.c +++ b/libavformat/wavdec.c @@ -136,6 +136,7 @@ static int wav_parse_fmt_tag(AVFormatContext *s, int64_t size, AVStream **st) (*st)->need_parsing = AVSTREAM_PARSE_FULL_RAW; avpriv_set_pts_info(*st, 64, 1, (*st)->codec->sample_rate); + (*st)->start_time = 0; return 0; } -- 2.1.3
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel