would be av_packet_unref() more appropriate ? On Mon, Jan 22, 2018 at 9:53 AM, Ruiling, Song <[email protected]> wrote:
> 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 | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/qsvdec_h2645.c b/libavcodec/qsvdec_h2645.c > index 83880dc..aa8746d 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) > - return ret; > + if (ret < 0){ > + /* force the buffer_pkt's size to 0 when failed to decode > the packet, > + otherwise, the decoder will keep decoding the failure > packet. */ > + s->buffer_pkt.size = 0; > + return ret; > + } > > s->buffer_pkt.size -= ret; > s->buffer_pkt.data += ret; > -- > 2.7.4 > > _______________________________________________ > 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
