videoio(dshow) fix memory leak
authorKai Stüdemann <kstuedemann@yahoo.de>
Thu, 3 Jun 2021 20:12:46 +0000 (22:12 +0200)
committerKai Stüdemann <kstuedemann@yahoo.de>
Fri, 4 Jun 2021 08:02:48 +0000 (10:02 +0200)
modules/videoio/src/cap_dshow.cpp

index cf653f6..94837e7 100644 (file)
@@ -2496,7 +2496,10 @@ static void findClosestSizeAndSubtype(videoDevice * VD, int widthIn, int heightI
                    int tempH = 999999;
 
                    //Don't want to get stuck in a loop
-                   if(stepX < 1 || stepY < 1) continue;
+                   if(stepX < 1 || stepY < 1){
+                       MyDeleteMediaType(pmtConfig);
+                       continue;
+                    }
 
                    //DebugPrintOut("min is %i %i max is %i %i - res is %i %i\n", scc.MinOutputSize.cx, scc.MinOutputSize.cy,  scc.MaxOutputSize.cx,  scc.MaxOutputSize.cy, stepX, stepY);
                    //DebugPrintOut("min frame duration is %i  max duration is %i\n", scc.MinFrameInterval, scc.MaxFrameInterval);