nv decoder and nv encoder don't work together

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

nv decoder and nv encoder don't work together

Lusine
Hi Folks,
I've built gstreamer 1.18 version on ubuntu 18:
The following pipeline gives this error:

gst-launch-1.0 filesrc location=sintel_trailer-480p.webm ! decodebin ! videoconvert ! nvh264enc ! h264parse ! qtmux ! filesink location=sintel_out.mp4

Setting pipeline to PAUSED ...
0:00:00.982614236  9399 0x558ef3fc9d00 INFO               nvh264enc gstnvh264enc.c:307:gst_nv_h264_enc_open:<nvh264enc0> H.264 encoding supported
Pipeline is PREROLLING ...
Got context from element 'nvh264enc0': gst.cuda.context=context, gst.cuda.context=(GstCudaContext)"\(GstCudaContext\)\ cudacontext0", cuda-device-id=(int)0;
Got context from element 'nvh264enc0': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\ gldisplayx11-0";
0:00:01.334386908  9399 0x7fd4a8014d40 ERROR                  nvdec gstnvdec.c:1321:gst_nvdec_ensure_gl_context:<nvvp8dec0> failed to create OpenGL context
0:00:01.345283816  9399 0x7fd4a8014d40 INFO               nvh264enc gstnvh264enc.c:432:gst_nv_h264_enc_set_src_caps:<nvh264enc0> output caps: video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)3.1, profile=(string)main
0:00:01.345860091  9399 0x7fd4a8014d40 ERROR                  nvdec gstnvdec.c:1321:gst_nvdec_ensure_gl_context:<nvvp8dec0> failed to create OpenGL context


You can see that nvvp8dec complains:
"nvvp8dec0 failed to create OpenGL context"

But encoder successfully creates OpenGL context:
"Got context from element nvh264enc0"

When I leave only decoder nvvp8dec creates OpenGL context  successfully:
 gst-launch-1.0 filesrc location=sintel_trailer-480p.webm ! decodebin ! fakesink
"Got context from element 'nvvp8dec0'"
...

So it seems nv decoder and nv encoder unable to work together?