basesink: fix buffer leaks if preroll failed

buffer is not unreferened if preroll failed

:Detailed Notes:
- Problem : video freeze when switching from pause to 1/2-FF repeatedly
- RootCause : buffer leaks in basesink
- Solution : unref the buffer if prerolled failed

:Testing Preformed:
How to Test :
pause -> 1/2 FF -> resume -> pause -> 1/2 FF ...

https://bugzilla.gnome.org/show_bug.cgi?id=784932
This commit is contained in:
Jason Lin 2017-07-13 21:52:34 +08:00 committed by Matthew Waters
parent cfe59c285c
commit 5bd4603ed3

View file

@ -3657,6 +3657,7 @@ dropped:
preroll_failed: preroll_failed:
{ {
GST_DEBUG_OBJECT (basesink, "preroll failed: %s", gst_flow_get_name (ret)); GST_DEBUG_OBJECT (basesink, "preroll failed: %s", gst_flow_get_name (ret));
gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
return ret; return ret;
} }
} }