mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 06:10:12 +01:00
st/va: Fix vaSyncSurface with no outstanding operation
Fixes crash if the application doesn't do what the state tracker expects. Reviewed-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
parent
df920367bf
commit
a543f231d7
1 changed files with 7 additions and 0 deletions
|
|
@ -111,6 +111,12 @@ vlVaSyncSurface(VADriverContextP ctx, VASurfaceID render_target)
|
|||
return VA_STATUS_ERROR_INVALID_SURFACE;
|
||||
}
|
||||
|
||||
if (!surf->feedback) {
|
||||
// No outstanding operation: nothing to do.
|
||||
pipe_mutex_unlock(drv->mutex);
|
||||
return VA_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
context = handle_table_get(drv->htab, surf->ctx);
|
||||
if (!context) {
|
||||
pipe_mutex_unlock(drv->mutex);
|
||||
|
|
@ -126,6 +132,7 @@ vlVaSyncSurface(VADriverContextP ctx, VASurfaceID render_target)
|
|||
if (frame_diff < 2)
|
||||
context->decoder->flush(context->decoder);
|
||||
context->decoder->get_feedback(context->decoder, surf->feedback, &(surf->coded_buf->coded_size));
|
||||
surf->feedback = NULL;
|
||||
}
|
||||
pipe_mutex_unlock(drv->mutex);
|
||||
return VA_STATUS_SUCCESS;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue