[FFmpeg-trac] #6531(avformat:new): MPEG-TS encoder may stop emitting SDT/PAT/PMT after DTS jump or rollover
FFmpeg
trac at avcodec.org
Mon Jul 17 23:39:16 EEST 2017
#6531: MPEG-TS encoder may stop emitting SDT/PAT/PMT after DTS jump or rollover
----------------------------------+--------------------------------------
Reporter: mavrik | Type: defect
Status: new | Priority: normal
Component: avformat | Version: git-master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
----------------------------------+--------------------------------------
When transcoding broadcast MPEG-TS streams, there may be jumps or a
rollover in PTS/DTS values in stream. That's perfectly valid, however
ffmpeg's MPEG-TS muxer may stop emitting SDT/PAT/PMT tables.
The issue was tracked down to `retransmit_si_info` method where two
following comparisons are made:
{{{
...
(dts != AV_NOPTS_VALUE && dts - ts->last_sdt_ts >=
ts->sdt_period*90000.0)
...
if (dts != AV_NOPTS_VALUE)
ts->last_sdt_ts = FFMAX(dts, ts->last_sdt_ts);
...
(dts != AV_NOPTS_VALUE && dts - ts->last_pat_ts >=
ts->pat_period*90000.0) ||
...
if (dts != AV_NOPTS_VALUE)
ts->last_pat_ts = FFMAX(dts, ts->last_pat_ts);
}}}
All those comparisons fail to take into account the possibility of DTS
regressing which means a negative DTS jump will cause the muxer to stop
emitting SDT tables alltogether in all streams and PAT/PMT tables
alltogether in audio-only streams.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/6531>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list