avcodec/cuviddec: explicitly synchronize cuMemcpy calls

This commit is contained in:
Timo Rothenpieler 2018-05-08 13:56:51 +02:00
parent 9b82e333b7
commit 93d1756af2
1 changed files with 5 additions and 1 deletions

View File

@ -550,12 +550,16 @@ static int cuvid_output_frame(AVCodecContext *avctx, AVFrame *frame)
.Height = avctx->height >> (i ? 1 : 0), .Height = avctx->height >> (i ? 1 : 0),
}; };
ret = CHECK_CU(ctx->cudl->cuMemcpy2D(&cpy)); ret = CHECK_CU(ctx->cudl->cuMemcpy2DAsync(&cpy, device_hwctx->stream));
if (ret < 0) if (ret < 0)
goto error; goto error;
offset += avctx->height; offset += avctx->height;
} }
ret = CHECK_CU(ctx->cudl->cuStreamSynchronize(device_hwctx->stream));
if (ret < 0)
goto error;
} else if (avctx->pix_fmt == AV_PIX_FMT_NV12 || } else if (avctx->pix_fmt == AV_PIX_FMT_NV12 ||
avctx->pix_fmt == AV_PIX_FMT_P010 || avctx->pix_fmt == AV_PIX_FMT_P010 ||
avctx->pix_fmt == AV_PIX_FMT_P016) { avctx->pix_fmt == AV_PIX_FMT_P016) {