[FFmpeg-cvslog] avformat/segment: export inner muxer timebase

Michael Niedermayer git at videolan.org
Mon Nov 17 01:20:02 CET 2014


ffmpeg | branch: release/2.4 | Michael Niedermayer <michaelni at gmx.at> | Sun Nov 16 02:49:12 2014 +0100| [cc9c74ea877392a8ee44724a9c588802225503c3] | committer: Carl Eugen Hoyos

avformat/segment: export inner muxer timebase

Fixes "Non-monotonous DTS in output stream 0:0"
Fixes Ticket4020

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit ce80f9fee97160049687bbbef4eb31a68166c3ee)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cc9c74ea877392a8ee44724a9c588802225503c3
---

 libavformat/segment.c |    8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libavformat/segment.c b/libavformat/segment.c
index f35bbef..eb1cfee 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -567,6 +567,7 @@ static int seg_write_header(AVFormatContext *s)
     AVFormatContext *oc = NULL;
     AVDictionary *options = NULL;
     int ret;
+    int i;
 
     seg->segment_count = 0;
     if (!seg->write_header_trailer)
@@ -672,6 +673,13 @@ static int seg_write_header(AVFormatContext *s)
     }
     seg->segment_frame_count = 0;
 
+    av_assert0(s->nb_streams == oc->nb_streams);
+    for (i = 0; i < s->nb_streams; i++) {
+        AVStream *inner_st  = oc->streams[i];
+        AVStream *outer_st = s->streams[i];
+        avpriv_set_pts_info(outer_st, inner_st->pts_wrap_bits, inner_st->time_base.num, inner_st->time_base.den);
+    }
+
     if (oc->avoid_negative_ts > 0 && s->avoid_negative_ts < 0)
         s->avoid_negative_ts = 1;
 



More information about the ffmpeg-cvslog mailing list