[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