summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>2010-09-17 09:52:12 -0300
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>2010-11-22 17:34:02 -0300
commit8d5cfc6511ca986f1a0511bfd28c5b4209aca803 (patch)
tree94a44c40bb181c02b083514f38a697f7b502cd5c
parent0451adeabd9ffb443795055295655fbe6347fe3d (diff)
outputselector: Avoid losing the last_buffer when switching
This patch makes outputselector take an extra ref when pushing the last_buffer to avoid it losing it during the switch function. This makes resend-latest properly work if the active-pad is changed during the switch function buffer pushing (on a pad probe, for example). https://bugzilla.gnome.org/show_bug.cgi?id=629917
-rw-r--r--gst/selector/gstoutputselector.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/gst/selector/gstoutputselector.c b/gst/selector/gstoutputselector.c
index 088bed0d2..9b75da2c2 100644
--- a/gst/selector/gstoutputselector.c
+++ b/gst/selector/gstoutputselector.c
@@ -375,8 +375,7 @@ gst_output_selector_switch (GstOutputSelector * osel)
/* Resend latest buffer to newly switched pad */
if (osel->resend_latest && osel->latest_buffer) {
GST_INFO ("resending latest buffer");
- gst_pad_push (osel->active_srcpad, osel->latest_buffer);
- osel->latest_buffer = NULL;
+ gst_pad_push (osel->active_srcpad, gst_buffer_ref (osel->latest_buffer));
}
} else {
GST_WARNING_OBJECT (osel, "switch failed, pad not linked");