From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
sakari.ailus@iki.fi
Subject: Re: [PATCH v3] media: Add video processing entity functions
Date: Fri, 25 Mar 2016 17:23:25 +0200 [thread overview]
Message-ID: <9064017.URrFI5rgEZ@avalon> (raw)
In-Reply-To: <56F555F3.4000308@xs4all.nl>
Hi Hans,
On Friday 25 Mar 2016 16:14:59 Hans Verkuil wrote:
> On 03/25/2016 03:19 PM, Laurent Pinchart wrote:
> > Add composer, format converter and scaler functions, as well as generic
> > video processing to be used when no other processing function is
> > applicable.
> >
> > Signed-off-by: Laurent Pinchart
> > <laurent.pinchart+renesas@ideasonboard.com>
> > ---
> >
> > Documentation/DocBook/media/v4l/media-types.xml | 34 ++++++++++++++++++++
> > include/uapi/linux/media.h | 8 ++++++
> > 2 files changed, 42 insertions(+)
> >
> > Changes since v2:
> >
> > - Fix typo (any other mean -> any other means)
> >
> > diff --git a/Documentation/DocBook/media/v4l/media-types.xml
> > b/Documentation/DocBook/media/v4l/media-types.xml index
> > 5e3f20fdcf17..38e8d6c25d49 100644
> > --- a/Documentation/DocBook/media/v4l/media-types.xml
> > +++ b/Documentation/DocBook/media/v4l/media-types.xml
> > @@ -121,6 +121,40 @@
> > <entry><constant>MEDIA_ENT_F_AUDIO_MIXER</constant></entry>
> > <entry>Audio Mixer Function Entity.</entry>
> > </row>
> > + <row>
> > +
<entry><constant>MEDIA_ENT_F_PROC_VIDEO_GENERIC</constant></entry>
> > + <entry>Generic video processing, when no other processing
function
> > + is applicable.
> > + </entry>
>
> I'll be honest and say that I don't really like this. A VIDEO_GENERIC
> function is only marginally more useful than UNKNOWN. And I think I prefer
> UNKNOWN for now until we have a clear picture how these functions are going
> to work. The main missing piece in this puzzle are properties that allow us
> to register multiple functions and some decision as to what the scope of
> 'functions' is going to be.
>
> You mentioned that you have a few entities that are using this function, but
> if you would specify the exact function of those entities, what would the
> function name(s) be?
I'm not sure, otherwise I would have proposed more precise functions :-)
Two of the entities just apply look up tables. They can thus be used for
various purpose, such as gamma correction, A-law/µ-law (de)compression, ...
The last entity is an interface between the VSP and the display device and
just handles buffering, clock domain crossing and synchronization.
> > + <row>
> > +
<entry><constant>MEDIA_ENT_F_PROC_VIDEO_COMPOSER</constant></entry>
> > + <entry>Video composer (blender). An entity capable of video
> > + composing must have at least two sink pads and one source
> > + pad, and composes input video frames onto output video
> > + frames. Composition can be performed using alpha blending,
> > + color keying, raster operations (ROP), stitching or any other
> > + means.
> > + </entry>
> > + </row>
>
> This one looks OK to me.
>
> > + </row>
> > +
<entry><constant>MEDIA_ENT_F_PROC_VIDEO_CONVERTER</constant></entry>
> > + <entry>Video format converter. An entity capable of video format
> > + conversion must have at least one sink pad and one source
> > + pad, and convert the format of pixels received on its sink
> > + pad(s) to a different format output on its source pad(s).
> > + </entry>
> > + </row>
>
> This is too vague as well, I think. You said that you don't consider
> de-interlacing a converter function, but what about colorimetry conversion?
> Debayer? 4:2:2 to 4:2:0 conversion or vice versa?
I'd consider that as video format conversion, yes.
The three entities that implement this function in the vsp1 driver are
ARGB8888 <-> AHSV8888 converters and RGB <-> YUV converters (with various RGB
and YUV formats supported).
> > + <row>
> > + <entry><constant>MEDIA_ENT_F_PROC_VIDEO_SCALER</constant></entry>
> > + <entry>Video scaler. An entity capable of video scaling must have
> > + at least one sink pad and one source pad, and scaling the
> > + video frame(s) received on its sink pad(s) to a different
> > + resolution output on its source pad(s). The range of
> > + supported scaling ratios is entity-specific and can differ
> > + between the horizontal and vertical directions. In particular
> > + scaling can be supported in one direction only.
> > + </entry>
> > + </row>
>
> This looks OK too, although would sensor binning and/or skipping also be
> considered scaling?
I would consider them as scaling, yes. Sakari, any opinion on that ?
> > </tbody>
> > </tgroup>
> > </table>
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2016-03-25 15:23 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-25 10:43 [PATCH v2 00/54] R-Car VSP improvements for v4.7 Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 01/54] media: Add video processing entity functions Laurent Pinchart
2016-03-25 12:44 ` Hans Verkuil
2016-03-25 13:57 ` Laurent Pinchart
2016-03-25 14:19 ` [PATCH v3] " Laurent Pinchart
2016-03-25 15:14 ` Hans Verkuil
2016-03-25 15:23 ` Laurent Pinchart [this message]
2016-04-10 0:03 ` Laurent Pinchart
2016-03-28 23:01 ` [PATCH v2 01/54] " Sakari Ailus
2016-03-29 7:40 ` Laurent Pinchart
2016-04-10 0:00 ` Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 02/54] v4l: subdev: Add pad config allocator and init Laurent Pinchart
2016-03-25 15:27 ` [PATCH v3] " Laurent Pinchart
2016-03-28 23:11 ` Sakari Ailus
2016-03-25 10:43 ` [PATCH v2 03/54] v4l: subdev: Call pad init_cfg operation when opening subdevs Laurent Pinchart
2016-03-25 12:40 ` Hans Verkuil
2016-03-25 14:17 ` Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 04/54] v4l: vsp1: Fix vsp1_du_atomic_(begin|flush) declarations Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 05/54] v4l: vsp1: drm: Include correct header file Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 06/54] v4l: vsp1: video: Fix coding style Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 07/54] v4l: vsp1: Set entities functions Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 08/54] v4l: vsp1: VSPD instances have no LUT on Gen3 Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 09/54] v4l: vsp1: Use pipeline display list to decide how to write to modules Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 10/54] v4l: vsp1: Always setup the display list Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 11/54] v4l: vsp1: Simplify frame end processing Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 12/54] v4l: vsp1: Split display list manager from display list Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 13/54] v4l: vsp1: Store the display list manager in the WPF Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 14/54] v4l: vsp1: bru: Don't program background color in control set handler Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 15/54] v4l: vsp1: rwpf: Don't program alpha value " Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 16/54] v4l: vsp1: sru: Don't program intensity " Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 17/54] v4l: vsp1: Don't setup control handler when starting streaming Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 18/54] v4l: vsp1: Enable display list support for the HS[IT], LUT, SRU and UDS Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 19/54] v4l: vsp1: Don't configure RPF memory buffers before calculating offsets Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 20/54] v4l: vsp1: Remove unneeded entity streaming flag Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 21/54] v4l: vsp1: Document calling context of vsp1_pipeline_propagate_alpha() Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 22/54] v4l: vsp1: Fix 80 characters per line violations Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 23/54] v4l: vsp1: Add header display list support Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 24/54] v4l: vsp1: Use display lists with the userspace API Laurent Pinchart
2016-03-25 10:43 ` [PATCH v2 25/54] v4l: vsp1: Move subdev initialization code to vsp1_entity_init() Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 26/54] v4l: vsp1: Consolidate entity ops in a struct vsp1_entity_operations Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 27/54] v4l: vsp1: Fix BRU try compose rectangle storage Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 28/54] v4l: vsp1: Add race condition FIXME comment Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 29/54] v4l: vsp1: Implement and use the subdev pad::init_cfg configuration Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 30/54] v4l: vsp1: Store active formats in a pad config structure Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 31/54] v4l: vsp1: Store active selection rectangles " Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 32/54] v4l: vsp1: Create a new configure operation to setup modules Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 33/54] v4l: vsp1: Merge RPF and WPF pad ops structures Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 34/54] v4l: vsp1: Use __vsp1_video_try_format to initialize format at init time Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 35/54] v4l: vsp1: Pass display list explicitly to configure functions Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 36/54] v4l: vsp1: Rename pipeline validate functions to pipeline build Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 37/54] v4l: vsp1: Pass pipe pointer to entity configure functions Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 38/54] v4l: vsp1: Store pipeline pointer in rwpf Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 39/54] v4l: vsp1: video: Reorder functions Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 40/54] v4l: vsp1: Allocate pipelines on demand Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 41/54] v4l: vsp1: RPF entities can't be target nodes Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 42/54] v4l: vsp1: Factorize get pad format code Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 43/54] v4l: vsp1: Factorize media bus codes enumeration code Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 44/54] v4l: vsp1: Factorize frame size " Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 45/54] v4l: vsp1: Fix LUT format setting Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 46/54] v4l: vsp1: dl: Make reg_count field unsigned Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 47/54] v4l: vsp1: dl: Fix race conditions Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 48/54] v4l: vsp1: dl: Add support for multi-body display lists Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 49/54] v4l: vsp1: lut: Use display list fragments to fill LUT Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 50/54] v4l: vsp1: Add support for the RPF alpha multiplier on Gen3 Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 51/54] v4l: vsp1: Add Z-order support for DRM pipeline Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 52/54] v4l: vsp1: Add global alpha " Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 53/54] v4l: vsp1: Fix V4L2_PIX_FMT_XRGB444 format definition Laurent Pinchart
2016-03-25 10:44 ` [PATCH v2 54/54] v4l: vsp1: Update WPF and LIF maximum sizes for Gen3 Laurent Pinchart
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=9064017.URrFI5rgEZ@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=hverkuil@xs4all.nl \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=sakari.ailus@iki.fi \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox