CUDA 2.0 multi threading


I’ve got a multithreading application with the Cuda H264 decoder libaries. The decoder works fine with the NV12toYUV conversion done by CPU. I wanted to add the NV12TORGB (NV12ToARGB_drvapi) conversion from the SDK samples in order to speed up the whole decoding process. I’ve got a 999 error code on then a 700 error code (CUDA_ERROR_LAUNCH_FAILED) on cuvidMapVideoFrame function call. I suppose there is a possible conflict on multi threading with the H264 library and the fact to load and launch a Cuda module. I use the GTX280 and the last version of the cuda2.0 and last evrsion of driver. I saw Eric Young posted a solution but I can’t download it from the forum site - Download error from the server ?


If you’re going to crosspost, you should at least check that you’re in the right category. The cuda video decoder is not supported in linux.


So, has this changed? I’m about to test it. Here is an interesting result on CUDA 4.2 for Ubuntu 12.04:

$ nm -D /usr/lib/ |grep cuvid

0000000000012180 T cuvidCreateDecoder

000000000000ec60 T cuvidCreateVideoParser

0000000000040f10 T cuvidCreateVideoSource

0000000000040e00 T cuvidCreateVideoSourceW

00000000000120a0 T cuvidCtxLock

0000000000012300 T cuvidCtxLockCreate

0000000000012280 T cuvidCtxLockDestroy

00000000000120d0 T cuvidCtxUnlock

0000000000011f80 T cuvidDecodePicture

0000000000012100 T cuvidDestroyDecoder

000000000000d4c0 T cuvidDestroyVideoParser

00000000000407a0 T cuvidDestroyVideoSource

0000000000040930 T cuvidGetSourceAudioFormat

0000000000040b30 T cuvidGetSourceVideoFormat

0000000000040660 T cuvidGetVideoSourceState

0000000000011fa0 T cuvidMapVideoFrame

0000000000011ff0 T cuvidMapVideoFrame64

000000000000d930 T cuvidParseVideoData

0000000000040600 T cuvidSetVideoSourceState

0000000000012040 T cuvidUnmapVideoFrame

0000000000012060 T cuvidUnmapVideoFrame64

It appears that the hooks are now in the Linux library for GPU video decoding via CUDA. Has anyone tested it out?