gstreamer/gst/rtpmanager
Sebastian Dröge 7b22397cf5 rtpjitterbuffer: Properly free internal packets queue in finalize()
As we override the GLib item with our own structure, we cannot use any
function from GList or GQueue that would try to free the RTPJitterBufferItem.
In this patch, we move away from g_queue_new() which forces using
g_queue_free(). This this function could use g_slice_free() if there is any items
left in the queue. Passing the wrong size to GSLice may cause data corruption
and crash.

A better approach would be to use a proper intrusive linked list
implementation but that's left as an exercise for the next person
running into crashes caused by this.

Be ware that this regression was introduced 6 years ago in the following
commit [0], the call to flush() looked useless, as there was a g_queue_free()
afterward.

Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>

[0] 479c7642fd

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/573>
2020-04-22 10:28:30 -04:00
..
gstrtpbin.c rtpbin: make warning messages more meaningful 2020-03-31 15:51:27 -04:00
gstrtpbin.h rtpbin: add request-jitterbuffer signal 2019-09-24 15:33:21 +00:00
gstrtpdtmfmux.c docs: Port all docstring to gtk-doc markdown 2019-05-13 10:24:40 -04:00
gstrtpdtmfmux.h rtpmux: Fix FSF address 2012-12-16 16:36:39 +00:00
gstrtpfunnel.c rtpfunnel: various cleanups 2020-02-14 10:08:05 +00:00
gstrtpfunnel.h rtpfunnel: Stop using G_DECLARE_FINAL_TYPE 2018-11-13 00:37:11 +01:00
gstrtpjitterbuffer.c rtpjitterbuffer: don't use RTX packets in rate-calc and reset-logic 2020-04-16 17:06:31 +02:00
gstrtpjitterbuffer.h rtpjitterbuffer: small optimizations 2014-04-29 16:21:44 +02:00
gstrtpmanager.c Initial commit of GstRtpFunnel 2018-10-15 14:20:58 +02:00
gstrtpmux.c docs: Port all docstring to gtk-doc markdown 2019-05-13 10:24:40 -04:00
gstrtpmux.h doc: Fix some docstrings 2019-05-13 17:00:00 -04:00
gstrtpptdemux.c rtpptdemux: set payload to caps inside gst_rtp_pt_demux_get_caps 2020-02-11 18:39:22 +00:00
gstrtpptdemux.h documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
gstrtprtxqueue.c doc: fix element section documentations 2019-05-25 16:57:31 +02:00
gstrtprtxqueue.h rtprtxqueue: implement handling of the max-size-time property 2017-04-11 09:44:33 +03:00
gstrtprtxreceive.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
gstrtprtxreceive.h rtprtxreceive: Wait until timeout to clear association requests 2014-05-04 22:36:59 -04:00
gstrtprtxsend.c rtprtxsend: allow generic input caps 2020-01-28 15:44:13 +00:00
gstrtprtxsend.h rtprtxsend: allow generic input caps 2020-01-28 15:44:13 +00:00
gstrtpsession.c rtpsession: rename RTCP thread 2020-03-31 13:34:07 +02:00
gstrtpsession.h rtpsession: use the correct segment seqnum 2019-02-04 13:14:37 +00:00
gstrtpssrcdemux.c rtpssrcdemux: Handle RTCP APP packets 2020-02-11 15:12:07 +01:00
gstrtpssrcdemux.h rtpssrcdemux: introduce max-streams property 2020-02-11 15:10:12 +01:00
meson.build rtpmanager: Google Transport-Wide Congestion Control RTP Extension 2020-02-14 10:09:02 +00:00
rtpjitterbuffer.c rtpjitterbuffer: Properly free internal packets queue in finalize() 2020-04-22 10:28:30 -04:00
rtpjitterbuffer.h rtpjitterbuffer: Properly free internal packets queue in finalize() 2020-04-22 10:28:30 -04:00
rtpsession.c rtptwcc: make RTPTWCCManager a GObject 2020-03-04 16:48:04 +01:00
rtpsession.h rtpmanager: Google Transport-Wide Congestion Control RTP Extension 2020-02-14 10:09:02 +00:00
rtpsource.c rtpmanager: Google Transport-Wide Congestion Control RTP Extension 2020-02-14 10:09:02 +00:00
rtpsource.h rtpsession: Send as many nack seqnum as possible 2019-04-05 14:53:09 +00:00
rtpstats.c rtpmanager: Google Transport-Wide Congestion Control RTP Extension 2020-02-14 10:09:02 +00:00
rtpstats.h rtpmanager: Google Transport-Wide Congestion Control RTP Extension 2020-02-14 10:09:02 +00:00
rtptimerqueue.c rtptimerqueue: remove ->num from the timer 2020-03-20 13:17:20 +00:00
rtptimerqueue.h rtptimerqueue: remove ->num from the timer 2020-03-20 13:17:20 +00:00
rtptwcc.c Fix usage of C99 2020-03-23 21:32:04 -04:00
rtptwcc.h rtptwcc: make RTPTWCCManager a GObject 2020-03-04 16:48:04 +01:00