Some bitstreams (e.g. truncated, or non conformant), or bugs in codec layers, would incorrectly make decoders to fill in the RefPicList0/1 lists with surfaces that have not received any content yet.
There is no reason for the driver to crash in such cases. https://bugs.freedesktop.org/show_bug.cgi?id=82466 Signed-off-by: Gwenole Beauchesne <[email protected]> --- src/i965_decoder_utils.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/i965_decoder_utils.c b/src/i965_decoder_utils.c index 546285e..7ea39dd 100644 --- a/src/i965_decoder_utils.c +++ b/src/i965_decoder_utils.c @@ -526,6 +526,8 @@ intel_update_avc_frame_store_index( continue; GenAvcSurface * const avc_surface = obj_surface->private_data; + if (!avc_surface) + continue; if (avc_surface->frame_store_id >= 0) { GenFrameStore * const fs = &frame_store[avc_surface->frame_store_id]; @@ -559,6 +561,8 @@ intel_update_avc_frame_store_index( continue; GenAvcSurface * const avc_surface = obj_surface->private_data; + if (!avc_surface) + continue; if (n < num_free_refs) { GenFrameStore * const fs = free_refs[n++]; fs->surface_id = obj_surface->base.id; -- 1.7.9.5 _______________________________________________ Libva mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libva
