Hello, I noticed that nvvidconv doesn’t seem to handle image stride in GStreamer pipelines properly. This can be verified running the following pipeline, where Gstreamer will automatically add a stride to the buffer to make it’s width a multiple of 4:
gst-launch-1.0 videotestsrc ! video/x-raw,width=321,height=240 ! nvvidconv ! 'video/x-raw(memory:NVMM)' ! nvoverlaysink
In Gstreamer, the stride of each GstBuffer plane, when different from the width, is communicated to the processing element using a GstVideoMeta structure. This element should take this meta out of the buffer, parse these strides and use them accordingly. This isn’t the case with the nvvidconv, which seems to ignore the stride metadata and, instead, uses the plain width to perform the processing. This results in a highly distorted output, since the beginning of the image rows are no longer what they are supposed to be. Besides the stride, there are a bunch of other fields that may improve performance as well.
Is this a known limitation? Is there any plan to address this in the near future?