[Libva] [PATCH intel-driver] decoder: h264: fix RefPicList0/1 without frame in DPB.

Gwenole Beauchesne gb.devel at gmail.com
Mon Aug 18 07:03:12 PDT 2014


2014-08-14 13:59 GMT+02:00 Gwenole Beauchesne <gb.devel at gmail.com>:
> 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

Pushed to git "master" and "staging" branches.

> Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne at intel.com>
> ---
>  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
>


More information about the Libva mailing list