diff options
author | Timo Rothenpieler <timo@rothenpieler.org> | 2018-05-08 00:07:31 +0200 |
---|---|---|
committer | Timo Rothenpieler <timo@rothenpieler.org> | 2018-05-10 00:34:22 +0200 |
commit | 880236e898fdc2610a60b644b8d802bc299e4d71 (patch) | |
tree | fde8ed6beb483539430b22a0a86e64ae47b84e8a | |
parent | c85568342741e0e1b48fc36c780342de8ad29be7 (diff) | |
download | ffmpeg-880236e898fdc2610a60b644b8d802bc299e4d71.tar.gz |
avcodec/nvdec: pass CUstream in vpp parameters
-rw-r--r-- | libavcodec/nvdec.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c index 502747adfd..e779be3a45 100644 --- a/libavcodec/nvdec.c +++ b/libavcodec/nvdec.c @@ -39,6 +39,7 @@ typedef struct NVDECDecoder { AVBufferRef *hw_device_ref; CUcontext cuda_ctx; + CUstream stream; CudaFunctions *cudl; CuvidFunctions *cvdl; @@ -189,6 +190,7 @@ static int nvdec_decoder_create(AVBufferRef **out, AVBufferRef *hw_device_ref, } decoder->cuda_ctx = device_hwctx->cuda_ctx; decoder->cudl = device_hwctx->internal->cuda_dl; + decoder->stream = device_hwctx->stream; ret = cuvid_load_functions(&decoder->cvdl, logctx); if (ret < 0) { @@ -386,7 +388,7 @@ static int nvdec_retrieve_data(void *logctx, AVFrame *frame) NVDECFrame *cf = (NVDECFrame*)fdd->hwaccel_priv; NVDECDecoder *decoder = (NVDECDecoder*)cf->decoder_ref->data; - CUVIDPROCPARAMS vpp = { .progressive_frame = 1 }; + CUVIDPROCPARAMS vpp = { 0 }; NVDECFrame *unmap_data = NULL; CUresult err; @@ -397,6 +399,9 @@ static int nvdec_retrieve_data(void *logctx, AVFrame *frame) unsigned int offset = 0; int ret = 0; + vpp.progressive_frame = 1; + vpp.output_stream = decoder->stream; + err = decoder->cudl->cuCtxPushCurrent(decoder->cuda_ctx); if (err != CUDA_SUCCESS) return AVERROR_UNKNOWN; |