R32.3.1 tx2-4g nvvidconv problem

SrcCrop rect’s bottom out of boundary, set to maximum height. what does this mean and how do I fix it, trying to crop my video by changing top, bottom, left, and right

Hi,
Please share the problematic command so that we can check and suggest next.

You may check this post.

zoom(1038) top 280
zoom(1039) bottom 1900
zoom(1040) left 500
zoom(1041) right 3364

works.

topDown(1127) top 100
topDown(1128) bottom 2180
topDown(1129) left 0
topDown(1130) right 3864
NvDdkVicConfigure Failed
nvbuffer_transform Failed

nvvidconv must have some new rules that I don’t understand, I need to be able to move the center of the video up/down/left/right

My zoom still works,

Terry

@Honey_Patouceul this problem just started in the last month, it worked until then, it is like nvidia has changed nvvidconv

Thanks,
Terry

What is your input resolution and pipeline before ?
I can reproduce the same error messages on NX running R32.5.1 when rescaling 320x240 with nvvidconv into width=4096 and height above 3840:

# This works:
gst-launch-1.0 -v videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM), format=NV12, width=4096, height=3840, framerate=30/1' ! fakesink

# This fails:
gst-launch-1.0 -v videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM), format=NV12, width=4096, height=3844, framerate=30/1' ! fakesink

I think it is related to overscaling as using 640x480 as input works:

gst-launch-1.0 -v videotestsrc ! video/x-raw, width=640, height=480 ! nvvidconv ! 'video/x-raw(memory:NVMM), format=NV12, width=4096, height=3844, framerate=30/1' ! fakesink

If rescaling with big factors, you may try to do that in two steps.

About cropping with nvvidconv, you may set cropped size in output caps:

# With this you see black borders
gst-launch-1.0 -v videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM), format=NV12, width=4096, height=3800, framerate=30/1' ! nvvidconv top=408 bottom=1872 left=550 right=3314 ! 'video/x-raw(memory:NVMM)' ! nvegltransform ! nveglglessink

# Setting output caps, you don't have borders:
gst-launch-1.0 -v videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM), format=NV12, width=4096, height=3800, framerate=15/1' ! nvvidconv top=280 bottom=1900 left=500 right=3364 ! 'video/x-raw(memory:NVMM), width=1864, height=1620' ! nvegltransform ! nveglglessink

also note that cropping may change the pixel-aspect-ratio. You may force it for some display sinks and adjust.

It is a 8M camera.
#define ACTUALHEIGHT 2180
#define ACTUALWIDTH 3864

I start with top = 0, bottom=2180, left=0, right=3864

Then zoom will change top,bottom,left,right and above it works.

the second try is to take the start and change the top to 100, and I get the errors.

Nice that you have a simpler test case that fails. There is something to do with aspect ratio, that might need to be ignored.

@Honey_Patouceul good work :-)

Terry

You may tell more about the actual pipeline. In my case, simulating your case it works (with black boders as not setting output caps):

gst-launch-1.0 -v videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM), width=3864, height=2180, framerate=30/1' ! nvvidconv top=100 bottom=2180 left=0 right=3864 ! nvegltransform ! nveglglessink

If this fails for you, probably there is something different in your L4T setup or a HW limitation with TX2-4G.
NVIDIA or someone with a TX2-4G may reproduce and tell more.

Hi,
We have confirmed this pipeline is working on r32.3.1/TX2-4GB.

$ gst-launch-1.0 -v videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM), width=3864, height=2180, framerate=30/1' ! nvvidconv top=100 bottom=2180 left=0 right=3864 ! nvegltransform ! nveglglessink

Please share a command to reproduce the issue, so that we can replicate the issue first.

why are two nvvidconv needed? How would a customer know to add a second nvvidconv?

Will try that hope it does not change my framerate, what I have now is optimized…

Terry

The first nvvidconv is just intended to reproduce your case with a 3864x2180@30fps in NVMM memory.
As I don’t have your camera, I use videotestsrc and then nvvidconv for scaling while copying into NVMM memory.
This wouldn’t be required with a real camera if using nvarguscamerasrc or nvv4l2camerasrc that both output into NVMM memory.

I now am getting

SrcCrop rect’s bottom out of boundary, set to maximum height

Please tell me what I am doing wrong, remember the “zoom” is working, this is just changing the top=100 that causes this problem

Terry

What type of gstreamer debugging would help Nvidia understand the problem.

Thanks @Honey_Patouceul but I think I need Nvidia to really look at the code and figure out what they need/how to debug this.

This use to work and has changed on my system in the past month. apt update, apt upgrade brought this on.

Terry

Hi,
we would need to reproduce the issue first and then do further investigation. Please check if you can reproduce it with videotestsrc plugin and then share the pipeline.

How will I know if the image is shifted using videotestsrc, I will not be able to tell if it works.

Can I debug it using my app?

Terry

what is up this this topic, still waiting for Nvidia to tell me how to debug my nvvidconv problems, and what the “SrcCrop rect’s bottom out of boundary, set to maximum height” means and how to fix this.

It seems to be a message that repeats way too fast, and kills nvvidconv
Terry

Sorry if you want NVIDIA’s only help, while you seem angry or upset about them. You may have this posture if you have a big deal with huge numbers, but in other cases you would get better help rather providing accurate data about the issue.

I think that NVIDIA engineers, although much more skilled than me, also fail to understand your case so they’re unable to further provide help.

In short, tell your case more precisely : what are input caps (NVMM memory or not, resolution, fps, format), cropping parameters and expected output caps.
Try to narrow down the issue to something reproducible without your specific hardware. This is why I tried to reproduce with videotestsrc. If the latter doesn’t fit your need, better explain why. videotestsrc has many patterns available. If you need some more specific video, you may try to record a short video file and upload it so that it can be tried as input.
Try to provide a script or/and C++ or python code that can be reproduced and tried by anyone, this would allow broader help.
Also provide feedback for any suggestion (including commands or code and error messages when failing) before switching to another topic, so that what works or not is clear.

I am myself not always so clear, but you may wonder what information others can understand from this. Still a mystery for me, and still no idea about how much this may be relevant ;-)

It might be a message generated when incorrect parameters are used.
Are you dynamically (while it is in running state or else) changing some nvvidconv properties ?

I think you would need to provide more accurate data about your specific case for any help from anyone.

Hi,
Please clean gstreamer cache and check if it helps:

$ rm ${HOME}/.cache/gstreamer-1.0/registry.aarch64.bin

If it still doesn’t help, we would need your help to provide a method to reproduce the failure on TX2-4GB devkits. Or you may consider to upgrade to r32.5.1. From the release, nvvidconv is open source and you can build the plugin manually.

@DaneLLL

Ok so my product, needs to digitally zoom and move the video around on the screen, so my gstreamer video app was using nvvidconv until recently to zoom and move the area of interest around on the display.

It appears that changing any of the top/bottom/left/right now in nvvidconv gives an error and crashes the app.

Why was nvvidconv changed and will it be fixed, or is there a nvidia suggested way to do this on the fly?

I can not take the stream down and bring it back up because of another problem that #1 setting status to NULL in gstreamer hangs, and #2 the video does not alway restart 100% of the time.

Thanks
Terry

actual command line that fails.

Terry

wrong file.
fileForNvidia (196.4 KB)

file4Nvida (23.8 KB)