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

Attachment: signature.asc
Description: Digital signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to