dshow: cleanup internal references on capture interface

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
This commit is contained in:
Ramiro Polla 2011-09-09 00:16:06 -03:00 committed by Stefano Sabatini
parent 0b951d103d
commit dd41036a4c
2 changed files with 14 additions and 2 deletions

View File

@ -94,6 +94,12 @@ libAVEnumPins_Setup(libAVEnumPins *this, libAVPin *pin, libAVFilter *filter)
return 1; return 1;
} }
static int
libAVEnumPins_Cleanup(libAVEnumPins *this)
{
libAVFilter_Release(this->filter);
return 1;
}
DECLARE_CREATE(libAVEnumPins, libAVEnumPins_Setup(this, pin, filter), DECLARE_CREATE(libAVEnumPins, libAVEnumPins_Setup(this, pin, filter),
libAVPin *pin, libAVFilter *filter) libAVPin *pin, libAVFilter *filter)
DECLARE_DESTROY(libAVEnumPins, nothing) DECLARE_DESTROY(libAVEnumPins, libAVEnumPins_Cleanup)

View File

@ -191,6 +191,12 @@ libAVFilter_Setup(libAVFilter *this, void *priv_data, void *callback,
return 1; return 1;
} }
static int
libAVFilter_Cleanup(libAVFilter *this)
{
libAVPin_Release(this->pin);
return 1;
}
DECLARE_CREATE(libAVFilter, libAVFilter_Setup(this, priv_data, callback, type), DECLARE_CREATE(libAVFilter, libAVFilter_Setup(this, priv_data, callback, type),
void *priv_data, void *callback, enum dshowDeviceType type) void *priv_data, void *callback, enum dshowDeviceType type)
DECLARE_DESTROY(libAVFilter, nothing) DECLARE_DESTROY(libAVFilter, libAVFilter_Cleanup)