From 9996ae9ae0eb5413cc7a2455a9cddd339d394fff Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Fri, 5 Jul 2019 01:26:26 +0200 Subject: tsmux: output smoothly increasing PTS when in CBR mode Thanks to that, when its output is plugged into eg a udp sink, the outgoing data can be output in a smoother way, reducing burstiness --- gst/mpegtsmux/gstbasetsmux.c | 3 ++- gst/mpegtsmux/tsmux/tsmux.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'gst/mpegtsmux') diff --git a/gst/mpegtsmux/gstbasetsmux.c b/gst/mpegtsmux/gstbasetsmux.c index 9ee7e5379..dfde9676e 100644 --- a/gst/mpegtsmux/gstbasetsmux.c +++ b/gst/mpegtsmux/gstbasetsmux.c @@ -1017,7 +1017,8 @@ new_packet_cb (GstBuffer * buf, void *user_data, gint64 new_pcr) gst_buffer_map (buf, &map, GST_MAP_READWRITE); - GST_BUFFER_PTS (buf) = mux->last_ts; + if (!GST_CLOCK_TIME_IS_VALID (GST_BUFFER_PTS (buf))) + GST_BUFFER_PTS (buf) = mux->last_ts; /* do common init (flags and streamheaders) */ new_packet_common_init (mux, buf, map.data, map.size); diff --git a/gst/mpegtsmux/tsmux/tsmux.c b/gst/mpegtsmux/tsmux/tsmux.c index dfc112077..16b556f7c 100644 --- a/gst/mpegtsmux/tsmux/tsmux.c +++ b/gst/mpegtsmux/tsmux/tsmux.c @@ -660,6 +660,10 @@ tsmux_packet_out (TsMux * mux, GstBuffer * buf, gint64 pcr) return TRUE; } + if (mux->bitrate) + GST_BUFFER_PTS (buf) = + gst_util_uint64_scale (mux->n_bytes * 8, GST_SECOND, mux->bitrate); + mux->n_bytes += gst_buffer_get_size (buf); return mux->write_func (buf, mux->write_func_data, pcr); -- cgit v1.2.1