[FFmpeg-cvslog] vf_yadif: fix permissions.

Nicolas George git at videolan.org
Fri Aug 17 18:44:19 CEST 2012


ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Tue Aug 14 18:51:05 2012 +0200| [9341bbfc51ad7c2f1b25e841f7ba5792e980582d] | committer: Nicolas George

vf_yadif: fix permissions.

Require AV_PERM_PRESERVE and leave harmless permissions
alone for the next filter.

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

 libavfilter/vf_yadif.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c
index f200cb1..9f949f8 100644
--- a/libavfilter/vf_yadif.c
+++ b/libavfilter/vf_yadif.c
@@ -240,7 +240,7 @@ static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
         return 0;
 
     if (yadif->auto_enable && !yadif->cur->video->interlaced) {
-        yadif->out  = avfilter_ref_buffer(yadif->cur, AV_PERM_READ);
+        yadif->out  = avfilter_ref_buffer(yadif->cur, ~AV_PERM_WRITE);
         if (!yadif->out)
             return AVERROR(ENOMEM);
 
@@ -251,7 +251,7 @@ static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
     }
 
     if (!yadif->prev &&
-        !(yadif->prev = avfilter_ref_buffer(yadif->cur, AV_PERM_READ)))
+        !(yadif->prev = avfilter_ref_buffer(yadif->cur, ~AV_PERM_WRITE)))
         return AVERROR(ENOMEM);
 
     yadif->out = ff_get_video_buffer(ctx->outputs[0], AV_PERM_WRITE | AV_PERM_PRESERVE |
@@ -304,7 +304,7 @@ static int request_frame(AVFilterLink *link)
         ret  = ff_request_frame(link->src->inputs[0]);
 
         if (ret == AVERROR_EOF && yadif->cur) {
-            AVFilterBufferRef *next = avfilter_ref_buffer(yadif->next, AV_PERM_READ);
+            AVFilterBufferRef *next = avfilter_ref_buffer(yadif->next, ~AV_PERM_WRITE);
             if (!next)
                 return AVERROR(ENOMEM);
 
@@ -445,7 +445,7 @@ AVFilter avfilter_vf_yadif = {
                                           .start_frame      = start_frame,
                                           .draw_slice       = null_draw_slice,
                                           .end_frame        = end_frame,
-                                          .rej_perms        = AV_PERM_REUSE2, },
+                                          .min_perms        = AV_PERM_PRESERVE, },
                                         { .name = NULL}},
 
     .outputs   = (const AVFilterPad[]) {{ .name             = "default",



More information about the ffmpeg-cvslog mailing list