R32.4.3 - Issue with nvv4l2decoder

Hello,

In this post, I had found a bug in nvv4l2decoder for certain YUV cameras as confirmed by @DaneLLL in a response. I figure it was better to start a new issue for this rather than post on a page for a different issue.

I was told that release 32.4.3 would fix the issue. I noticed today, that 32.4.3 was released and I was excited to try it. Unfortunately, the same issue seems to persist. The output of cat /etc/nv_tegra_release after apt upgrade:
# R32 (release), REVISION: 4.3, GCID: 21589087, BOARD: t210ref, EABI: aarch64, DATE: Fri Jun 26 04:38:25 UTC 2020

The pipeline I tried was:
gst-launch-1.0 v4l2src device=/dev/video2 ! image/jpeg, width=1280, height=720, format=MJPG ! nvv4l2decoder mjpeg=true ! nvvidconv ! videoconvert ! xvimagesink

These are the two cameras I have been trying for this:

  1. I think this is it. At least the module number is the same as what I have, but mine looks slightly different on the front.
  2. And this one. I’ve had this work sometimes with the above pipeline, but I’ve been mainly getting the following error which is not happening for the other camera:
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
NvMMLiteOpen : Block : BlockType = 277 
NVMEDIA: Reading vendor.tegra.display-size : status: 6 
NvMMLiteBlockCreate : Block : BlockType = 277 
nvbuf_utils: Invalid memsize=0 
NvBufferCreateEx with memtag 5376 failed
ERROR: from element /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0: Failed to allocate required memory.
Additional debug info:
/dvs/git/dirty/git-master_linux/3rdparty/gst/gst-v4l2/gst-v4l2/gstv4l2videodec.c(1572): gst_v4l2_video_dec_handle_frame (): /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0:
Buffer pool activation failed
Execution ended after 0:00:00.462404369
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

This link has the original file I provided to find a fix for nvv4l2decoder, but my issue is basically the same where the color is all over the place and the rest of the image is in grayscale. The file was captured using the first camera link that I gave above.

Hi,
Did not notice the fix does not catch the release. My apology for it. Please try the attachment.
r32_4_3_TEST_libnvtvmr.zip (263.8 KB)

1 Like

Thanks @DaneLLL! It works now.

Which release will that be added to? Just want to keep track of what minimum release I need to stay compatible with.

Hi,
r32.4.3 is just delivered and the next release may be after a few months. You may continue your development based on r32.4.3 + the prebuilt lib.

This patch also helped me for another camera.

It seams camera using YUV422 compressed JPEGs are commonly in use… It is worthwhile to add a section in the Accelerated GStreamer documentation

Hi,
We collect patches in
https://elinux.org/Jetson/L4T/r32.4.x_patches

If you hit issue on r32.4.3, please go checking the page first.

You guys STILL forgot to fix this in the 32.4.4? I ‘accidentally’ upgraded my system and now this problem is back with corrupted color space. Is the 32.4.3 version of the libnvtvmr going to work with 32.4.4 or am I stuck?

@DaneLLL

Hi,
The fix is targeted to be in r32.5, For r32.4.4, please also replace the prebuilt lib.