[FFmpeg-trac] #7530(avcodec:new): cuviddec/nvdec/nvenc: driver checking errors

FFmpeg trac at avcodec.org
Fri Nov 2 15:35:45 EET 2018


#7530: cuviddec/nvdec/nvenc: driver checking errors
------------------------------------+-----------------------------------
             Reporter:  msiders     |                    Owner:
                 Type:  defect      |                   Status:  new
             Priority:  normal      |                Component:  avcodec
              Version:  git-master  |               Resolution:
             Keywords:  nvenc       |               Blocked By:
             Blocking:              |  Reproduced by developer:  0
Analyzed by developer:  0           |
------------------------------------+-----------------------------------

Comment (by msiders):

 > Replying to [comment:1 cehoyos]:

 After upgrading the video driver, the ''same'' binary procudes this
 output:


 {{{
 [...]
 [h264_nvenc @ 0x305c7c0] Loaded lib: libcuda.so.1
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuInit
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuDeviceGetCount
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuDeviceGet
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuDeviceGetName
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuDeviceGetUuid
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuDeviceComputeCapability
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuCtxCreate_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuCtxSetLimit
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuCtxPushCurrent_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuCtxPopCurrent_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuCtxDestroy_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuMemAlloc_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuMemFree_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuMemcpy2D_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuMemcpy2DAsync_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuGetErrorName
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuGetErrorString
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuStreamCreate
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuStreamQuery
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuStreamSynchronize
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuStreamDestroy_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuStreamAddCallback
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuEventCreate
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuEventDestroy_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuEventSynchronize
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuEventQuery
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuEventRecord
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuGLGetDevices_v2
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuGraphicsGLRegisterImage
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuGraphicsUnregisterResource
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuGraphicsMapResources
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuGraphicsUnmapResources
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuGraphicsSubResourceGetMappedArray
 [h264_nvenc @ 0x305c7c0] Cannot load optional cuImportExternalMemory
 [h264_nvenc @ 0x305c7c0] Cannot load optional cuDestroyExternalMemory
 [h264_nvenc @ 0x305c7c0] Cannot load optional
 cuExternalMemoryGetMappedBuffer
 [h264_nvenc @ 0x305c7c0] Cannot load optional
 cuExternalMemoryGetMappedMipmappedArray
 [h264_nvenc @ 0x305c7c0] Loaded sym: cuMipmappedArrayGetLevel
 [h264_nvenc @ 0x305c7c0] Loaded lib: libnvidia-encode.so.1
 [h264_nvenc @ 0x305c7c0] Loaded sym: NvEncodeAPICreateInstance
 [h264_nvenc @ 0x305c7c0] Loaded sym: NvEncodeAPIGetMaxSupportedVersion
 [h264_nvenc @ 0x305c7c0] Loaded Nvenc version 8.1
 [h264_nvenc @ 0x305c7c0] Nvenc initialized successfully
 }}}

 Note that here the call to Load the function "cuDeviceGetUuid()" doesn't
 fail.

 So, as a summary:

 * Old FFmpeg binary, with old driver: OK
 * Old FFmpeg binary, with new driver: OK
 * New FFmpeg binary, with old driver: FAILS at runtime when using the
 cuvid driver
 * New FFmpeg binary, with new driver: OK

 All is done at '''runtime''', so in my opinion the user should be advised
 that the problem is the (old) version of the video driver.

 Regards.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/7530#comment:7>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list