On Fri, Jul 24, 2015 at 01:48:45AM +0200, Michael Niedermayer wrote: > On Thu, Jul 23, 2015 at 12:46:47PM +0300, Ivan Uskov wrote: > > Hello All , > > > > There is updated version of patch which should be applied without conflicts. > > Also here couple wrong places have been corrected into ff_qsv_decode(). > > > > Tuesday, July 21, 2015, 4:08:47 PM, you wrote: > > > > IU> Hello all, > > > > IU> Actual implementation of ff_qsv_decode() is not reliable, it may > > IU> return without consumption of 1..3 last bytes of packet which > > IU> initiates infinitive loop. New implementation guarantees that packet > > IU> will consumed, now internal fifo uses to join unconsumed previous packet > > IU> tail with new packet. > > IU> Please review. > > IU> > > > > > > > > > > -- > > Best regards, > > Ivan mailto:ivan.us...@nablet.com > > > qsvdec.c | 130 > > +++++++++++++++++++++++++++++++++++++++++++++++---------------- > > qsvdec.h | 1 > > 2 files changed, 100 insertions(+), 31 deletions(-) > > eb551cc0e8ef21a3557cebb850b5a15ce385e30e > > 0002-libavcodec-qsvdec.c-The-ff_qsv_decode-now-guarantees.patch > > From 1b1d3cae1910eb1a4dcea3ddee31a1b2a42292f5 Mon Sep 17 00:00:00 2001 > > From: Ivan Uskov <ivan.us...@nablet.com> > > Date: Tue, 21 Jul 2015 08:31:14 -0400 > > Subject: [PATCH 2/2] libavcodec/qsvdec.c: The ff_qsv_decode() now guarantees > > the consumption of whole packet. > > > > --- > > libavcodec/qsvdec.c | 130 > > +++++++++++++++++++++++++++++++++++++++------------- > > libavcodec/qsvdec.h | 1 + > > 2 files changed, 100 insertions(+), 31 deletions(-) > > > > diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c > > index 4e7a0ac..b81781b 100644 > > --- a/libavcodec/qsvdec.c > > +++ b/libavcodec/qsvdec.c > > @@ -126,6 +126,10 @@ int ff_qsv_decode_init(AVCodecContext *avctx, > > QSVContext *q, AVPacket *avpkt) > > if (!q->async_fifo) > > return AVERROR(ENOMEM); > > > > + q->input_fifo = av_fifo_alloc(1024*16); > > + if (!q->input_fifo) > > + return AVERROR(ENOMEM); > > + > > q->engine_ready = 1; > > > > return 0; > > @@ -223,6 +227,31 @@ static QSVFrame *find_frame(QSVContext *q, > > mfxFrameSurface1 *surf) > > return NULL; > > } > > > > > +static void qsv_fifo_relocate(AVFifoBuffer *f, int bytes_to_free) > > this should be documented, maybe something like > drains specifiified amount of data and re-locates the remaining to ^^^^ specified
[...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Democracy is the form of government in which you can choose your dictator
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel