#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
_______________________________________________
FFmpeg-trac mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-trac