From: Jean-Baptiste Kempf Date: Mon, 9 Aug 2010 17:55:34 +0000 (+0200) Subject: DShow: small fixes on error paths X-Git-Tag: 1.2.0-pre1~5504 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=d475b82a023d7016dba778ea1110999c8c953277;p=vlc DShow: small fixes on error paths --- diff --git a/modules/access/dshow/common.h b/modules/access/dshow/common.h index b08b1a8a3a..573db27a3d 100644 --- a/modules/access/dshow/common.h +++ b/modules/access/dshow/common.h @@ -105,7 +105,7 @@ struct access_sys_t /***************************************************************************** * DirectShow GUIDs. *****************************************************************************/ -const GUID PROPSETID_TUNER = {0x6a2e0605, 0x28e4, 0x11d0, {0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56}}; +static const GUID PROPSETID_TUNER = {0x6a2e0605, 0x28e4, 0x11d0, {0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56}}; /**************************************************************************** * The following should be in ks.h and ksmedia.h, but since they are not in diff --git a/modules/access/dshow/dshow.cpp b/modules/access/dshow/dshow.cpp index 6b0d67ce43..b61769ef5a 100644 --- a/modules/access/dshow/dshow.cpp +++ b/modules/access/dshow/dshow.cpp @@ -2326,6 +2326,7 @@ static void ConfigTuner( vlc_object_t *p_this, ICaptureGraphBuilder2 *p_graph, if (FAILED(hr)) { msg_Dbg( p_this, "Couldn't QI for IKsPropertySet" ); + p_TV->Release(); return; } @@ -2349,7 +2350,7 @@ static void ConfigTuner( vlc_object_t *p_this, ICaptureGraphBuilder2 *p_graph, else { msg_Dbg( p_this, "KSPROPERTY_TUNER_MODE_CAPS not supported!" ); - return; + goto free_on_error; } msg_Dbg( p_this, "Frequency range supproted from %d to %d.", ModeCaps.MinFrequency, ModeCaps.MaxFrequency); @@ -2378,13 +2379,13 @@ static void ConfigTuner( vlc_object_t *p_this, ICaptureGraphBuilder2 *p_graph, if(FAILED(hr)) { msg_Dbg( p_this, "Couldn't set KSPROPERTY_TUNER_FREQUENCY!" ); - return; + goto free_on_error; } } else { msg_Dbg( p_this, "Requested frequency exceeds the supported range!" ); - return; + goto free_on_error; } } @@ -2401,15 +2402,16 @@ static void ConfigTuner( vlc_object_t *p_this, ICaptureGraphBuilder2 *p_graph, if(FAILED(hr)) { msg_Dbg( p_this, "Couldn't set KSPROPERTY_TUNER_STANDARD!" ); - return; + goto free_on_error; } } else { msg_Dbg( p_this, "Requested video standard is not supported by the tuner!" ); - return; + goto free_on_error; } } +free_on_error: pKs->Release(); }