gstreamer/gst
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
..
adder meson: Replace empty configuration_data() with copy keyword 2018-10-17 13:48:47 +01:00
app meson: fix copy'n'paste-o in app plugin build description 2018-04-25 11:26:17 +01:00
audioconvert audio-converter: add API to determine passthrough mode 2018-12-17 14:23:49 +00:00
audiomixer meson: Replace empty configuration_data() with copy keyword 2018-10-17 13:48:47 +01:00
audiorate audiorate: accumulate offset by time diff 2018-07-19 18:19:19 -04:00
audioresample Removed unused GST_CAT_PERFORMANCE 2018-09-19 15:06:19 +03:00
audiotestsrc audiotestsrc: Improvements to the "ticks" wave 2019-01-10 16:15:47 +00:00
compositor compositor: add to build after move from -bad 2018-12-28 12:16:18 +01:00
encoding encodebin: Also lock input caps when dynamic output is disabled 2018-05-01 21:15:25 +02:00
gio Meson: Generate pc file for all plugins in base 2018-04-25 11:05:56 +01:00
overlaycomposition Fix some typos in code comments 2019-01-11 11:27:11 +00:00
pbtypes Meson: Generate pc file for all plugins in base 2018-04-25 11:05:56 +01:00
playback decodebin2: fix pad leak and problem with GWeakRef code 2019-03-24 21:55:43 +00:00
rawparse rawvideoparse: fix typo in 'plane-offsets' description 2018-07-16 13:14:34 +02:00
subparse subparse: do not assert when failing to parse subrip timestamp 2019-01-14 11:43:57 +00:00
tcp tcp: fix markup for example pipelines in docs 2018-05-05 18:02:16 +02:00
typefind typefindfunctions: Add a function to typefind xges files 2019-01-29 15:56:12 +00:00
videoconvert Meson: Generate pc file for all plugins in base 2018-04-25 11:05:56 +01:00
videorate videorate: Add max-duplication-time property 2019-02-21 15:50:55 +00:00
videoscale videoscale: Round when fixating to nearest ints to reduce error 2019-01-14 10:18:21 +00:00
videotestsrc meson: Replace empty configuration_data() with copy keyword 2018-10-17 13:48:47 +01:00
volume meson: Replace empty configuration_data() with copy keyword 2018-10-17 13:48:47 +01:00
Makefile.am pbtypes: Add a stub plugin that owns the plugins-base dynamic types 2016-11-02 11:24:11 +11:00
meson.build compositor: add to build after move from -bad 2018-12-28 12:16:18 +01:00