Browse code

dshow: cleanup internal references on capture interface

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>

Ramiro Polla authored on 2011/09/09 12:16:06
Showing 2 changed files
... ...
@@ -94,6 +94,12 @@ libAVEnumPins_Setup(libAVEnumPins *this, libAVPin *pin, libAVFilter *filter)
94 94
 
95 95
     return 1;
96 96
 }
97
+static int
98
+libAVEnumPins_Cleanup(libAVEnumPins *this)
99
+{
100
+    libAVFilter_Release(this->filter);
101
+    return 1;
102
+}
97 103
 DECLARE_CREATE(libAVEnumPins, libAVEnumPins_Setup(this, pin, filter),
98 104
                libAVPin *pin, libAVFilter *filter)
99
-DECLARE_DESTROY(libAVEnumPins, nothing)
105
+DECLARE_DESTROY(libAVEnumPins, libAVEnumPins_Cleanup)
... ...
@@ -191,6 +191,12 @@ libAVFilter_Setup(libAVFilter *this, void *priv_data, void *callback,
191 191
 
192 192
     return 1;
193 193
 }
194
+static int
195
+libAVFilter_Cleanup(libAVFilter *this)
196
+{
197
+    libAVPin_Release(this->pin);
198
+    return 1;
199
+}
194 200
 DECLARE_CREATE(libAVFilter, libAVFilter_Setup(this, priv_data, callback, type),
195 201
                void *priv_data, void *callback, enum dshowDeviceType type)
196
-DECLARE_DESTROY(libAVFilter, nothing)
202
+DECLARE_DESTROY(libAVFilter, libAVFilter_Cleanup)