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.
VASurfaceID input_surface, output_surface;
VAProcPipelineParameterBuffer params;
VABufferID params_id;
VASurfaceID input_surface, output_surface;
VAProcPipelineParameterBuffer params;
VABufferID params_id;
+ VARectangle input_region;
memset(¶ms, 0, sizeof(params));
memset(¶ms, 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 =
vaapi_proc_colour_standard(input_frame->colorspace);
params.surface_color_standard =
vaapi_proc_colour_standard(input_frame->colorspace);