diff options
author | Thiago Santos <thiago.sousa.santos@collabora.co.uk> | 2010-09-17 09:52:12 -0300 |
---|---|---|
committer | Thiago Santos <thiago.sousa.santos@collabora.co.uk> | 2010-11-22 17:34:02 -0300 |
commit | 8d5cfc6511ca986f1a0511bfd28c5b4209aca803 (patch) | |
tree | 94a44c40bb181c02b083514f38a697f7b502cd5c | |
parent | 0451adeabd9ffb443795055295655fbe6347fe3d (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.c | 3 |
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"); |