Commit 7d097a0f authored by Martin Storsjö's avatar Martin Storsjö

mpegtsenc: Take max_delay into account when buffering multiple audio packets into one PES packet

Make sure we don't buffer up more than max_delay worth of data
before writing a PES packet, even if pes_payload_size is set to
a larger value.
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent e3ec6fe7
...@@ -1128,7 +1128,10 @@ static int mpegts_write_packet_internal(AVFormatContext *s, AVPacket *pkt) ...@@ -1128,7 +1128,10 @@ static int mpegts_write_packet_internal(AVFormatContext *s, AVPacket *pkt)
return 0; return 0;
} }
if (ts_st->payload_size + size > ts->pes_payload_size) { if (ts_st->payload_size + size > ts->pes_payload_size ||
(dts != AV_NOPTS_VALUE && ts_st->payload_dts != AV_NOPTS_VALUE &&
av_compare_ts(dts - ts_st->payload_dts, st->time_base,
s->max_delay, AV_TIME_BASE_Q) >= 0)) {
if (ts_st->payload_size) { if (ts_st->payload_size) {
mpegts_write_pes(s, st, ts_st->payload, ts_st->payload_size, mpegts_write_pes(s, st, ts_st->payload, ts_st->payload_size,
ts_st->payload_pts, ts_st->payload_dts, ts_st->payload_pts, ts_st->payload_dts,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment