@@ -999,10 +999,18 @@ static int mpegts_init(AVFormatContext *s)
ts->last_sdt_ts = AV_NOPTS_VALUE;
// The user specified a period, use only it
if (ts->pat_period < INT_MAX/2) {
- ts->pat_packet_period = INT_MAX;
+ if (ts->mux_rate > 1)
+ ts->pat_packet_period = (int64_t)ts->mux_rate * ts->pat_period /
+ (TS_PACKET_SIZE * 8);
+ else
+ ts->pat_packet_period = INT_MAX;
}
if (ts->sdt_period < INT_MAX/2) {
- ts->sdt_packet_period = INT_MAX;
+ if (ts->mux_rate > 1)
+ ts->sdt_packet_period = (int64_t)ts->mux_rate * ts->sdt_period /
+ (TS_PACKET_SIZE * 8);
+ else
+ ts->sdt_packet_period = INT_MAX;
}
// output a PCR as soon as possible