gstreamer/gst/playback
Tim-Philipp Müller 4f73d3cf80 decodebin2: fix pad leak and problem with GWeakRef code
Follow-up to !160 and commit 6a99ad2c.

Firstly, don't leak the sinkpad. g_weak_ref_get() returns
a strong reference (unless it returns NULL), so that must
be unrefed, as detected by the playbin-complex and
discoverer unit tests.

Next, if we do that we get invalid memory access when the
final pad ref is dropped a few lines below after the
request pad is released. The reason for this is that
GWeakRefs are not movable once they're in use, because
their address will be stored inside the object. In this
case the GWeakRef was embedded inside the GstDemuxerPad
struct which in turn was embedded inside the GArray data
section, and when the GArray gets resized, the structs
move. Just KISS and use a list with individual allocations
for each DemuxerPad instead.
2019-03-24 21:55:43 +00:00
..
.gitignore playsink: remove old marshal remains 2012-07-13 12:35:44 +02:00
gstdecodebin2.c decodebin2: fix pad leak and problem with GWeakRef code 2019-03-24 21:55:43 +00:00
gstdecodebin3-parse.c decodebin3: Do not modify structure of EOS event 2018-05-10 09:09:08 +02:00
gstdecodebin3.c decodebin3: fix eos event leak 2018-10-18 13:03:31 +01:00
gstparsebin.c parsebin: Add missing locks/unlocks of the chain mutex 2018-10-28 17:03:47 +00:00
gstplay-enum.c playbin: add nick for soft colorbalance play flag to fix gst-inspect 2014-04-27 00:26:14 +01:00
gstplay-enum.h playback: Document GST_PLAY_FLAG_SOFT_COLORBALANCE 2015-05-30 01:11:47 +10:00
gstplayback.c playback: New uridecodebin3 element 2018-02-10 12:24:09 +01:00
gstplayback.h playback: New uridecodebin3 element 2018-02-10 12:24:09 +01:00
gstplaybackutils.c playback-utils: Fix caps leak on failure 2018-01-17 12:18:41 +00:00
gstplaybackutils.h playback: Mark internal functions as G_GNUC_INTERNAL 2016-09-01 13:07:07 +03:00
gstplaybin2.c playbin: New text-offset property 2018-11-01 09:52:34 +00:00
gstplaybin3.c playbin3: New text-offset property 2018-11-01 09:52:34 +00:00
gstplaysink.c playsink: Add text-offset property 2018-11-01 09:52:34 +00:00
gstplaysink.h playsink: Add text-offset property 2018-11-01 09:52:34 +00:00
gstplaysinkaudioconvert.c Fix FSF address 2012-11-03 23:05:09 +00:00
gstplaysinkaudioconvert.h Fix FSF address 2012-11-03 23:05:09 +00:00
gstplaysinkconvertbin.c base: use new gst_element_class_add_static_pad_template() 2016-03-24 14:25:41 +02:00
gstplaysinkconvertbin.h playsinkconvertbin: Remove obsolete segment tracking 2013-07-23 13:36:09 +02:00
gstplaysinkvideoconvert.c Fix FSF address 2012-11-03 23:05:09 +00:00
gstplaysinkvideoconvert.h Fix FSF address 2012-11-03 23:05:09 +00:00
gstrawcaps.h playback: Add support for CEA 608/708 CC overlay elements 2018-04-09 15:15:24 +02:00
gststreamsynchronizer.c streamsynchronizer: Properly propagate seqnum on EOS event 2018-06-05 17:29:53 +02:00
gststreamsynchronizer.h streamsynchronizer: every stream need keep their own send_gap_event flag 2017-03-23 12:55:57 +02:00
gstsubtitleoverlay.c subtitleoverlay: Add a subtitle-ts-offset property 2018-11-01 09:52:34 +00:00
gstsubtitleoverlay.h subtitleoverlay: Add a subtitle-ts-offset property 2018-11-01 09:52:34 +00:00
gsturidecodebin.c docs: Fix typos 2018-05-22 14:10:03 +01:00
gsturidecodebin3.c uridecodebin3: Fix GList leak 2018-05-09 07:03:13 +01:00
gsturisourcebin.c urisourcebin: Avoid potential unitialized/wrong bitrate value 2018-11-09 12:22:31 +01:00
Makefile.am playback: New uridecodebin3 element 2018-02-10 12:24:09 +01:00
meson.build Meson: Generate pc file for all plugins in base 2018-04-25 11:05:56 +01:00