[FFmpeg-devel] [PATCH 2/2] lavf/qsvvpp: cope with MFX_ERR_MORE_DATA condition in VPP pipeline

Maxym Dmytrychenko maxim.d33 at gmail.com
Mon Jan 14 21:12:03 EET 2019


On Mon, Jan 14, 2019 at 5:53 PM Rostislav Pehlivanov <atomnuker at gmail.com>
wrote:

> On Mon, 14 Jan 2019 at 12:40, Linjie Fu <linjie.fu at intel.com> wrote:
>
> > Returning AVERROR(EAGAIN) when libmfx needs more data will cause the
> > failure
> > of requesting the next frame and lead to an infinite loop.
> >
> > Sleep for a while to release the resources before calling
> > MFXVideoCORE_SyncOperation
> > in hwupload to avoid the crash (in MCTF for example).
> >
> > Signed-off-by: Linjie Fu <linjie.fu at intel.com>
> > ---
> >  libavfilter/qsvvpp.c | 6 ++++--
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c
> > index 06efdf5089..1a10d16788 100644
> > --- a/libavfilter/qsvvpp.c
> > +++ b/libavfilter/qsvvpp.c
> > @@ -714,8 +714,10 @@ int ff_qsvvpp_filter_frame(QSVVPPContext *s,
> > AVFilterLink *inlink, AVFrame *picr
> >
> >          if (ret < 0 && ret != MFX_ERR_MORE_SURFACE) {
> >              /* Ignore more_data error */
> > -            if (ret == MFX_ERR_MORE_DATA)
> > -                ret = AVERROR(EAGAIN);
> > +            if (ret == MFX_ERR_MORE_DATA) {
> > +                ret = MFX_ERR_NONE;
> > +                av_usleep(100000);
> > +            }
> >              break;
> >          }
> >
> > --
> > 2.17.1
> >
>
> This seems like its an ugly hack.
>
>

totally agree here, it should not be time dependent



> >
> >
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


regards
Maxym Dm


More information about the ffmpeg-devel mailing list