mirror of
https://github.com/opencv/opencv.git
synced 2025-08-05 22:19:14 +08:00
Merge pull request #8235 from berak:fix_dshow_leak
This commit is contained in:
commit
0c00242f7a
@ -877,14 +877,12 @@ void videoDevice::NukeDownstream(IBaseFilter *pBF){
|
||||
|
||||
void videoDevice::destroyGraph(){
|
||||
HRESULT hr = 0;
|
||||
//int FuncRetval=0;
|
||||
//int NumFilters=0;
|
||||
|
||||
int i = 0;
|
||||
while (hr == NOERROR)
|
||||
{
|
||||
IEnumFilters * pEnum = 0;
|
||||
ULONG cFetched;
|
||||
ULONG cFetched = 0;
|
||||
|
||||
// We must get the enumerator again every time because removing a filter from the graph
|
||||
// invalidates the enumerator. We always get only the first filter from each enumerator.
|
||||
@ -917,9 +915,11 @@ void videoDevice::destroyGraph(){
|
||||
pFilter->Release();
|
||||
pFilter = NULL;
|
||||
}
|
||||
else break;
|
||||
pEnum->Release();
|
||||
pEnum = NULL;
|
||||
|
||||
if (cFetched == 0)
|
||||
break;
|
||||
i++;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user