avcodec/pthread_frame: Check av_packet_ref() for failure

Fixes CID1396242
This commit is contained in:
Michael Niedermayer 2017-02-05 15:09:52 +01:00
parent e57fd926b0
commit 1e5cfad57e

View File

@ -312,6 +312,7 @@ static int submit_packet(PerThreadContext *p, AVPacket *avpkt)
FrameThreadContext *fctx = p->parent;
PerThreadContext *prev_thread = fctx->prev_thread;
const AVCodec *codec = p->avctx->codec;
int ret;
if (!avpkt->size && !(codec->capabilities & AV_CODEC_CAP_DELAY))
return 0;
@ -337,7 +338,12 @@ static int submit_packet(PerThreadContext *p, AVPacket *avpkt)
}
av_packet_unref(&p->avpkt);
av_packet_ref(&p->avpkt, avpkt);
ret = av_packet_ref(&p->avpkt, avpkt);
if (ret < 0) {
pthread_mutex_unlock(&p->mutex);
av_log(p->avctx, AV_LOG_ERROR, "av_packet_ref() failed in submit_packet()\n");
return ret;
}
p->state = STATE_SETTING_UP;
pthread_cond_signal(&p->input_cond);