Does nv_omx_videomixer work in Jetson TK1?

Hi,

Has anyone been able to use nv_omx_videomixer successfully on the Jetson board?

I get the below error and have not been able to resolve:

Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingSetting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
Setting pipeline to NULL ...
Freeing pipeline ...

Below is the command that I used:

gst-launch videotestsrc ! 'video/x-raw-yuv, width=(int)640, height=(int)480, format=(fourcc)YUY2' ! nvvidconv ! 'video/x-nv-yuv, width=(int)640, height=(int)480, format=(fourcc)I420' ! nv_omx_videomixer ! nv_gl_eglimagesink

Thanks

I can’t use gst-launch also…
hope someone can help ><

@RJNN
I couldn’t get nv_omx_videomixer work as well, as I tested last Oct.

gst-launch-0.10 videotestsrc ! videomixer ! xvimageesink <-- Works

gst-launch-0.10 videotestsrc ! nv_omx_videomixer ! xvimagesink <--Doesn't Work

With the same error you got.

And I believe nv_gl_eglimagesink has issue, too.

gst-launch-0.10 videotestsrc ! typefind ! nvvidconv ! typefind ! xvimageesink <-- Works

gst-launch-0.10 videotestsrc ! typefind ! nvvidconv ! typefind ! nv_gl_eglimagesink <--Doesn't Work

with error message (attach -v -e to the pipe)

Setting pipeline to PAUSED ...
EGL Failed to return any matching configurations
ERROR: Pipeline doesn't want to pause.
Setting pipeline to NULL ...
Freeing pipeline ...

It’s still a puzzle.

P.S. I found that under gst-1.0 nveglglessink works, but no nv version of videomixer, though.

@Terry4_Chan
Maybe you need to get some gst stuff install. Check this post
https://devtalk.nvidia.com/default/topic/808990/nvgstplayer-1-0-in-r21-2-not-able-to-play-video-because-of-plugins-missing/?offset=2#4450748
And Plz start a new thread for a different issue.

I updated my multiwindow test to use nvglessink:

https://github.com/kulve/gst-multiwindow

I’m able to play 4x 1080p24 streams on Jetson with only ~50% CPU usage. It doesn’t use the videomixer but does a similar thing with X11 windows.

Unfortunately I’m seeing some gk20a errors in the kernel log and some of the streams start much later than others, but at least they do start after a while. If somebody wants to test that, you could try adding e.g. a 500ms sleep between initialising the pipelines, just in case it’s a bad idea to start them exactly at the same time.

@kulve
Oddly, the python code only plays the bottom right one on my jtk1.
BTW my L4T is R21.2.

If you wait a minute, do you still see only one video stream? In either case, I recommend that you update to 21.3.

I noticed that the gk20a errors I was seeing concerns only Unity. In XFCE without a compositing window manager I didn’t see any issues and the streams started immediately.

I updated the application couple of hours ago and now it takes an arbitrary number of URIs.

With max CPU/GPU/EMC clocks, I’m able to play 4x 1080p streams with CPU load around 50% on one core or 9x 480p streams with CPU load barely under 100% on one core. More than 9 streams lags severely even though in theory there are plenty of CPU cores available. Maybe that starts to hit the video decoder limits.