first video

The V4L2 driver for the ADV7611 shows some first signes of live πŸ™‚

sure there are some issues but this is a video already captured with gstreamer πŸ˜‰

As an HDMI-Source I also used a Lime

IMG_20141211_160102

Settings are 480p – the green color most likely is a result of a wrong colorspace – we are inputing RGB888 into the CSI1 of the A10 and this looks like that the data is interpreted as YUV..

further the Image is a bit offset to the bottom right … but it is a stable picture this is telling us that PIXEL_CLOCK, HSYNC and VSYNC are working πŸ™‚

The flickering is because the V4L2 currently reports a Framerate of 100 Hz but the input signal is 60 Hz.

The adv7611 module can be found at the github – Makefile still needs to be written.

the module depends on other modules (videobuf-core, videobuf-dma-contig, sun4i_csi1), load it in the following order

modprobe videobuf-core
modprobe videobuf-dma-contig
insmod adv7611.ko
modprobe sun4i_csi1

In order to use the module, also the script.bin file at the first partition of the LIME A10 – sdcard needs to be adjusted there for sunxi-tools are needed. Find more info here and here. You can also download script.bin from the github.

5 comments

  1. mithro

    Looking at your video, I wonder if that edge you can see is the image signal “front porch”. See the following image http://1.bp.blogspot.com/_6tPRT0Sfqgw/TUgr_Jb9_zI/AAAAAAAAAMg/qgg7kpJbC3Q/s1600/ScreenView.gif

    While DVI generally uses sRGB, HDMI is normally in YCbCr. This could be the color space issue you are finding. What did you program the EDID ram to contain?

    It looks like the ADV7611 will do color space transformations for you, take a look at the “PIXEL INPUT/OUTPUT FORMATTING” section of the datasheet. The register you probably want is “RGB_OUT” in “2 SIGNAL DOCUMENTATION”.

    Hope that helps!

    Like

    • oggstreamer

      Thanks for your Feedback.

      I must confess that this is just a quick and very dirty V4L2 Driver – we basically took some settings for the ADV7611 we found in another kernel patch and nothing more. Thanks also for the Info that HDMI is default YCbCr and about the EDID. I am aware that the ADV7611 has some internal EDID-RAM but haven’ taken the time to set the settings correctly …

      Liked by 1 person

      • mithro

        I’m unsure if the EDID is actually having a major effect. You can read the EDID on the device producing the video using the read-edid package (apt-get install read-edid). “xrandr –verbose” might also give you some useful information.

        HDMI sinks are required to support sRGB (for backwards compatibility with DVI) but I don’t know how to make Linux/X output in a given color space using something like xrandr. I wouldn’t be surprised if Linux/X actually only supported outputting sRGB.

        If you can confirm that your source device is outputting sRGB, then it’s likely you have accidently configured the ADV7611 to output in a YUV format and the device is “helpfully” converting that nice RGB input to the YUV output πŸ˜›

        Like

      • oggstreamer

        there might be another issue:

        CSI0 supports 8 and 16 Bit CSI-Width
        CSI1 supports 8 and 24 Bit CSI-Width

        according to the usermanual:

        Click to access A10%20User%20Manual%20-%20v1.20%20%282012-04-09%2c%20DECRYPTED%29.pdf

        we are using CSI1 and looking at the sun4i_csi1.c it seems that the 24 Bit Support was never implemented in the linux-sunxi kernel

        becaues we want to push 1080p60 over the interface there is no way around of using the whole 24 Bit CSI Interface.

        so we end up inputing either 24-Bit RGB or YUV 4:4:4 (because this modes are supported by the 24 Bit Mode of CSI1)

        this finding somehow leads us in the driection of modifying sun4i_csi1.ko

        the ADV7611 is quite flexible it supports Bus-Rotation (any combination of RGB, RBG, GRB, … and the same for YUV) and further it has a Component Processor included supporting a 3×3 Matrix multiplication, which is usable to transform any HDMI-Input Signal to any other Colorspace (as long as there is no pixel subsampling used).

        I already included the ADV7611 doc (which is freely available on the github)

        Like

Leave a comment