[SCM] libav/experimental: do not randomize unknown timestamps

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:41:49 UTC 2013


The following commit has been merged in the experimental branch:
commit 6c55b27f8f7b41c34ecaf1c7986f23809adc80e0
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Thu Oct 7 01:55:34 2004 +0000

    do not randomize unknown timestamps
    
    Originally committed as revision 3568 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/ffmpeg.c b/ffmpeg.c
index 6af03b2..62593e9 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1249,7 +1249,10 @@ static int output_packet(AVInputStream *ist, int ist_index,
                             opkt.stream_index= ost->index;
                             opkt.data= data_buf;
                             opkt.size= data_size;
-                            opkt.pts= pkt->pts + input_files_ts_offset[ist->file_index];
+                            if(pkt->pts != AV_NOPTS_VALUE)
+                                opkt.pts= pkt->pts + input_files_ts_offset[ist->file_index];
+                            else
+                                opkt.pts= AV_NOPTS_VALUE;
                             opkt.dts= pkt->dts + input_files_ts_offset[ist->file_index];
                             opkt.flags= pkt->flags;
                             
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index 4f8d20d..772a4df 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -1029,13 +1029,13 @@ static int mpeg_mux_write_packet(AVFormatContext *ctx, AVPacket *pkt)
            and the first pack from the other stream, respectively, may also have
            been written before.
            So the real data starts at SCR 36000+3*1200. */
-        pts += 36000 + 3600;
-        dts += 36000 + 3600;
+        if(pts != AV_NOPTS_VALUE) pts += 36000 + 3600;
+        if(dts != AV_NOPTS_VALUE) dts += 36000 + 3600;
     }else{
-        pts += PRELOAD;
-        dts += PRELOAD;
+        if(pts != AV_NOPTS_VALUE) pts += PRELOAD;
+        if(dts != AV_NOPTS_VALUE) dts += PRELOAD;
     }
-//av_log(ctx, AV_LOG_DEBUG, "dts:%f pts:%f flags:%d stream:%d\n", dts/90000.0, pts/90000.0, pkt->flags, pkt->stream_index);
+//av_log(ctx, AV_LOG_DEBUG, "dts:%f pts:%f flags:%d stream:%d nopts:%d\n", dts/90000.0, pts/90000.0, pkt->flags, pkt->stream_index, pts != AV_NOPTS_VALUE);
     *stream->next_packet=
     pkt_desc= av_mallocz(sizeof(PacketDesc));
     pkt_desc->pts= pts;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list