[FFmpeg-devel] [PATCH 2/2] lavf/qsvvpp: cope with MFX_ERR_MORE_DATA condition in VPP pipeline
Rostislav Pehlivanov
atomnuker at gmail.com
Mon Jan 14 18:48:13 EET 2019
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.
>
>
More information about the ffmpeg-devel
mailing list