This patch is: Reviewed-by: Julien Isorce <j.iso...@samsung.com> Tested-by: Julien Isorce <j.iso...@samsung.com>
On 11 December 2015 at 12:33, Christian König <deathsim...@vodafone.de> wrote: > From: Christian König <christian.koe...@amd.com> > > Avoid referencing NULL pointers. > > Signed-off-by: Christian König <christian.koe...@amd.com> > --- > src/gallium/state_trackers/va/postproc.c | 36 > +++++++++++++++++++++++++------- > 1 file changed, 28 insertions(+), 8 deletions(-) > > diff --git a/src/gallium/state_trackers/va/postproc.c > b/src/gallium/state_trackers/va/postproc.c > index 2d17694..105f251 100644 > --- a/src/gallium/state_trackers/va/postproc.c > +++ b/src/gallium/state_trackers/va/postproc.c > @@ -29,9 +29,26 @@ > > #include "va_private.h" > > +static const VARectangle * > +vlVaRegionDefault(const VARectangle *region, struct pipe_video_buffer > *buf, > + VARectangle *def) > +{ > + if (region) > + return region; > + > + def->x = 0; > + def->y = 0; > + def->width = buf->width; > + def->height = buf->height; > + > + return def; > +} > + > VAStatus > vlVaHandleVAProcPipelineParameterBufferType(vlVaDriver *drv, vlVaContext > *context, vlVaBuffer *buf) > { > + VARectangle def_src_region, def_dst_region; > + const VARectangle *src_region, *dst_region; > struct u_rect src_rect; > struct u_rect dst_rect; > vlVaSurface *src_surface; > @@ -64,15 +81,18 @@ vlVaHandleVAProcPipelineParameterBufferType(vlVaDriver > *drv, vlVaContext *contex > > psurf = surfaces[0]; > > - src_rect.x0 = pipeline_param->surface_region->x; > - src_rect.y0 = pipeline_param->surface_region->y; > - src_rect.x1 = pipeline_param->surface_region->x + > pipeline_param->surface_region->width; > - src_rect.y1 = pipeline_param->surface_region->y + > pipeline_param->surface_region->height; > + src_region = vlVaRegionDefault(pipeline_param->surface_region, > src_surface->buffer, &def_src_region); > + dst_region = vlVaRegionDefault(pipeline_param->output_region, > context->target, &def_dst_region); > + > + src_rect.x0 = src_region->x; > + src_rect.y0 = src_region->y; > + src_rect.x1 = src_region->x + src_region->width; > + src_rect.y1 = src_region->y + src_region->height; > > - dst_rect.x0 = pipeline_param->output_region->x; > - dst_rect.y0 = pipeline_param->output_region->y; > - dst_rect.x1 = pipeline_param->output_region->x + > pipeline_param->output_region->width; > - dst_rect.y1 = pipeline_param->output_region->y + > pipeline_param->output_region->height; > + dst_rect.x0 = dst_region->x; > + dst_rect.y0 = dst_region->y; > + dst_rect.x1 = dst_region->x + dst_region->width; > + dst_rect.y1 = dst_region->y + dst_region->height; > > vl_compositor_clear_layers(&drv->cstate); > vl_compositor_set_buffer_layer(&drv->cstate, &drv->compositor, 0, > src_surface->buffer, &src_rect, NULL, VL_COMPOSITOR_WEAVE); > -- > 2.5.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev