winegstreamer: Fix buffer leak in error path.

This commit is contained in:
Maarten Lankhorst 2010-11-09 23:42:44 +01:00 committed by Alexandre Julliard
parent 10c51a80f0
commit d62b4dcb66
1 changed files with 4 additions and 2 deletions

View File

@ -517,10 +517,12 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstBuffer *buf) {
} else { } else {
BYTE *ptr = NULL; BYTE *ptr = NULL;
hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0); hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
freeSamp = TRUE; if (hr == VFW_E_NOT_CONNECTED) {
if (hr == VFW_E_NOT_CONNECTED) gst_buffer_unref(buf);
return GST_FLOW_NOT_LINKED; return GST_FLOW_NOT_LINKED;
}
if (FAILED(hr)) { if (FAILED(hr)) {
gst_buffer_unref(buf);
ERR("Didn't get a GST_APP_BUFFER, and could not get a delivery buffer (%x), returning GST_FLOW_WRONG_STATE\n", hr); ERR("Didn't get a GST_APP_BUFFER, and could not get a delivery buffer (%x), returning GST_FLOW_WRONG_STATE\n", hr);
return GST_FLOW_WRONG_STATE; return GST_FLOW_WRONG_STATE;
} }