Issues with nvjpegdec in GStreamer Pipeline on NVIDIA Jetson

Hello,

I am experiencing issues with the nvjpegdec element in my GStreamer pipeline on an NVIDIA Jetson device. I am trying to display a live video feed from a USB camera that operates at 120 FPS with a resolution of 1280x800 in MJPEG format. While jpegdec works without any problems, using nvjpegdec for hardware-accelerated decoding fails with a “not-negotiated” error.

Here are the details of my setup:

  • Device: NVIDIA Jetson Orin Nano developer Kit 8 GB
  • Operating System: 20.04.6 LTS (Focal Fossa)
  • GStreamer Version: gst-launch-1.0 version 1.16.3
  • Camera Details: USB Arducam Camera, 120 FPS, 1280x800, MJPEG format

This is the pipeline that works with jpegdec:
gst-launch-1.0 v4l2src device=/dev/video0 ! ‘image/jpeg,width=1280,height=800,framerate=120/1’ ! jpegdec ! videoconvert ! autovideosink

However, when I switch to nvjpegdec , I encounter errors. Here’s the non-working pipeline:
gst-launch-1.0 v4l2src device=/dev/video0 ! ‘image/jpeg,width=1280,height=800,framerate=120/1’ ! nvjpegdec ! videoconvert ! autovideosink

The error message I receive is:ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)

I’ve tried various troubleshooting steps, including adding queues, explicitly defining formats, and using different NVIDIA-specific plugins, but none have resolved the issue.

Could anyone provide insights or suggestions on how to resolve this “not-negotiated” error with nvjpegdec? Any help or guidance would be greatly appreciated!

Thank you!

Hello,

Your topic will be best served in the Jetson category.

I will move this post over for visibility.

Cheers,
Tom

1 Like

Hi,
The nvjpegdec supports JPEGs in YUV420. If your source generates JPEGs in YUV422(UYVY, YUYV, …), the error is reported. Please use software decoder jpegdec.

Or you may consider use jetson_multiemdia_api. We have a sample:

/usr/src/jetson_multimedia_api/samples/12_v4l2_camera_cuda/

1 Like

Many thanks for the quick answer. The camera supports YUYV 422 and MJPG

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.