nvoverlaysink reports "got error: Insufficient resources" if overlay is 4 or 5

I’m trying this simple pipeline:

gst-launch-1.0 --gst-debug="*:2" videotestsrc ! nvoverlaysink overlay=5

It works fine if overlay is 1 or 2. But when I try 4 or 5, I got a lot of errors:

0:00:01.187001455  3085   0x7f8800eb80 ERROR                    omx gstomx.c:496:EventHandler:<nvoverlaysink-nvoverlaysink0> yuv420 got error: Insufficient resources (0x80001000)
NvxBaseWorkerFunction[2575] comp OMX.Nvidia.std.iv_renderer.overlay.yuv420 Error -2147479552
0:00:01.187051559  3085   0x7f8800eb80 ERROR                    omx gstomx.c:496:EventHandler:<nvoverlaysink-nvoverlaysink0> yuv420 got error: Insufficient resources (0x80001000)
nvdc: open: Too many open files
nvdc: failed to open '/dev/tegra_dc_0'.

Meanwhile dmesg also reports numerous errors:

[  996.813430] tegradc tegradc.0: Color format of window 3 is invalid: 18.
[  996.823849] tegradc tegradc.0: Window atrributes are invalid.
[  996.846777] tegradc tegradc.0: Color format of window 3 is invalid: 18.
[  996.857261] tegradc tegradc.0: Window atrributes are invalid.

I like nvoverlaysink because “overlay-x/y/w/h” and “display-id” make it very convenient to play multiple videos on dual monitors. But the valid range of “overlay” is only 0~5. Is there any chance it can be increased to 10 or 16? I’m wondering what causes this limit, e.g. GPU performance?

Thanks.

Hi,
It cannot be supported in nvoverlaysink. Please use nveglglessink.

But the valid range of “overlay” is only 0~5. Is there any chance it can be increased to 10 or 16?

Hi,

This is not possible due to hardware limitation. Each overlay here is actually a hardware window, or you could call it framebuffer.

ref: TX1 TRM -> ch24. Display controller.

Thank you, Dane and Wayne.

I still wonder why I got those “Insufficient resources” errors, but I guess it’s not really important now that nvoverlaysink doesn’t support more than 6 overlays.