summaryrefslogtreecommitdiff
path: root/libavfilter/qsvvpp.c
diff options
context:
space:
mode:
authorHaihao Xiang <haihao.xiang@intel.com>2021-07-30 10:39:24 +0800
committerJames Almer <jamrial@gmail.com>2021-08-09 22:57:05 -0300
commit43aeeab764c6fd89aea777767be9c0b16cedd78a (patch)
treef035dd187a41fcd358cec29e7797c7c831d80273 /libavfilter/qsvvpp.c
parent3f92496d9eebea1ecaaf45bad5a6aeb192672fe3 (diff)
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@hotmail.com>
Diffstat (limited to 'libavfilter/qsvvpp.c')
-rw-r--r--libavfilter/qsvvpp.c15
1 files 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;
}