Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libavfilter/vf_crop.c')
-rw-r--r--libavfilter/vf_crop.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c
index f9e17573a4..4d3a7f355a 100644
--- a/libavfilter/vf_crop.c
+++ b/libavfilter/vf_crop.c
@@ -259,7 +259,7 @@ static int config_output(AVFilterLink *link)
return 0;
}
-static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
+static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{
AVFilterContext *ctx = link->dst;
CropContext *crop = ctx->priv;
@@ -267,6 +267,9 @@ static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
int i;
ref2 = avfilter_ref_buffer(picref, ~0);
+ if (!ref2)
+ return AVERROR(ENOMEM);
+
ref2->video->w = crop->w;
ref2->video->h = crop->h;
@@ -310,16 +313,16 @@ static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
ref2->data[3] += crop->x * crop->max_step[3];
}
- ff_start_frame(link->dst->outputs[0], ref2);
+ return ff_start_frame(link->dst->outputs[0], ref2);
}
-static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
+static int draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
{
AVFilterContext *ctx = link->dst;
CropContext *crop = ctx->priv;
if (y >= crop->y + crop->h || y + h <= crop->y)
- return;
+ return 0;
if (y < crop->y) {
h -= crop->y - y;
@@ -328,15 +331,15 @@ static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
if (y + h > crop->y + crop->h)
h = crop->y + crop->h - y;
- ff_draw_slice(ctx->outputs[0], y - crop->y, h, slice_dir);
+ return ff_draw_slice(ctx->outputs[0], y - crop->y, h, slice_dir);
}
-static void end_frame(AVFilterLink *link)
+static int end_frame(AVFilterLink *link)
{
CropContext *crop = link->dst->priv;
crop->var_values[VAR_N] += 1.0;
- ff_end_frame(link->dst->outputs[0]);
+ return ff_end_frame(link->dst->outputs[0]);
}
AVFilter avfilter_vf_crop = {