[libav-devel] [PATCH V2] lavc/qsv: skip the packet if decoding failure.

Maxym Dmytrychenko maxim.d33 at gmail.com
Thu Jan 25 09:32:12 CET 2018


just fine, thanks

On Thu, Jan 25, 2018 at 8:59 AM, Luca Barbato <lu_zero at gentoo.org> wrote:

> On 25/01/2018 02:21, Song, Ruiling wrote:
>
>>
>>
>> -----Original Message----- From: libav-devel
>>> [mailto:libav-devel-bounces at libav.org] On Behalf Of Luca Barbato Sent:
>>> Wednesday, January 24, 2018 6:36 PM To:
>>> libav-devel at libav.org Subject: Re: [libav-devel] [PATCH V2]
>>> lavc/qsv: skip the packet if decoding failure.
>>>
>>> On 24/01/2018 03:14, Ruiling Song wrote:
>>>
>>>> From: "Ruiling, Song" <ruiling.song at intel.com>
>>>>
>>>> MediaSDK may fail to decode some frame, just skip it. Otherwise,
>>>> it will keep decoding the failure packet repeatedly without
>>>> processing any packet afterwards.
>>>>
>>>> Signed-off-by: Ruiling Song <ruiling.song at intel.com> ---
>>>> libavcodec/qsvdec_h2645.c | 6 +++++- 1 file changed, 5
>>>> insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/libavcodec/qsvdec_h2645.c
>>>> b/libavcodec/qsvdec_h2645.c index 83880dc..78a7b61 100644 ---
>>>> a/libavcodec/qsvdec_h2645.c +++ b/libavcodec/qsvdec_h2645.c @@
>>>> -153,8 +153,12 @@ static int qsv_decode_frame(AVCodecContext
>>>> *avctx,
>>>>
>>> void *data,
>>>
>>>> }
>>>>
>>>> ret = ff_qsv_process_data(avctx, &s->qsv, frame, got_frame, &s-
>>>> buffer_pkt); -        if (ret < 0) +        if (ret < 0){ +
>>>> /* Drop buffer_pkt when failed to decode the packet. Otherwise, +
>>>> the decoder will keep decoding the failure packet. */ +
>>>> av_packet_unref(&s->buffer_pkt); return ret; +        }
>>>>
>>>> s->buffer_pkt.size -= ret; s->buffer_pkt.data += ret;
>>>>
>>>>
>>> Looks better, do you have a specific test sample?
>>>
>> Sorry I don't have the original clip to hit the issue. But I tried to
>> decode fate-suite/h264/attachment631-small.mp4 (The video stream has
>> some broken frames) QSV keeps trying to decode one broken frame. With
>> this patch, qsv could move on to process all the frames. Even with
>> this patch, MediaSDK still fails to decode out any frame in that
>> stream, which I think the issue comes from MediaSDK itself.
>>
>
> Ok, I'd merge this if nobody is against then.
>
> lu
>
> _______________________________________________
> libav-devel mailing list
> libav-devel at libav.org
> https://lists.libav.org/mailman/listinfo/libav-devel


More information about the libav-devel mailing list