Message ID | 1458902668-1141-2-git-send-email-laurent.pinchart+renesas@ideasonboard.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Geert Uytterhoeven |
Headers | show |
On 03/25/2016 11:43 AM, 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(+) > > diff --git a/Documentation/DocBook/media/v4l/media-types.xml b/Documentation/DocBook/media/v4l/media-types.xml > index 5e3f20fdcf17..a6e171e80bce 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> Does someone in this patch series use this one? If not, then just drop it. And if there is one, which patch is it? > + <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 > + mean. s/mean/means/ > + </entry> > + </row> > + </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> Does this cover a de-interlacer? > + </row> > + <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> > </tbody> > </tgroup> > </table> Regards, Hans > diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h > index df59edee25d1..884ec1cae09d 100644 > --- a/include/uapi/linux/media.h > +++ b/include/uapi/linux/media.h > @@ -95,6 +95,14 @@ struct media_device_info { > #define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003) > > /* > + * Processing entities > + */ > +#define MEDIA_ENT_F_PROC_VIDEO_GENERIC (MEDIA_ENT_F_BASE + 0x4001) > +#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER (MEDIA_ENT_F_BASE + 0x4002) > +#define MEDIA_ENT_F_PROC_VIDEO_CONVERTER (MEDIA_ENT_F_BASE + 0x4003) > +#define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4004) > + > +/* > * Connectors > */ > /* It is a responsibility of the entity drivers to add connectors and links */ >
Hi Hans, On Friday 25 Mar 2016 13:44:27 Hans Verkuil wrote: > On 03/25/2016 11:43 AM, 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(+) > > > > diff --git a/Documentation/DocBook/media/v4l/media-types.xml > > b/Documentation/DocBook/media/v4l/media-types.xml index > > 5e3f20fdcf17..a6e171e80bce 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> > > Does someone in this patch series use this one? If not, then just drop it. > And if there is one, which patch is it? Yes, I have three entities using this, two look up tables (1D and 3D) and an entity handling the interface between the VSP and the display device. > > + <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 > > + mean. > > s/mean/means/ Will fix, thanks. > > + </entry> > > + </row> > > + </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> > > Does this cover a de-interlacer? Deinterlacing and pixel format conversion seem to be different concepts to me, I wouldn't include deinterlacers here. > > + </row> > > + <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> > > > > </tbody> > > > > </tgroup> > > > > </table> > > Regards, > > Hans > > > diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h > > index df59edee25d1..884ec1cae09d 100644 > > --- a/include/uapi/linux/media.h > > +++ b/include/uapi/linux/media.h > > @@ -95,6 +95,14 @@ struct media_device_info { > > > > #define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003) > > > > /* > > > > + * Processing entities > > + */ > > +#define MEDIA_ENT_F_PROC_VIDEO_GENERIC (MEDIA_ENT_F_BASE + 0x4001) > > +#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER (MEDIA_ENT_F_BASE + 0x4002) > > +#define MEDIA_ENT_F_PROC_VIDEO_CONVERTER (MEDIA_ENT_F_BASE + 0x4003) > > +#define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4004) > > + > > +/* > > > > * Connectors > > */ > > > > /* It is a responsibility of the entity drivers to add connectors and > > links */
Hi Laurent, On Fri, Mar 25, 2016 at 12:43:35PM +0200, 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. How are these intended to be used? Say, if a sub-device implements functionality that matches more than one of these, do you pick one? Supposedly you control at least some of this functionality using the selections API, and frankly, I think the way it's currently defined in the spec worked okay-ish for the devices at hand at the time, but defining that the order of processing from the sink towards the source is sink crop, sink compose and then source crop is not generic. We should have a better way to tell this, using a similar API which is used to control the functionality, just as is done with V4L2 controls. > > 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(+) > > diff --git a/Documentation/DocBook/media/v4l/media-types.xml b/Documentation/DocBook/media/v4l/media-types.xml > index 5e3f20fdcf17..a6e171e80bce 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> > + <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 > + mean. > + </entry> > + </row> > + </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> > + <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> > </tbody> > </tgroup> > </table> > diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h > index df59edee25d1..884ec1cae09d 100644 > --- a/include/uapi/linux/media.h > +++ b/include/uapi/linux/media.h > @@ -95,6 +95,14 @@ struct media_device_info { > #define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003) > > /* > + * Processing entities > + */ > +#define MEDIA_ENT_F_PROC_VIDEO_GENERIC (MEDIA_ENT_F_BASE + 0x4001) > +#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER (MEDIA_ENT_F_BASE + 0x4002) > +#define MEDIA_ENT_F_PROC_VIDEO_CONVERTER (MEDIA_ENT_F_BASE + 0x4003) > +#define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4004) > + > +/* > * Connectors > */ > /* It is a responsibility of the entity drivers to add connectors and links */
Hi Sakari, On Tuesday 29 Mar 2016 02:01:55 Sakari Ailus wrote: > Hi Laurent, > > On Fri, Mar 25, 2016 at 12:43:35PM +0200, 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. > > How are these intended to be used? > > Say, if a sub-device implements functionality that matches more than one of > these, do you pick one? The whole point of functions is that they're not mutually exclusive, and the full list of functions will be reported as properties for the entity. The function field of the media entity structure stores the main function only. > Supposedly you control at least some of this functionality using the > selections API, and frankly, I think the way it's currently defined in the > spec worked okay-ish for the devices at hand at the time, but defining that > the order of processing from the sink towards the source is sink crop, sink > compose and then source crop is not generic. We should have a better way to > tell this, using a similar API which is used to control the functionality, > just as is done with V4L2 controls. Sure, but how is that related to this patch ? :-) > > 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(+) > > > > diff --git a/Documentation/DocBook/media/v4l/media-types.xml > > b/Documentation/DocBook/media/v4l/media-types.xml index > > 5e3f20fdcf17..a6e171e80bce 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> > > + <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 > > + mean. > > + </entry> > > + </row> > > + </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> > > + <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> > > > > </tbody> > > > > </tgroup> > > > > </table> > > > > diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h > > index df59edee25d1..884ec1cae09d 100644 > > --- a/include/uapi/linux/media.h > > +++ b/include/uapi/linux/media.h > > @@ -95,6 +95,14 @@ struct media_device_info { > > > > #define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003) > > > > /* > > > > + * Processing entities > > + */ > > +#define MEDIA_ENT_F_PROC_VIDEO_GENERIC (MEDIA_ENT_F_BASE + 0x4001) > > +#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER (MEDIA_ENT_F_BASE + 0x4002) > > +#define MEDIA_ENT_F_PROC_VIDEO_CONVERTER (MEDIA_ENT_F_BASE + 0x4003) > > +#define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4004) > > + > > +/* > > > > * Connectors > > */ > > > > /* It is a responsibility of the entity drivers to add connectors and > > links */
Hi Sakari, Do you still have issues with this patch ? On Tuesday 29 Mar 2016 10:40:05 Laurent Pinchart wrote: > On Tuesday 29 Mar 2016 02:01:55 Sakari Ailus wrote: > > On Fri, Mar 25, 2016 at 12:43:35PM +0200, 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. > > > > How are these intended to be used? > > > > Say, if a sub-device implements functionality that matches more than one > > of these, do you pick one? > > The whole point of functions is that they're not mutually exclusive, and the > full list of functions will be reported as properties for the entity. The > function field of the media entity structure stores the main function only. > > > Supposedly you control at least some of this functionality using the > > selections API, and frankly, I think the way it's currently defined in the > > spec worked okay-ish for the devices at hand at the time, but defining > > that the order of processing from the sink towards the source is sink > > crop, sink compose and then source crop is not generic. We should have a > > better way to tell this, using a similar API which is used to control the > > functionality, just as is done with V4L2 controls. > > Sure, but how is that related to this patch ? :-) > > > > 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(+)
diff --git a/Documentation/DocBook/media/v4l/media-types.xml b/Documentation/DocBook/media/v4l/media-types.xml index 5e3f20fdcf17..a6e171e80bce 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> + <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 + mean. + </entry> + </row> + </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> + <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> </tbody> </tgroup> </table> diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h index df59edee25d1..884ec1cae09d 100644 --- a/include/uapi/linux/media.h +++ b/include/uapi/linux/media.h @@ -95,6 +95,14 @@ struct media_device_info { #define MEDIA_ENT_F_AUDIO_MIXER (MEDIA_ENT_F_BASE + 0x03003) /* + * Processing entities + */ +#define MEDIA_ENT_F_PROC_VIDEO_GENERIC (MEDIA_ENT_F_BASE + 0x4001) +#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER (MEDIA_ENT_F_BASE + 0x4002) +#define MEDIA_ENT_F_PROC_VIDEO_CONVERTER (MEDIA_ENT_F_BASE + 0x4003) +#define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4004) + +/* * Connectors */ /* It is a responsibility of the entity drivers to add connectors and links */
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(+)