just fine, thanks On Thu, Jan 25, 2018 at 8:59 AM, Luca Barbato <[email protected]> wrote:
> On 25/01/2018 02:21, Song, Ruiling wrote: > >> >> >> -----Original Message----- From: libav-devel >>> [mailto:[email protected]] On Behalf Of Luca Barbato Sent: >>> Wednesday, January 24, 2018 6:36 PM To: >>> [email protected] 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" <[email protected]> >>>> >>>> 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 <[email protected]> --- >>>> 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 > [email protected] > https://lists.libav.org/mailman/listinfo/libav-devel _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
