Hi,
I have imx6ul dev board. I also compiled imx_test-5.7. In the test package, there is a program pxp_v4l2_test.out under the unit_tests folder. I run :
pxp_v4l2_test.out -sx 350 -sy 240 -res 350:240 -dst 0:0:350:240 -a 100 -a 100 -w 5 t_yuv420_il.yuv BLANK
The program output:
unable to open /dev/video for output, continue searching device.
Found v4l2 output device /dev/video0.
V4L output 0 (0x8e100000): PxP Display Output
Video input format: 350x240 YUV 4:2:0 Planar
request count 6
win.w.l/t/w/h = 0/0/350/240
crop.c.l/t/w/h = 0/0/350/240
PxP processing: start...
total time for 1 frames = 2500 us, 400 fps
complete
VIDIOC_STREAMOFF: Invalid argument
From the document:
Expected Result | The video streaming can be viewed on LCD.
But there is no image or video displayed on the LCD.
I also installed gstreamer. it can play back a video clip onto the v4l2sink, and video clip is successfully rendered onto the LCD screen.
For the pxp_v4l2_test.out, what is missing?
Thank you,
David
I dig into the issue. In the pxp_start() of the pxp_v4l2_test.c requires at least two buffers to be filled, then it sets VIDIOC_STREAMON
to start the stream. So if the image file (.rgb or yuv) only contains one frame, it fails to read, and break, exit without error. I added lseek(fd, 0, SEEK_SET), so it reads the same frame again and again. The single image frame can be displayed or rendered.
Thanks,
David
Actually, just change i==2 for turning on the stream into i==0. That way if only one frame is in the rgb file, it will display the image.
David