diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2016-07-13 20:16:27 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-07-13 20:16:27 +0200 |
commit | e879819e7b271e08cfdea9cbcf0f879b04bd09c3 (patch) | |
tree | aacf47a380667613186e17dd030001ad8f3b3c77 | |
parent | 57fa9608e419ddc377d04f508329595ec1e027cb (diff) | |
download | ffmpeg-e879819e7b271e08cfdea9cbcf0f879b04bd09c3.tar.gz |
avfilter/vf_uspp: Check for encoding failure
Fixes CID1363015
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r-- | libavfilter/vf_uspp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libavfilter/vf_uspp.c b/libavfilter/vf_uspp.c index f963254e11..8a6d0fbb93 100644 --- a/libavfilter/vf_uspp.c +++ b/libavfilter/vf_uspp.c @@ -186,6 +186,7 @@ static void filter(USPPContext *p, uint8_t *dst[3], uint8_t *src[3], { int x, y, i, j; const int count = 1<<p->log2_count; + int ret; for (i = 0; i < 3; i++) { int is_chroma = !!i; @@ -249,7 +250,12 @@ static void filter(USPPContext *p, uint8_t *dst[3], uint8_t *src[3], p->frame->data[2] = p->src[2] + x1c + y1c * p->frame->linesize[2]; p->frame->format = p->avctx_enc[i]->pix_fmt; - avcodec_encode_video2(p->avctx_enc[i], &pkt, p->frame, &got_pkt_ptr); + ret = avcodec_encode_video2(p->avctx_enc[i], &pkt, p->frame, &got_pkt_ptr); + if (ret < 0) { + av_log(p->avctx_enc[i], AV_LOG_ERROR, "Encoding failed\n"); + continue; + } + p->frame_dec = p->avctx_enc[i]->coded_frame; offset = (BLOCK-x1) + (BLOCK-y1) * p->frame_dec->linesize[0]; |