| FORUM

FEDEVEL
Platform forum

Problem when plugging in GoPro via HDMI input at iMx6 TinyRex

hkkang , 01-21-2018, 11:56 PM
Hello,

I'm trying to use GoPro with recenty purchased iMx6 TinyRex development kit.


root@imx6-tinyrexultra:~# uname -a
Linux imx6-tinyrexultra 4.1.36-yocto+g7f55696 #1 SMP PREEMPT Sat Jul 29 17:36:08 CEST 2017 armv7l armv7l armv7l GNU/Linux


Actually, I plugged my GoPro in HDMI input and followed the reference( http://www.imx6rex.com/imx6-tiny-rex...es/#hdmi_input ) to watch the camera-inputs via HDMI output e.g. monitor.

I've followed the steps which the reference guided but faced an error when trying HDMI input -> HDMI output:


root@imx6-tinyrexultra:~# modprobe mxc_v4l2_capture
root@imx6-tinyrexultra:~# lsmod | grep adv7610
adv7610_video 6416 0
v4l2_int_device 2897 4 ov5647_camera_mipi_int,adv7610_video,ipu_csi_enc,m xc_v4l2_capture
root@imx6-tinyrexultra:~# gst-launch-1.0 imxv4l2src ! autovideosink
====== IMXV4L2SRC: 4.1.6 build on Jul 29 2017 19:45:50. ======
WARNING: erroneous pipeline: could not link imxv4l2src0 to autovideosink0


Just a single line of error message. So I try this:

root@imx6-tinyrexultra:~# gst-launch-1.0 imxv4l2src
====== IMXV4L2SRC: 4.1.6 build on Jul 29 2017 19:45:50. ======
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

(gst-launch-1.0:971): GStreamer-CRITICAL **: gst_mini_object_ref: assertion 'mini_object != NULL' failed

** (gst-launch-1.0:971): CRITICAL **: gst_video_info_from_caps: assertion 'caps != NULL' failed

(gst-launch-1.0:971): GStreamer-CRITICAL **: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed

** (gst-launch-1.0:971): CRITICAL **: gst_video_info_from_caps: assertion 'caps != NULL' failed
ERROR: from element /GstPipeline0/pipeline0/GstImxV4l2Src:imxv4l2src0: Internal data flow error.
Additional debug info:
../../../../gstreamer-1.8.1/libs/gst/base/gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline0/pipeline0/GstImxV4l2Src:imxv4l2src0:
streaming task paused, reason not-negotiated (-4)
Execution ended after 0:00:02.393705334
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@imx6-tinyrexultra:~#


After some googling, I found that 'caps' is suspected to be 'Capabilities' and tried 'gst-inspect-1.0':

root@imx6-tinyrexultra:~# gst-inspect-1.0 imxv4l2src
====== IMXV4L2SRC: 4.1.6 build on Jul 29 2017 19:45:50. ======
Factory Details:
Rank primary + 1 (257)
Long-name IMX Video (video4linux2) Source
Klass Src/Video
Description Capture frames from IMX SoC video4linux2 device
Author Multimedia Team <shmmmw@freescale.com>

Plugin Details:
Name imxv4l2.imx
Description IMX SoC v4l2-based video source/sink
Filename /usr/lib/gstreamer-1.0/libgstimxv4l2plugins.so
Version 4.1.6
License LGPL
Source module imx-gst1.0-plugin
Binary package Freescle Gstreamer Multimedia Plugins
Origin URL http://www.freescale.com

GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstBaseSrc
+----GstPushSrc
+----GstImxV4l2Src

Pad Templates:
SRC template: 'src'
Availability: Always
Capabilities:
EMPTY


And I tried 'gst-device-monitor' to see the name of video source:

root@imx6-tinyrexultra:~# gst-device-monitor-1.0
Probing devices...

xcb_connection_has_error() returned true

(OMITTED)

Device found:

name :
class : Video/Source
caps : video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, interlace-mode=(string){ progressive, interleaved }, framerate=(fraction)[ 0/1, 2147483647/1 ];
properties:
udev-probed = true
device.bus_path = platform-v4l2_cap_0
sysfs.path = /sys/devices/soc0/v4l2_cap_0/video4linux/video0
device.subsystem = video4linux
device.capabilities = :capture:video_overlay:
device.api = v4l2
device.path = /dev/video0
v4l2.device.driver = mxc_v4l2
v4l2.device.card = ""
v4l2.device.bus_info = ""
v4l2.device.version = 267 (0x0000010b)
v4l2.device.capabilities = 83886085 (0x05000005)
v4l2.device.device_caps = 0 (0x00000000)

The name of video input is EMPTY. Also, I've checked if any cameras were connected but no devices were found:

root@imx6-tinyrexultra:~# v4l2-ctl --list-devices
():
/dev/video0
/dev/video16
/dev/video17


I have tested HDMI input by clicking the 'HDMI input test' under Applications menu. So I believed that all of HDMI input, HDMI decoder, HDMI output work well.
Do I miss any drivers to be installed?

Please shed me lights to solve this problem..

Thanks in advance.




marek , 01-22-2018, 10:56 AM
Dear Mr. hkkang,

Here are some links from testing from past that might show some cmd line arguments:
http://wiki.voipac.com/xwiki/bin/vie...2Fmax2Fultra29
http://wiki.voipac.com/xwiki/bin/vie...inyrex/adv7610

I usually did the testing against PC hdmi output.
Code:
gst-launch-1.0 v4l2src [COLOR=#19177C]device[/COLOR][COLOR=#666666]=[/COLOR][COLOR=#BA2121]"/dev/video0"[/COLOR] ! video/x-raw,width[COLOR=#666666]=[/COLOR]1280,height[COLOR=#666666]=[/COLOR]720,framerate[COLOR=#666666]=[/COLOR]30/1 ! videoconvert ! autovideosink
I will ask my colleague to retest it. In the case "HDMI input test" works for you then this is its content

Code:
var_kernel=$(uname -r)case ${var_kernel} in3.14*) gst-launch imxv4l2src num-buffers=800 ! autovideosink ;;4.1*) gst-launch-1.0 v4l2src device="/dev/video0" num-buffers=800 ! videoconvert ! autovideosink ;;\?) ;;esac
m

hkkang , 01-22-2018, 10:38 PM
Thank you very much!
Now it works amazingly!
Use our interactive Discord forum to reply or ask new questions.
Discord invite
Discord forum link (after invitation)

Didn't find what you were looking for?