From a1644f6287a55afbb57a6678b69941ba3d80650f Mon Sep 17 00:00:00 2001 From: Ramiro Polla Date: Tue, 13 Sep 2011 14:55:08 -0300 Subject: dshow: reset list for each filter removed Signed-off-by: Stefano Sabatini --- libavdevice/dshow.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavdevice/dshow.c b/libavdevice/dshow.c index 8dc9df998e..5fa9000f95 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); -- cgit v1.2.3