]> git.sesse.net Git - ffmpeg/commitdiff
dshow: release filter reference obtained from enumeration
authorRamiro Polla <ramiro.polla@gmail.com>
Fri, 30 Sep 2011 20:49:43 +0000 (17:49 -0300)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 6 Nov 2011 00:19:56 +0000 (01:19 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavdevice/dshow.c

index 4f641e72118641ca8ea5bcbd9b7896528d9a5a9b..0191d510622c5dd899f6f94e0488582a1c40a550 100644 (file)
@@ -121,10 +121,12 @@ dshow_read_close(AVFormatContext *s)
         if (r == S_OK) {
             IBaseFilter *f;
             IEnumFilters_Reset(fenum);
-            while (IEnumFilters_Next(fenum, 1, &f, NULL) == S_OK)
+            while (IEnumFilters_Next(fenum, 1, &f, NULL) == S_OK) {
                 if (IGraphBuilder_RemoveFilter(ctx->graph, f) == S_OK)
                     IEnumFilters_Reset(fenum); /* When a filter is removed,
                                                 * the list must be reset. */
+                IBaseFilter_Release(f);
+            }
             IEnumFilters_Release(fenum);
         }
         IGraphBuilder_Release(ctx->graph);