vl/compositor: implement error handling
pipe_buffer_map and pipe_buffer_create may return NULL Signed-off-by: Nayan Deshmukh <nayan26deshmukh@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
This commit is contained in:

committed by
Christian König

parent
1a83e9892d
commit
cee5af93ee
@@ -919,7 +919,7 @@ vl_compositor_cleanup(struct vl_compositor *c)
|
||||
cleanup_pipe_state(c);
|
||||
}
|
||||
|
||||
void
|
||||
bool
|
||||
vl_compositor_set_csc_matrix(struct vl_compositor_state *s,
|
||||
vl_csc_matrix const *matrix,
|
||||
float luma_min, float luma_max)
|
||||
@@ -932,6 +932,9 @@ vl_compositor_set_csc_matrix(struct vl_compositor_state *s,
|
||||
PIPE_TRANSFER_WRITE | PIPE_TRANSFER_DISCARD_RANGE,
|
||||
&buf_transfer);
|
||||
|
||||
if (!ptr)
|
||||
return false;
|
||||
|
||||
memcpy(ptr, matrix, sizeof(vl_csc_matrix));
|
||||
|
||||
ptr += sizeof(vl_csc_matrix)/sizeof(float);
|
||||
@@ -939,6 +942,8 @@ vl_compositor_set_csc_matrix(struct vl_compositor_state *s,
|
||||
ptr[1] = luma_max;
|
||||
|
||||
pipe_buffer_unmap(s->pipe, buf_transfer);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1246,10 +1251,14 @@ vl_compositor_init_state(struct vl_compositor_state *s, struct pipe_context *pip
|
||||
sizeof(csc_matrix) + 2*sizeof(float)
|
||||
);
|
||||
|
||||
if (!s->csc_matrix)
|
||||
return false;
|
||||
|
||||
vl_compositor_clear_layers(s);
|
||||
|
||||
vl_csc_get_matrix(VL_CSC_COLOR_STANDARD_IDENTITY, NULL, true, &csc_matrix);
|
||||
vl_compositor_set_csc_matrix(s, (const vl_csc_matrix *)&csc_matrix, 1.0f, 0.0f);
|
||||
if (!vl_compositor_set_csc_matrix(s, (const vl_csc_matrix *)&csc_matrix, 1.0f, 0.0f))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@@ -142,7 +142,7 @@ vl_compositor_init_state(struct vl_compositor_state *state, struct pipe_context
|
||||
/**
|
||||
* set yuv -> rgba conversion matrix
|
||||
*/
|
||||
void
|
||||
bool
|
||||
vl_compositor_set_csc_matrix(struct vl_compositor_state *settings,
|
||||
const vl_csc_matrix *matrix,
|
||||
float luma_min, float luma_max);
|
||||
|
Reference in New Issue
Block a user