All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tim Harvey <tharvey@gateworks.com>
To: Steve Longerbeam <slongerbeam@gmail.com>
Cc: Philipp Zabel <p.zabel@pengutronix.de>,
	linux-media <linux-media@vger.kernel.org>,
	nicolas@ndufresne.ca, Sascha Hauer <kernel@pengutronix.de>
Subject: Re: [PATCH v3 01/16] media: imx: add mem2mem device
Date: Fri, 19 Oct 2018 16:54:16 -0700	[thread overview]
Message-ID: <CAJ+vNU1f2HF9+bQp6cKWMXNYyNMfSGE1-pW_b-oYdWJAgi8EAw@mail.gmail.com> (raw)
In-Reply-To: <1f090c65-342a-fb43-c274-935cbf78fdd4@gmail.com>

On Fri, Oct 19, 2018 at 1:19 PM Steve Longerbeam <slongerbeam@gmail.com> wrote:
>
>
> On 10/19/18 2:53 AM, Philipp Zabel wrote:
> > Hi Tim,
> >
> > On Thu, 2018-10-18 at 15:53 -0700, Tim Harvey wrote:
> > [...]
> >> Philipp,
> >>
> >> Thanks for submitting this!
> >>
> >> I'm hoping this lets us use non-IMX capture devices along with the IMX
> >> media controller entities to so we can use hardware
> >> CSC,scaling,pixel-format-conversions and ultimately coda based encode.
> >>
> >> I've built this on top of linux-media and see that it registers as
> >> /dev/video8 but I'm not clear how to use it? I don't see it within the
> >> media controller graph.
> > It's a V4L2 mem2mem device that can be handled by the GstV4l2Transform
> > element, for example. GStreamer should create a v4l2video8convert
> > element of that type.
> >
> > The mem2mem device is not part of the media controller graph on purpose.
> > There is no interaction with any of the entities in the media controller
> > graph apart from the fact that the IC PP task we are using for mem2mem
> > scaling is sharing hardware resources with the IC PRP tasks used for the
> > media controller scaler entitites.
>
>
> It would be nice in the future to link mem2mem output-side to the ipu_vdic:1
> pad, to make use of h/w VDIC de-interlace as part of mem2mem operations.
> The progressive output from a new ipu_vdic:3 pad can then be sent to the
> image_convert APIs by the mem2mem driver for further tiled scaling, CSC,
> and rotation by the IC PP task. The ipu_vdic:1 pad makes use of pure
> DMA-based
> de-interlace, that is, all input frames (N-1, N, N+1) to the VDIC are sent
> from DMA buffers, and this VDIC mode of operation is well understood
> and produces clean de-interlace output. The risk is that this would require
> iDMAC channel 5 for ipu_vdic:3, which IFAIK is not verified to work yet.
>
>
> The other problem with that currently is that mem2mem would have to be
> split into
> separate device nodes: a /dev/videoN for output-side (linked to
> ipu_vdic:1), and
> a /dev/videoM for capture-side (linked from ipu_vdic:3). And then it no
> longer
> presents to userspace as a mem2mem device with a single device node for both
> output and capture sides.
>
>
> Or is there another way? I recall work to integrate mem2mem with media
> control.
> There is v4l2_m2m_register_media_controller(), but that create three
> entities:
> source, processing, and sink. The VDIC entity would be part of mem2mem
> processing but this entity already exists for the current graph. This
> function
> could however be used as a guide to incorporate the VDIC entity into m2m
> device.
>

I agree - without being able to utilize de-interlace,csc,scaling and
rotation it seems fairly limited today (but a great start!).

Also, if it were in the media graph wouldn't we be able to use the
compose selection subdev API?

I've got an AVC8000 minPCIe card here with a TW6869 with 8x analog
capture inputs that I'm hoping to someday soon be able to capture,
compose into a single frame, and encode.

Regards,

Tim

  reply	other threads:[~2018-10-20  8:03 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-18  9:34 [PATCH v3 00/16] i.MX media mem2mem scaler Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 01/16] media: imx: add mem2mem device Philipp Zabel
2018-10-18 22:53   ` Tim Harvey
2018-10-19  9:53     ` Philipp Zabel
2018-10-19 20:19       ` Steve Longerbeam
2018-10-19 23:54         ` Tim Harvey [this message]
2018-10-21 17:43         ` Philipp Zabel
2018-10-23 23:23           ` Steve Longerbeam
2018-09-18  9:34 ` [PATCH v3 02/16] gpu: ipu-cpmem: add WARN_ON_ONCE() for unaligned dma buffers Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 03/16] gpu: ipu-v3: ipu-ic: allow to manually set resize coefficients Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 04/16] gpu: ipu-v3: image-convert: prepare for per-tile configuration Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 05/16] gpu: ipu-v3: image-convert: calculate per-tile resize coefficients Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 06/16] gpu: ipu-v3: image-convert: reconfigure IC per tile Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 07/16] gpu: ipu-v3: image-convert: store tile top/left position Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 08/16] gpu: ipu-v3: image-convert: calculate tile dimensions and offsets outside fill_image Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 09/16] gpu: ipu-v3: image-convert: move tile alignment helpers Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 10/16] gpu: ipu-v3: image-convert: select optimal seam positions Philipp Zabel
2018-10-13  0:33   ` Steve Longerbeam
2018-10-17 11:10     ` Philipp Zabel
2018-10-17 23:44       ` Steve Longerbeam
2018-09-18  9:34 ` [PATCH v3 11/16] gpu: ipu-v3: image-convert: fix debug output for varying tile sizes Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 12/16] gpu: ipu-v3: image-convert: relax alignment restrictions Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 13/16] gpu: ipu-v3: image-convert: fix bytesperline adjustment Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 14/16] gpu: ipu-v3: image-convert: add some ASCII art to the exposition Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 15/16] gpu: ipu-v3: image-convert: disable double buffering if necessary Philipp Zabel
2018-09-18  9:34 ` [PATCH v3 16/16] gpu: ipu-v3: image-convert: allow three rows or columns Philipp Zabel
2018-10-13  0:29 ` [PATCH v3 00/16] i.MX media mem2mem scaler Steve Longerbeam
2018-10-17 23:46   ` Steve Longerbeam
2018-10-19 12:18     ` Philipp Zabel

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=CAJ+vNU1f2HF9+bQp6cKWMXNYyNMfSGE1-pW_b-oYdWJAgi8EAw@mail.gmail.com \
    --to=tharvey@gateworks.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-media@vger.kernel.org \
    --cc=nicolas@ndufresne.ca \
    --cc=p.zabel@pengutronix.de \
    --cc=slongerbeam@gmail.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.