[FFmpeg-cvslog] lavfi/qsvvpp: do not mix up FFmpeg and SDK error code
Haihao Xiang
git at videolan.org
Tue Aug 10 04:58:05 EEST 2021
ffmpeg | branch: master | Haihao Xiang <haihao.xiang at intel.com> | Fri Jul 30 10:39:24 2021 +0800| [43aeeab764c6fd89aea777767be9c0b16cedd78a] | committer: James Almer
lavfi/qsvvpp: do not mix up FFmpeg and SDK error code
The function ff_qsvvpp_filter_frame should return a FFmpeg error code if
there is an error. However it might return a SDK error code without this
patch.
Reviewed-by: Soft Works <softworkz at hotmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=43aeeab764c6fd89aea777767be9c0b16cedd78a
---
libavfilter/qsvvpp.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c
index 4768f6208b..c7ef8a915f 100644
--- a/libavfilter/qsvvpp.c
+++ b/libavfilter/qsvvpp.c
@@ -807,8 +807,7 @@ int ff_qsvvpp_filter_frame(QSVVPPContext *s, AVFilterLink *inlink, AVFrame *picr
filter_ret = s->filter_frame(outlink, tmp->frame);
if (filter_ret < 0) {
av_frame_free(&tmp->frame);
- ret = filter_ret;
- break;
+ return filter_ret;
}
tmp->queued--;
s->got_frame = 1;
@@ -842,7 +841,7 @@ 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);
+ return AVERROR(EAGAIN);
break;
}
out_frame->frame->pts = av_rescale_q(out_frame->surface.Data.TimeStamp,
@@ -864,8 +863,7 @@ int ff_qsvvpp_filter_frame(QSVVPPContext *s, AVFilterLink *inlink, AVFrame *picr
filter_ret = s->filter_frame(outlink, tmp->frame);
if (filter_ret < 0) {
av_frame_free(&tmp->frame);
- ret = filter_ret;
- break;
+ return filter_ret;
}
tmp->queued--;
@@ -874,5 +872,10 @@ int ff_qsvvpp_filter_frame(QSVVPPContext *s, AVFilterLink *inlink, AVFrame *picr
}
} while(ret == MFX_ERR_MORE_SURFACE);
- return ret;
+ if (ret < 0)
+ return ff_qsvvpp_print_error(ctx, ret, "Error running VPP");
+ else if (ret > 0)
+ ff_qsvvpp_print_warning(ctx, ret, "Warning in running VPP");
+
+ return 0;
}
More information about the ffmpeg-cvslog
mailing list