12-04-2019 12:15 AM
I am trying to encode BT601 and BT1120 video inputs with the VCU of Zynq Ultrascale. I want to utilize Gstreamer for ease of use.
Would a pipeline like below work for these situtations?
CVBS Video ----> ADV7280 ----> Video In to AXI4-Stream ----> Framebuffer Write ----> VCU
ADV7280 outputs 8-bit data with HSYNC, VSYNC, DE signals.
SDI Video ----> GS2961A ----> Video In to AXI4-Stream ----> Framebuffer Write ----> VCU
GS2961A outputs 20-bit data with HSYNC, VSYNC, DE signals.
Would Framebuffer write extract frame dimensions and frame rate if these pipelines were created?
12-04-2019 02:29 PM
12-04-2019 10:42 PM
Thanks for the answer @watari
Actually ADV7280 already has a driver with V4L2 support. But it is not really usable and i can't write one from scratch. Do i really need a V4L driver? Wouldnt "Framebuffer write" drivers be enough? I can give up on gstreamer if that would eliminate the need for drivers. I can query the input status (lock status, resolution, frame rate etc) from userspace with the i2c port ADV7280 has.
SDI solution Xilinx has, requires high speed transceivers and our design doesn't have any that are free right now. So we opted for this parallel low speed input solution for both CVBS and SDI inputs.
12-05-2019 01:05 AM
If you want to use Gstreamer, then as mentioned by @watari , you need to have drivers that can plug into gstreamer. A good v4l2 or DRM driver should do this.
The Video frame buffer write does not have a V4L2 driver so it cannot be used alone to be plugged into a gstreamer pipeline.
One option that you have is to work at a lower level, so for the VCU you would need to work at the VCU control software level, which is the driver level for the VCU
12-05-2019 03:21 AM
12-05-2019 03:28 AM
I guess you could but I am not sure about the difference between creating an actual v4l2 driver and a dummy one which would act as an real one
12-05-2019 03:39 AM
I would have to write two seperate drivers for both GS2961 and ADV7280. I may go that way and write real seperate drivers for both in the future.
Just to clarify, doesnt "framebuffer write" show up as a /dev/videoX entry? If it doesnt have a v4l driver how does that happen? Is there something I can read that would help me to understand the overall architecture?
12-05-2019 03:49 AM
With no v4l driver, would I be still able to get raw data from FBW ip?
I am wondering if I can feed that data to something like these below and set the caps manually? I would be able to query the information needed for the caps.
12-05-2019 03:59 AM
I cannot answer to that as this is over what I know. So maybe ;)
If you succeed with this way, please share your results with the community
12-08-2019 01:51 PM - edited 12-08-2019 08:36 PM
As you already know, gstreamer requires a pad interface as v4l2 driver or file or ethernet (like rtphXXXsrc) on sink device. (It's a little strange. But it's correct.)
In this case, if you can't prepare suitable v4l2 driver, I suggest you to design ex. cvbsrc and sdisrc which are followed the rule of gstreamer's element, like rtphXXXsrc.
However, if you took care of security issue, you must describe it with kernel driver.
Also, I suggest you to discuss and/or brush up what you want to do and how to do.