Module: libav
Branch: master
Commit: 7d097a0fc57f0fa8385962a539c657c2f40b5ed0

Author:    Martin Storsjö <[email protected]>
Committer: Martin Storsjö <[email protected]>
Date:      Thu Apr  2 11:09:31 2015 +0300

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: Martin Storsjö <[email protected]>

---

 libavformat/mpegtsenc.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index de6e6ac..28b700e 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -1128,7 +1128,10 @@ static int mpegts_write_packet_internal(AVFormatContext 
*s, AVPacket *pkt)
         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) {
             mpegts_write_pes(s, st, ts_st->payload, ts_st->payload_size,
                              ts_st->payload_pts, ts_st->payload_dts,

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to