12-08-2019 01:27 PM
I have a zcu104 development system and have downloaded the ReVision package zcu104_rv_ss which uses gstreamer for video pipeline control.
I do have vivado and petalinux and have implemented the hardware BSP and have done a Petalinux configure and build.
What I can not find is the source code for gstreamer or the header files for gstreamer, for the applications that are compiled into the application.
12-08-2019 03:20 PM
12-08-2019 07:37 PM
Thank you for the reply.
I have gone to the sites that you suggested.
Perhaps I asked my question incorrectly. I am working with ReVision for the zcu104 development board. I know that gstreamer is used in the project. There are examples of how to use gstreamer once the SD card is loaded and the firmware is booted.
gst-launch-1.0 \ xlnxvideosrc src-type="mipi" ! \ "video/x-raw, width=1920, height=1080, format=YUY2" ! \ sdxfilter2d filter-preset=4 filter-mode=1 ! queue ! \ xlnxvideosink sink-type="hdmi" plane-id=29 sync=false fullscreen-overlay=true
Clearly, when I have made modifications to the scripts, I have caused errors. I expect that I need to find the specific data on how to use the plugins.
What I am looking for are the code or plugins or headers, in the ReVision project files, that enable the above. How are they incorporated into the ReVision project?
I found where the gst plugins are referenced in yocto:
Please find the related recipes(gst-plugins) at following location in ptealinux installed directory: /petalinux-v2018.2-final/components/yocto/source/aarch64/layers/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10
I also found how to add "gst-plugins-xlnx" to the petalinux rootfs configuration.
But I have not found out how the plugins are used/called in the ReVision project.
12-08-2019 08:20 PM
Which version are you using gstreamer 0.1 series or gstreamer 1.0 series ?
Also, if you have cross compile environment, I suggest you to use it to build gstreamer's plugin.
I will help you if you share more detail error information.
12-08-2019 08:33 PM
12-09-2019 08:41 AM
Thank you for the reply. I am going to download the files you suggest.
One question: All of the TRD for Ultrascale+ MPSoC are for the zcu102 development board. Of course, I have the zcu104 development system. Would you know if Xilinx is working on porting these designs to zcu104? Or is zcu104 just too under powered for the tasks?
12-09-2019 09:03 AM
Thank you watari,
I will kindly accept your offer for helping with detail errors.
For example, in ReVision Getting Started Guide, section 7 https://github.com/Xilinx/reVISION-Getting-Started-Guide/blob/master/Docs/run-application.md
to run the Optical Flow Pipeline, there is the following script, which, when run, causes no error.
gst-launch-1.0 \ xlnxvideosrc src-type="hdmi" ! \ "video/x-raw, width=1920, height=1080, format=YUY2" ! \ sdxopticalflow filter-mode=1 ! queue ! \ xlnxvideosink sink-type="hdmi" sync=false fullscreen-overlay=true
I attempted to change this script, by modifying the second and third line, in order to use the USB webcam for video source. The camera that I am using is the one that came with the zcu104 development kit, "3.4 MP USB 3.0 CAM_CU30_CHL_TC_BX"
gst-launch-1.0 \ xlnxvideosrc src-type="usbcam" ! \ "video/x-raw, width=3840, height=1080, format=YUY2" ! \ sdxopticalflow filter-mode=1 ! queue ! \ xlnxvideosink sink-type="hdmi" sync=false fullscreen-overlay=true
I received the error shown.
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstXlnxVideoSrc:xlnxvideosrc0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
../../../../gstreamer-1.12.2/libs/gst/base/gstbasesrc.c(2939): gst_base_src_loop (): /GstPipeline:pipeline0/GstXlnxVideoSrc:xlnxvideosrc0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.126797740
Do you have a suggestion?
12-09-2019 02:14 PM
It's basic issue.
Gstreamer requeires consistent setting on its pipeline.
In your cases, there are no consistant setting.
According to your error information, gstreamer said "Internal data stream error" on v4l2src0.
It means that you didn't set suitable parameters on "hdmi" and "usbcam".
Would you refer the followings ?
1. Make sure capability for source devices by using "gst-device-monitor-1.0"
2. Set suitable parameters for /dev/videoX and /dev/mediaX for gstreamer's source pad.
3. Also, set suitable parameters for HDMI Tx on drm graph.
Let's me know, if you have any question.
Also, I suggest you to share the followings to resolve this issue.
- Result of "gst-device-monitor-1.0" to understand yor abailable devices on your side.
- Result of "ls /dev/video*" and "ls /dev/media*" to understand your v4l2 devices.
- Result of "v4l2-ctl -d <your v4l2 device> --all" (ex. v4l2-ctl -d /dev/video0 --all) to make sure capability of the device.
- Result of "xmedia-ctl -p -d <your media device>" (ex. xmedia-ctl -p -d /dev/media0) to make sure current setting on v4l2 graph.
- Result of "cat /sys/devices/platform/amba_pl@0/<your hdmi rx device name on dtb>/hdmi_info" (ex. cat /sys/devices/platform/amba_pl@0/a0000000.v_hdmi_rx_ss/hdmi_info) to understand condition of HDMI Rx.
- Result of "cat /sys/devices/platform/amba_pl@0/<your hdmi tx device name on dtb>/hdmi_info" (ex. cat /sys/devices/platform/amba_pl@0/a0020000.v_hdmi_tx_ss/hdmi_info) to understand condition of HDMI Tx.
- Result of "modetest" and "modetest -M xlnx" to understand current setting on drm graph.
If you have any question about gstreamer, I strongly recommend to post it on video category.
I'm sure that it's helpful for you.