Invalid nvbuffer Payload Type

For some reason when I decode vp9 video and resize it from 1920x1080 to 500x500 I have error: “Invalid nvbuffer Payload Type” - that happens each time when I try to do this. If there is no decoding, or I don’t resize, or I resize to different size (like 960x540), then everything works as expected. For example here are pipelines that work fine:

gst-launch-1.0 videotestsrc ! video/x-raw,width=1920,height=1080,framerate=15/1,format=NV12 ! nvvidconv !                                "video/x-raw(memory:NVMM),width=1920,height=1080" ! nvvidconv ! "video/x-raw(memory:NVMM),width=500,height=500"   ! nvvidconv ! video/x-raw ! videoconvert ! video/x-raw ! appsink
gst-launch-1.0 videotestsrc ! video/x-raw,width=1920,height=1080,framerate=15/1,format=YUY2 ! nvvidconv ! nvv4l2vp9enc ! nvv4l2decoder ! "video/x-raw(memory:NVMM),width=1920,height=1080" ! nvvidconv ! "video/x-raw(memory:NVMM),width=1920,height=1080" ! nvvidconv ! video/x-raw ! videoconvert ! video/x-raw ! appsink
gst-launch-1.0 videotestsrc ! video/x-raw,width=1920,height=1080,framerate=15/1,format=YUY2 ! nvvidconv ! nvv4l2vp9enc ! nvv4l2decoder ! "video/x-raw(memory:NVMM),width=1920,height=1080" ! nvvidconv ! "video/x-raw(memory:NVMM),width=960,height=540"   ! nvvidconv ! video/x-raw ! videoconvert ! video/x-raw ! appsink

But this one produce error that I mention earlier:

gst-launch-1.0 videotestsrc ! video/x-raw,width=1920,height=1080,framerate=15/1,format=YUY2 ! nvvidconv ! nvv4l2vp9enc ! nvv4l2decoder ! "video/x-raw(memory:NVMM),width=1920,height=1080" ! nvvidconv ! "video/x-raw(memory:NVMM),width=500,height=500"   ! nvvidconv ! video/x-raw ! videoconvert ! video/x-raw ! appsink

Probably some weird bug in nvv* elements

PS jetson_release output from my device:

 - NVIDIA Jetson Xavier NX (Developer Kit Version)
   * Jetpack 4.4.1 [L4T 32.4.4]
   * NV Power Mode: MODE_10W_2CORE - Type: 3
   * jetson_stats.service: active
 - Libraries:
   * CUDA: 10.2.89
   * cuDNN: 8.0.0.180
   * TensorRT: 7.1.3.0
   * Visionworks: 1.6.0.501
   * OpenCV: 4.1.1 compiled CUDA: NO
   * VPI: 0.4.4
   * Vulkan: 1.2.70

Hi,
Please try this pipeline:

gst-launch-1.0 videotestsrc ! video/x-raw,width=1920,height=1080,framerate=15/1,format=YUY2 ! nvvidconv ! nvv4l2vp9enc ! nvv4l2decoder ! "video/x-raw(memory:NVMM),width=1920,height=1080" ! nvvidconv ! "video/x-raw(memory:NVMM),width=500,height=500,format=I420"   ! nvvidconv ! video/x-raw ! videoconvert ! video/x-raw ! appsink

It is to set output format to I420:

... ! nvvidconv ! "video/x-raw(memory:NVMM),width=500,height=500,format=I420" ! ...

The pipeline is working. And looks like any format works, if it is specified directly (I tried YUY2, RGBA), could I clarify why?

Hi,
It looks to be constraint in hardware converter. Converting to NV12 block linear in resolution 500x500 may not be supported.

1 Like

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