I’ve compiled the gst-plugins-bad with nvdec and nvenc enabled, and testing them each on their own seems to work as expected.
I’ve built a pipeline to load a x265 transport stream, only to display it on a screen after parsing & decoding it
gst-launch-1.0 filesrc location=decode-demo.ts ! tsdemux ! h265parse ! nvdec ! gldownload ! videoconvert ! xvimagesink
Likewise, I’ve tested the encoder by feeding it a dummy signal to encode and then saving it to disk. Playback works wonderfully
gst-launch-1.0 videotestsrc ! nvh265enc ! mpegtsmux ! filesink location=encode-demo.ts
The combination of both, however, seems to produce a floating point exception (core dumped), and I have no clue on where to start digging for the problem.
I don’t have a lot of info in the gdb stack trace though, but the problem seems to be located within the encoding part
#0 0x00007ffff52389e1 in () at /usr/lib/libnvcuvid.so.1
#1 0x00007ffff5246b72 in () at /usr/lib/libnvcuvid.so.1
#2 0x00007ffff5249e83 in () at /usr/lib/libnvcuvid.so.1
#3 0x00007ffff5206745 in () at /usr/lib/libnvcuvid.so.1
#4 0x00007ffff4a16ff5 in () at /usr/lib/libnvidia-encode.so.1
#5 0x00007ffff4a0f4fa in () at /usr/lib/libnvidia-encode.so.1
#6 0x00007ffff4a1e689 in () at /usr/lib/libnvidia-encode.so.1
#7 0x00007ffff6953b46 in () at /usr/lib/gstreamer-1.0/libgstnvenc.so
#8 0x00007ffff6a27092 in () at /usr/lib/libgstvideo-1.0.so.0
#9 0x00007ffff7ed31cd in () at /usr/lib/libgstreamer-1.0.so.0
... snip ...
#20 0x00007ffff7ed6bcb in gst_pad_push_event () at /usr/lib/libgstreamer-1.0.so.0
#21 0x00007ffff6a25589 in () at /usr/lib/libgstvideo-1.0.so.0
#22 0x00007ffff6a25665 in gst_video_decoder_negotiate () at /usr/lib/libgstvideo-1.0.so.0
... 22 more lines clipped ...
The pipeline I’m testing looks like this
gst-launch-1.0 filesrc location=decode-demo.ts ! tsdemux ! h265parse ! nvdec ! gldownload ! nvh265enc ! mpegtsmux ! filesink location=encode-demo.ts
I’ve tried adding queues in between, adding and removing combinations of gldownload & glupload and videoconverts, but with the same result on valid pipelines.
Any hints on what to do next?
Best, Allan
[GeForce RTX2070]