diff mbox

[FFmpeg-devel,4/6] avcodec/nvdec: pass CUstream in vpp parameters

Message ID 20180508133132.28940-4-timo@rothenpieler.org
State Accepted
Commit 880236e898fdc2610a60b644b8d802bc299e4d71
Headers show

Commit Message

Timo Rothenpieler May 8, 2018, 1:31 p.m. UTC
---
 libavcodec/nvdec.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c
index d98f9dd95e..c5c5c83dc7 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;