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