How to extract custom SEI unregistered user message data with the Nvidia Decoder?

It is straight forward to add the data using the video encoder by changing the NV_ENC_PIC_PARAMS structure, but I don’t see any structure on decode that provides metadata of decoded NALUs, only produced the actual decoded frames. Is there a way to obtain this metadata using the nvidia decoder?

I don’t think NVDec will parse the SEI’s for you. You can get a pointer to the raw bitstream in pPicParams->pBitstreamData and parse it yourself. Or you can parse it yourself before passing it to the decoder.

My application passes data to the decoder NALU-by-NALU and that enables me to detect the SEIs and do what I need to do before passing them to the decoder.

How do you pass NALU-by-NALU? Did you write a parser yourself that reads and splits the video stream in NALUS?

Yes, I wrote my own parser. Here is a CUDA 7.5-based VS2013 project that contains everything you need. It’s a little old but still works fine. Let me know if you need any help parsing SEI NALUs.