v4l2h264enc: videotestsrc buffer population gets stalled for 16B aligned buffers
I am on gstreamer 1.16
I am using an encoder in MMAP mode, of resolution 1920x1080, which kernel allocates the memory which are aligned for 16B basically, the memory allocated will be 1920x1088x1.5. While using the pipeline below, the encoder stops waiting for videotestsrc to queue the raw buffers, which videotestsrc won't. After a few buffers(typically 2 or 3), the videotestsrc stops queuing buffers.** Is there a limitation of videotestsrc dealing with 16B height aligned buffers for non 16B height resolution?** This is seen with default pattern. The pattern 22, 24 works fine.
Non working pipeline: gst-launch-1.0 videotestsrc pattern=0 num-buffers=150 ! video/x-raw, format=NV12, width=1920, height=1080, interlace-mode=progressive, colorimetry=bt601, framerate=30/1 ! v4l2h264enc ! fakesink
Working pipelines gst-launch-1.0 videotestsrc pattern=24 num-buffers=150 ! video/x-raw, format=NV12, width=1920, height=1080, interlace-mode=progressive, colorimetry=bt601, framerate=30/1 ! v4l2h264enc ! fakesink
standard_1080.yuv is yuv file having captured from videotestsrc with pattern 0(default). gst-launch-1.0 filesrc location=./standard_1080.yuv blocksize=3110400 num-buffers=150 ! video/x-raw, format=NV12, width=1920, height=1080, interlace-mode=progressive, colorimetry=bt601, framerate=30/1 ! v4l2h264enc ! fakesink
This seems to be an issue with buffer alignment. Can anyone please let me know if I can try any parameters with videotestsrc.
Regards, Prasanth