summaryrefslogtreecommitdiff
path: root/libavfilter/avfilter.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-08-29 20:35:03 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-08-29 20:39:34 +0200
commit37f9de59d1e793fac4cbb37045a2a34bb977b0cc (patch)
tree3f3c2fa931fd81ac615b173c6c7a77aaf804abb6 /libavfilter/avfilter.c
parent50be0b911a61e537878b2d65587ef303a56b3e91 (diff)
avfilter: fix processing multiple commands per frame and filter
Found-by: Nicolas George Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/avfilter.c')
-rw-r--r--libavfilter/avfilter.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index d327cf688b..d73698681e 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -566,9 +566,10 @@ void avfilter_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
else
link->cur_buf = picref;
- if(cmd && cmd->time <= picref->pts * av_q2d(link->time_base)){
+ while(cmd && cmd->time <= picref->pts * av_q2d(link->time_base)){
avfilter_process_command(link->dst, cmd->command, cmd->arg, 0, 0, cmd->flags);
command_queue_pop(link->dst);
+ cmd= link->dst->command_queue;
}
start_frame(link, link->cur_buf);