Commit bdf7610e authored by Mark Thompson's avatar Mark Thompson

vf_scale_vaapi: Crop input surface to active region

If the input has been decoded from a stream which uses edge cropping
then the whole surface need not be valid.  This defines an input
region for the scaler so we only use the active area of the frame.
parent 3a9662af
...@@ -259,6 +259,7 @@ static int scale_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame) ...@@ -259,6 +259,7 @@ static int scale_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame)
VASurfaceID input_surface, output_surface; VASurfaceID input_surface, output_surface;
VAProcPipelineParameterBuffer params; VAProcPipelineParameterBuffer params;
VABufferID params_id; VABufferID params_id;
VARectangle input_region;
VAStatus vas; VAStatus vas;
int err; int err;
...@@ -292,8 +293,17 @@ static int scale_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame) ...@@ -292,8 +293,17 @@ static int scale_vaapi_filter_frame(AVFilterLink *inlink, AVFrame *input_frame)
memset(&params, 0, sizeof(params)); memset(&params, 0, sizeof(params));
// If there were top/left cropping, it could be taken into
// account here.
input_region = (VARectangle) {
.x = 0,
.y = 0,
.width = input_frame->width,
.height = input_frame->height,
};
params.surface = input_surface; params.surface = input_surface;
params.surface_region = 0; params.surface_region = &input_region;
params.surface_color_standard = params.surface_color_standard =
vaapi_proc_colour_standard(input_frame->colorspace); vaapi_proc_colour_standard(input_frame->colorspace);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment