summaryrefslogtreecommitdiff
path: root/libavformat/mpegtsenc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/mpegtsenc.c')
-rw-r--r--libavformat/mpegtsenc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index 5c97d63ffd..29dcaf6bec 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -81,6 +81,7 @@ typedef struct MpegTSWrite {
int64_t pat_period; /* PAT/PMT period in PCR time base */
int nb_services;
int64_t first_pcr;
+ int first_dts_checked;
int64_t next_pcr;
int mux_rate; ///< set to 1 when VBR
int pes_payload_size;
@@ -1688,6 +1689,11 @@ static int mpegts_write_packet_internal(AVFormatContext *s, AVPacket *pkt)
stream_id = side_data[0];
if (ts->copyts < 1) {
+ if (!ts->first_dts_checked && dts != AV_NOPTS_VALUE) {
+ ts->first_pcr += dts * 300;
+ ts->first_dts_checked = 1;
+ }
+
if (pts != AV_NOPTS_VALUE)
pts += delay;
if (dts != AV_NOPTS_VALUE)