Using TC358743 on the Auvidea B101 with RPi 3b
Note that 6By9 has merged driver changes into the RPi kernel which provides support for the TC358743. See the end of this thread (currently page 17) for details: viewtopic.php?f=38&t=120702&start=400
I'm trying to use 6By9's changes.
1) I updated my kernel and updated the config.txt with dtoverlay=tc358743.
2) I update the EDID with: v4l2-ctl --set-edid=file=1080P30EDID.txt --fix-edid-checksums
Note that this is 1080P30EDID.txt:
Note also that I edited it with a regular text editor. Not sure if this is ok.
3) Note that v4l2-ctl --query-dv-timings produces output that doesn't look good:
VIDIOC_QUERY_DV_TIMINGS: failed: Link has been severed
Active width: 0
Active height: 0
Total width: 0
Total height: 0
Frame format: progressive
Polarities: -vsync -hsync
Pixelclock: 0 Hz
Horizontal frontporch: 0
Horizontal sync: 0
Horizontal backporch: 0
Vertical frontporch: 0
Vertical sync: 0
Vertical backporch: 0
I'm not sure if this is a problem.
4) I cloned and built yavta: https://github.com/6by9/yavta
5) I tried to capture video with:
./yavta --capture=1000 -n 3 --encode-to=file.h264 -f UYVY -m -T /dev/video0
it produces a lot of output:
We're encoding to file.h264
Device /dev/video0 opened.
Device `unicam' on `platform:unicam 3f801000.csi1' (driver 'unicam') is a video capture (without mplanes) device.
stride is 0
stride is now 1280
Video format set: UYVY (59565955) 640x480 (stride 1280) field none buffer size 614400
Video format: UYVY (59565955) 640x480 (stride 1280) field none buffer size 614400
Unable to get frame rate: Inappropriate ioctl for device (25).
vc.ril.isp:in:0(UYVY)(0x160ffb0)type: video, fourcc: UYVY bitrate: 0, framed: 0 extra data: 0, (nil) width: 640, height: 480, (0,0,640,480) pixel aspect ratio: 0/0, frame rate: 0/0 buffers num: 3(opt 1, min 1), size: 614400(opt 614400, min: 614400), align: 0Created pool of length 3, size 0
Create pool of 3 buffers of size 0 for render
Create pool of 3 buffers of size 0 for encode ip
Create pool of 3 buffers of size 460800 for encode/render
Writing data to file.h264
Create pool of 8 buffers of size 262144
Sent buffer 0x161a158Sent buffer 0x161a330Sent buffer 0x161a508Sent buffer 0x161a6e0Sent buffer 0x161a8b8Sent buffer 0x161aa90Sent buffer 0x161ac68Sent buffer 0x161ae403 buffers requested.
length: 614400 offset: 0 timestamp type/source: mono/EoF
Buffer 0/0 mapped at address 0x72553000.
Importing DMABUF 8 into VCSM...
...done. vcsm_handle 73728
Exported buffer 0 to dmabuf 8, vcsm handle 73728
Linking V4L2 buffer index 0 ptr 0x161bb58 to MMAL header 0x16164c0. mmal->data 0xC0000003
length: 614400 offset: 614400 timestamp type/source: mono/EoF
Buffer 1/0 mapped at address 0x7236a000.
Importing DMABUF 9 into VCSM...
...done. vcsm_handle 77824
Exported buffer 1 to dmabuf 9, vcsm handle 77824
Linking V4L2 buffer index 1 ptr 0x161bbc8 to MMAL header 0x1616698. mmal->data 0xC0000004
length: 614400 offset: 1228800 timestamp type/source: mono/EoF
Buffer 2/0 mapped at address 0x722d4000.
Importing DMABUF 10 into VCSM...
...done. vcsm_handle 81920
Exported buffer 2 to dmabuf 10, vcsm handle 81920
Linking V4L2 buffer index 2 ptr 0x161bc38 to MMAL header 0x1616870. mmal->data 0xC0000005
The file.h264 only has 27 bytes, so clearly it didn't work. One notable question that comes to mind is why the video format is set to 640x480. I suppose this is default for yavta? I also tried setting -s 1920x1080, but the output seemed the same.
I would appreciate any debugging help! Thanks!