|  |  | @@ -802,9 +802,17 @@ static av_cold int cuvid_decode_init(AVCodecContext *avctx) | 
		
	
		
			
			|  |  |  | goto error; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | ret = av_hwdevice_ctx_create(&ctx->hwdevice, AV_HWDEVICE_TYPE_CUDA, ctx->cu_gpu, NULL, 0); | 
		
	
		
			
			|  |  |  | if (ret < 0) | 
		
	
		
			
			|  |  |  | goto error; | 
		
	
		
			
			|  |  |  | if (avctx->hw_device_ctx) { | 
		
	
		
			
			|  |  |  | ctx->hwdevice = av_buffer_ref(avctx->hw_device_ctx); | 
		
	
		
			
			|  |  |  | if (!ctx->hwdevice) { | 
		
	
		
			
			|  |  |  | ret = AVERROR(ENOMEM); | 
		
	
		
			
			|  |  |  | goto error; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | ret = av_hwdevice_ctx_create(&ctx->hwdevice, AV_HWDEVICE_TYPE_CUDA, ctx->cu_gpu, NULL, 0); | 
		
	
		
			
			|  |  |  | if (ret < 0) | 
		
	
		
			
			|  |  |  | goto error; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | ctx->hwframe = av_hwframe_ctx_alloc(ctx->hwdevice); | 
		
	
		
			
			|  |  |  | if (!ctx->hwframe) { | 
		
	
	
		
			
				|  |  | 
 |