Announcement

Collapse
No announcement yet.

Problem when plugging in GoPro via HDMI input at iMx6 TinyRex

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem when plugging in GoPro via HDMI input at iMx6 TinyRex

    Hello,

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


    [email protected]:~# 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:


    [email protected]:~# modprobe mxc_v4l2_capture
    [email protected]:~# 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
    [email protected]:~# 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:

    [email protected]:~# 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 ...
    [email protected]:~#


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

    [email protected]:~# 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 <[email protected]>

    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:

    [email protected]:~# 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:

    [email protected]:~# 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.





  • #2
    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 device="/dev/video0" ! video/x-raw,width=1280,height=720,framerate=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} in
    3.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

    Comment


    • #3
      Thank you very much!
      Now it works amazingly!

      Comment

      Working...
      X