[FFmpeg-cvslog] dshow: reset list for each filter removed

Ramiro Polla git at videolan.org
Fri Sep 16 11:18:20 CEST 2011


ffmpeg | branch: master | Ramiro Polla <ramiro.polla at gmail.com> | Tue Sep 13 14:55:08 2011 -0300| [a1644f6287a55afbb57a6678b69941ba3d80650f] | committer: Stefano Sabatini

dshow: reset list for each filter removed

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

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a1644f6287a55afbb57a6678b69941ba3d80650f
---

 libavdevice/dshow.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c
index 8dc9df9..5fa9000 100644
--- a/libavdevice/dshow.c
+++ b/libavdevice/dshow.c
@@ -138,7 +138,9 @@ dshow_read_close(AVFormatContext *s)
             IBaseFilter *f;
             IEnumFilters_Reset(fenum);
             while (IEnumFilters_Next(fenum, 1, &f, NULL) == S_OK)
-                IGraphBuilder_RemoveFilter(ctx->graph, f);
+                if (IGraphBuilder_RemoveFilter(ctx->graph, f) == S_OK)
+                    IEnumFilters_Reset(fenum); /* When a filter is removed,
+                                                * the list must be reset. */
             IEnumFilters_Release(fenum);
         }
         IGraphBuilder_Release(ctx->graph);



More information about the ffmpeg-cvslog mailing list