All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adam Pledger <a.pledger@thermoteknix.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-media@vger.kernel.org
Subject: Omap3 ISP + Gstreamer v4l2src
Date: Wed, 07 Dec 2011 08:02:42 +0000	[thread overview]
Message-ID: <4EDF1DA2.5000106@thermoteknix.com> (raw)

Hi Laurent,

Firstly, please accept my apologies, for what is very probably a naive 
question. I'm new to V4L2 and am just getting to grips with how things work.

I'm using a tvp5151 in bt656 mode with the Omap3 ISP, as described in 
this thread (Your YUV support tree + some patches for bt656, based on 
2.6.39):
http://comments.gmane.org/gmane.linux.drivers.video-input-infrastructure/39539

I am able to capture some frames using yavta, using the media-ctl 
configuration as follows:
media-ctl -v -r -l '"tvp5150 3-005d":0->"OMAP3 ISP CCDC":0[1], "OMAP3 
ISP CCDC":1->"OMAP3 ISP CCDC output":0[1]'
media-ctl -v --set-format '"tvp5150 3-005d":0 [UYVY2X8 720x625]'
media-ctl -v --set-format '"OMAP3 ISP CCDC":0 [UYVY2X8 720x625]'
media-ctl -v --set-format '"OMAP3 ISP CCDC":1 [UYVY2X8 720x625]'

This yields this:
Opening media device /dev/media0
Enumerating entities
Found 16 entities
Enumerating pads and links
Media controller API version 0.0.0

Media device information
------------------------
driver          omap3isp
model           TI OMAP3 ISP
serial
bus info
hw revision     0x0
driver version  0.0.0

Device topology
- entity 1: OMAP3 ISP CCP2 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown
             device node name /dev/v4l-subdev0
         pad0: Sink [SGRBG10 4096x4096]
<- "OMAP3 ISP CCP2 input":0 []
         pad1: Source [SGRBG10 4096x4096]
                 -> "OMAP3 ISP CCDC":0 []

- entity 2: OMAP3 ISP CCP2 input (1 pad, 1 link)
             type Node subtype V4L
             device node name /dev/video0
         pad0: Source
                 -> "OMAP3 ISP CCP2":0 []

- entity 3: OMAP3 ISP CSI2a (2 pads, 2 links)
             type V4L2 subdev subtype Unknown
             device node name /dev/v4l-subdev1
         pad0: Sink [SGRBG10 4096x4096]
         pad1: Source [SGRBG10 4096x4096]
                 -> "OMAP3 ISP CSI2a output":0 []
                 -> "OMAP3 ISP CCDC":0 []

- entity 4: OMAP3 ISP CSI2a output (1 pad, 1 link)
             type Node subtype V4L
             device node name /dev/video1
         pad0: Sink
<- "OMAP3 ISP CSI2a":1 []

- entity 5: OMAP3 ISP CCDC (3 pads, 9 links)
             type V4L2 subdev subtype Unknown
             device node name /dev/v4l-subdev2
         pad0: Sink [UYVY2X8 720x625]
<- "OMAP3 ISP CCP2":1 []
<- "OMAP3 ISP CSI2a":1 []
<- "tvp5150 3-005d":0 [ENABLED]
         pad1: Source [UYVY2X8 720x625]
                 -> "OMAP3 ISP CCDC output":0 [ENABLED]
                 -> "OMAP3 ISP resizer":0 []
         pad2: Source [UYVY2X8 720x624]
                 -> "OMAP3 ISP preview":0 []
                 -> "OMAP3 ISP AEWB":0 [ENABLED,IMMUTABLE]
                 -> "OMAP3 ISP AF":0 [ENABLED,IMMUTABLE]
                 -> "OMAP3 ISP histogram":0 [ENABLED,IMMUTABLE]

- entity 6: OMAP3 ISP CCDC output (1 pad, 1 link)
             type Node subtype V4L
             device node name /dev/video2
         pad0: Sink
<- "OMAP3 ISP CCDC":1 [ENABLED]

- entity 7: OMAP3 ISP preview (2 pads, 4 links)
             type V4L2 subdev subtype Unknown
             device node name /dev/v4l-subdev3
         pad0: Sink [SGRBG10 4096x4096 (8,4)/4082x4088]
<- "OMAP3 ISP CCDC":2 []
<- "OMAP3 ISP preview input":0 []
         pad1: Source [YUYV 4082x4088]
                 -> "OMAP3 ISP preview output":0 []
                 -> "OMAP3 ISP resizer":0 []

- entity 8: OMAP3 ISP preview input (1 pad, 1 link)
             type Node subtype V4L
             device node name /dev/video3
         pad0: Source
                 -> "OMAP3 ISP preview":0 []

- entity 9: OMAP3 ISP preview output (1 pad, 1 link)
             type Node subtype V4L
             device node name /dev/video4
         pad0: Sink
<- "OMAP3 ISP preview":1 []

- entity 10: OMAP3 ISP resizer (2 pads, 4 links)
              type V4L2 subdev subtype Unknown
              device node name /dev/v4l-subdev4
         pad0: Sink [YUYV 4095x4095 (0,6)/4094x4082]
<- "OMAP3 ISP CCDC":1 []
<- "OMAP3 ISP preview":1 []
<- "OMAP3 ISP resizer input":0 []
         pad1: Source [YUYV 3312x4095]
                 -> "OMAP3 ISP resizer output":0 []

- entity 11: OMAP3 ISP resizer input (1 pad, 1 link)
              type Node subtype V4L
              device node name /dev/video5
         pad0: Source
                 -> "OMAP3 ISP resizer":0 []

- entity 12: OMAP3 ISP resizer output (1 pad, 1 link)
              type Node subtype V4L
              device node name /dev/video6
         pad0: Sink
<- "OMAP3 ISP resizer":1 []

- entity 13: OMAP3 ISP AEWB (1 pad, 1 link)
              type V4L2 subdev subtype Unknown
              device node name /dev/v4l-subdev5
         pad0: Sink
<- "OMAP3 ISP CCDC":2 [ENABLED,IMMUTABLE]

- entity 14: OMAP3 ISP AF (1 pad, 1 link)
              type V4L2 subdev subtype Unknown
              device node name /dev/v4l-subdev6
         pad0: Sink
<- "OMAP3 ISP CCDC":2 [ENABLED,IMMUTABLE]

- entity 15: OMAP3 ISP histogram (1 pad, 1 link)
              type V4L2 subdev subtype Unknown
              device node name /dev/v4l-subdev7
         pad0: Sink
<- "OMAP3 ISP CCDC":2 [ENABLED,IMMUTABLE]

- entity 16: tvp5150 3-005d (1 pad, 1 link)
              type V4L2 subdev subtype Unknown
              device node name /dev/v4l-subdev8
         pad0: Source [UYVY2X8 720x625]
                 -> "OMAP3 ISP CCDC":0 [ENABLED]

The following works nicely:
yavta -f UYVY -s 720x625 -n 4 --capture=4 -F /dev/video2

The problem comes when I try to use gstreamer to capture from 
/dev/video2, using the following:
gst-launch v4l2src device="/dev/video2" ! 
'video/x-raw-yuv,width=720,height=625' ! filesink location=sample.yuv

This fails with:
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed 
getting controls attributes on device '/dev/video2'.
Additional debug info:
v4l2_calls.c(267): gst_v4l2_fill_lists (): 
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Failed querying control 9963776 on device '/dev/video2'. (25 - 
Inappropriate ioctl for device)

My question is, should this "just work"? It was my understanding that 
once the pipeline was configured with media-ctl then the CCDC output pad 
should behave like a standard V4L2 device node.

I realise that this might be something borked with my build dependencies 
(although I'm pretty certain that v4l2src is being built against the 
latest libv42) or gstreamer. Before I start digging through the code to 
work out what is going on with the ioctl handling, I thought I would 
check to see whether this should work, or whether I am doing something 
fundamentally silly.

Many Thanks,

Adam





             reply	other threads:[~2011-12-07  8:47 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-07  8:02 Adam Pledger [this message]
2011-12-07 10:34 ` Omap3 ISP + Gstreamer v4l2src Laurent Pinchart
2011-12-07 11:01   ` Michael Jones
2011-12-07 11:44     ` Adam Pledger
2011-12-18 21:52     ` Laurent Pinchart
2011-12-08 21:27 ` Sakari Ailus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EDF1DA2.5000106@thermoteknix.com \
    --to=a.pledger@thermoteknix.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.