[FFmpeg-devel] avcodec/vaapi_h264: skip decode if pic has no slices

Submitted by Peter F on March 9, 2019, 12:24 p.m.

Details

Message ID CAMQ1+vy_J4oSz0=QovQY9ckDJL43NPcby=186EYzTQKdTri7uA@mail.gmail.com
State New
Headers show

Commit Message

Peter F March 9, 2019, 12:24 p.m.
From 816e9156235a5d7d895b09c0235c9f8f1f7703e7 Mon Sep 17 00:00:00 2001
From: xbmc <fernetmenta@online.de>
Date: Sat, 26 Jan 2019 19:48:35 +0100
Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices

---
 libavcodec/vaapi_h264.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Thomas Xu March 9, 2019, 3:32 p.m.
should we return AVERROR_INVALIDDATA instead of -1?
thanks

On Sat, Mar 9, 2019 at 8:25 PM Peter F <peter.fruehberger@gmail.com> wrote:

> From 816e9156235a5d7d895b09c0235c9f8f1f7703e7 Mon Sep 17 00:00:00 2001
> From: xbmc <fernetmenta@online.de>
> Date: Sat, 26 Jan 2019 19:48:35 +0100
> Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
>
> ---
>  libavcodec/vaapi_h264.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
> index 5854587a25..81a46fa747 100644
> --- a/libavcodec/vaapi_h264.c
> +++ b/libavcodec/vaapi_h264.c
> @@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
>      H264SliceContext *sl = &h->slice_ctx[0];
>      int ret;
>
> +    if (pic->nb_slices == 0) {
> +        ret = -1;
> +        goto finish;
> +    }
> +
>      ret = ff_vaapi_decode_issue(avctx, pic);
>      if (ret < 0)
>          goto finish;
> --
> 2.19.1
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

Patch hide | download patch | download mbox

diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
index 5854587a25..81a46fa747 100644
--- a/libavcodec/vaapi_h264.c
+++ b/libavcodec/vaapi_h264.c
@@ -317,6 +317,11 @@  static int vaapi_h264_end_frame(AVCodecContext *avctx)
     H264SliceContext *sl = &h->slice_ctx[0];
     int ret;

+    if (pic->nb_slices == 0) {
+        ret = -1;
+        goto finish;
+    }
+
     ret = ff_vaapi_decode_issue(avctx, pic);
     if (ret < 0)
         goto finish;