From: Steve Longerbeam <steve_longerbeam@mentor.com>
To: Philipp Zabel <p.zabel@pengutronix.de>,
Steve Longerbeam <slongerbeam@gmail.com>
Cc: Jean-Michel Hautbois <jean-michel.hautbois@vodalys.com>,
Tim Harvey <tharvey@gateworks.com>,
Robert Schwebel <r.schwebel@pengutronix.de>,
<linux-media@vger.kernel.org>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Subject: Re: i.MX6 status for IPU/VPU/GPU
Date: Wed, 10 Sep 2014 18:17:03 -0700 [thread overview]
Message-ID: <5410F80F.5060803@mentor.com> (raw)
In-Reply-To: <1410284421.3353.47.camel@paszta.hi.pengutronix.de>
Hi Phillip,
On 09/09/2014 10:40 AM, Philipp Zabel wrote:
>
>>>> I've also worked out what I think is a workable video pipeline graph for i.MX,
>>>> suitable for defining the entities, pads, and links. Unfortunately I haven't
>>>> been able to spend as much time as I'd like on it.
>>> This is very interesting, do you have written this somewhere ?
>> Yes, I'll try to find some time to create a pdf image.
> I'd be very interested in this, too.
I should have something to show tomorrow.
> I have in the meantime started to
> implement everything that has a source or destination selector in the
> Frame Synchronization Unit (FSU) as media entity. I wonder which of
> these parts should reasonably be unified into a single entity:
>
> CSI0
> CSI1
Yes, we need a CSI subdev/entity, and it can be instantiated twice for
the two CSI ports.
> SMFC0
> SMFC1
> SMFC2
> SMFC3
I don't really see the need for an SMFC entity. The SMFC control can
be integrated into the CSI subdev.
> IC preprocessor (input to VF and ENC, if I understood correctly)
> IC viewfinder task (scaling, csc)
> IC encoding task
> IC post processing task
I see either three different IC subdev entities (IC prpenc, IC prpvf,
IC pp), or a single IC entity with three sink pads for each IC task.
> IRT viewfinder task (rotation)
> IRT encoding task
> IRT post processing task
well, the IRT is really just a submodule enable bit, I see no need
for an IRT subdev, in fact IRT has already been folded into ipu-ic.c
as a simple submodule enable/disable. Rotation support can be
implemented as part of the IC entities.
> VDIC (deinterlacing, combining)
I am thinking VDIC support can be part of the IC prpvf entity (well,
combining is not really on my radar, I haven't given that much thought).
> (and probably some entry for DP/DC/DMFC for the direct
> viewfinder path)
Ugh, I've been ignoring that path as well. Freescale's BSP releases
and sample code from their SDK's have no example code for the
direct-to-DP/DC/DMFC camera viewfinder path, so given the quality
of the imx TRM, this could be a challenge to implement. Have you
gotten this path to work?
>
> I suppose the SMFC channels need to be separate because they can belong
> to different pipelines (and each entity can only belong to one).
I see the chosen SMFC channel as an internal decision by the
CSI subdev.
> The three IC task entities could probably be combined with their
> corresponding IRT task entity somehow, but that would be at the cost of
> not being able to tell the kernel whether to rotate before or after
> scaling, which might be useful when handling chroma subsampled formats.
I'm fairly sure IC rotation must always occur _after_ scaling. I.e.
raw frames are first passed through IC prpenc/prpvf/pp for scaling/CSC,
then EOF completion of that task is hardware linked to IRT.
>
> I have put my current state up here:
>
> git://git.pengutronix.de/git/pza/linux.git test/nitrogen6x-ipu-media
>
> So far I've captured video through the SMFC on a Nitrogen6X board with
> OV5652 parallel camera with this.
Thanks Phillip, I'll take a look! Sounds like a good place to start.
I assume this is with the video mux entity and CSI driver? I.e. no
IC entity support yet for scaling, CSC, or rotation.
Steve
next prev parent reply other threads:[~2014-09-11 1:17 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-28 16:24 i.MX6 status for IPU/VPU/GPU Jean-Michel Hautbois
2014-07-28 18:59 ` Robert Schwebel
2014-07-28 21:15 ` Steve Longerbeam
2014-08-04 6:14 ` Tim Harvey
2014-08-04 11:54 ` Philipp Zabel
2014-08-05 8:07 ` Jean-Michel Hautbois
2014-08-27 7:13 ` Jean-Michel Hautbois
2014-08-27 14:23 ` Steve Longerbeam
2014-09-09 7:49 ` Jean-Michel Hautbois
2014-09-09 7:52 ` Hans Verkuil
2014-09-09 16:06 ` Steve Longerbeam
2014-09-09 16:12 ` Steve Longerbeam
2014-09-09 17:40 ` Philipp Zabel
2014-09-11 1:17 ` Steve Longerbeam [this message]
2014-09-11 13:26 ` Philipp Zabel
2014-09-15 14:13 ` Jean-Michel Hautbois
2014-10-24 13:42 ` Jean-Michel Hautbois
2015-01-27 15:00 ` Carlos Sanmartín Bustos
2014-09-09 16:28 ` Steve Longerbeam
2014-09-10 16:08 ` Jean-Michel Hautbois
2014-09-10 16:25 ` Steve Longerbeam
2014-09-11 0:37 ` Steve Longerbeam
2014-10-02 14:50 ` Jean-Michel Hautbois
2014-10-03 10:25 ` Carlos Sanmartín Bustos
[not found] ` <CAPW4HR0BJ7X0sMy78keEFtS6WXpbJjYCo75utKqWBtsDvrbUeg@mail.gmail.com>
2014-10-03 10:27 ` Jean-Michel Hautbois
2014-10-06 1:03 ` Steve Longerbeam
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=5410F80F.5060803@mentor.com \
--to=steve_longerbeam@mentor.com \
--cc=jean-michel.hautbois@vodalys.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=r.schwebel@pengutronix.de \
--cc=slongerbeam@gmail.com \
--cc=tharvey@gateworks.com \
/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.