DS 4.0 on Nano: can uridecodebin output nvmm?

This works on DS 1.5 on TX2:
gst-launch-1.0 uridecodebin uri=file:///home/nvidia/Videos/something.mp4 ! nvegltransform ! nveglglessink -e

With DS 4.0 on Nano, the same pipeline gives:

Setting pipeline to PAUSED …

Using winsys: x11
Pipeline is PREROLLING …
Got context from element ‘eglglessink0’: gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Opening in BLOCKING MODE
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
WARNING: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0: Delayed linking failed.
Additional debug info:
./grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0:
failed delayed linking some pad of GstURIDecodeBin named uridecodebin0 to some pad of GstNvEglTransform named nvegltransform0
ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0: Internal data stream error.
Additional debug info:
qtdemux.c(6073): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0:
streaming stopped, reason not-linked (-1)
ERROR: pipeline doesn’t want to preroll.
Setting pipeline to NULL …
Freeing pipeline …

Hi,
On r32.2, please run

$ gst-launch-1.0 uridecodebin uri=file:///home/nvidia/Videos/something.mp4 ! nvvidconv ! nveglglessink

Yes this works but this means nvdec is not used.

If you inspect nvvidconv, the sink pads only take in decoded input.

Did something change in uridecodebin between DS 1.5 and DS 4.0?

Is there a single element that knows how to select the correct decoder
and output NVMM like uridecodebin in TX2 DS 1.5?

Hi,
You can see what elements are used by executing:

$ export GST_DEBUG=*FACTORY*:4

You should see hardware decoder nvv4l2decoder is used.

Yes I see nvv4l2decoder.

Is there a way to make uridecodebin output nvmm to avoid an extra memory copy?

The uridecodebin element in DS 1.5 in TX2 does this.

Hi,
nvv4l2decoder plugin only outputs nvmm. You can run ‘gst-inspect-1.0 nvv4l2decoder’ to get detail.
It is necessary to convert NV12 to RGBA for rendering. Below pipeline should be more clear:

$ gst-launch-1.0 uridecodebin uri=file:///home/nvidia/Videos/something.mp4 caps='video/x-raw(memory:NVMM),format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=RGBA' ! nvegltransform ! nveglglessink