summaryrefslogtreecommitdiff
path: root/libavfilter/vf_yadif.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2012-07-15 09:47:01 +0200
committerAnton Khirnov <anton@khirnov.net>2012-07-22 09:14:05 +0200
commit3825b5268844694ff50a0e0bfde64df43a862fae (patch)
tree3cb8456333c0a5a1af8f7d2c557174181ff1c6c5 /libavfilter/vf_yadif.c
parentd4f89906e3b310609b636cf6071313ec557ec873 (diff)
lavfi: check all ff_start_frame/draw_slice/end_frame calls for errors
Diffstat (limited to 'libavfilter/vf_yadif.c')
-rw-r--r--libavfilter/vf_yadif.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c
index 69efc8a08a..9ac11bf959 100644
--- a/libavfilter/vf_yadif.c
+++ b/libavfilter/vf_yadif.c
@@ -157,11 +157,11 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms, int w,
return picref;
}
-static void return_frame(AVFilterContext *ctx, int is_second)
+static int return_frame(AVFilterContext *ctx, int is_second)
{
YADIFContext *yadif = ctx->priv;
AVFilterLink *link= ctx->outputs[0];
- int tff;
+ int tff, ret;
if (yadif->parity == -1) {
tff = yadif->cur->video->interlaced ?
@@ -193,12 +193,16 @@ static void return_frame(AVFilterContext *ctx, int is_second)
} else {
yadif->out->pts = AV_NOPTS_VALUE;
}
- ff_start_frame(ctx->outputs[0], yadif->out);
+ ret = ff_start_frame(ctx->outputs[0], yadif->out);
+ if (ret < 0)
+ return ret;
}
- ff_draw_slice(ctx->outputs[0], 0, link->h, 1);
- ff_end_frame(ctx->outputs[0]);
+ if ((ret = ff_draw_slice(ctx->outputs[0], 0, link->h, 1)) < 0 ||
+ (ret = ff_end_frame(ctx->outputs[0])) < 0)
+ return ret;
yadif->frame_pending = (yadif->mode&1) && !is_second;
+ return 0;
}
static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref)