]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[media] media: Add video processing entity functions
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tue, 16 Feb 2016 00:00:30 +0000 (22:00 -0200)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 28 Jun 2016 15:05:52 +0000 (12:05 -0300)
Add composer, pixel formatter, pixel encoding converter and scaler
functions.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Documentation/DocBook/media/v4l/media-types.xml
include/uapi/linux/media.h

index 5e3f20fdcf176516ed8fe48e806f437bf748557a..60fe841f8846557f9d0d146c26965c95713a1a90 100644 (file)
            <entry><constant>MEDIA_ENT_F_AUDIO_MIXER</constant></entry>
            <entry>Audio Mixer Function Entity.</entry>
          </row>
+         <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>
+         <row>
+           <entry><constant>MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER</constant></entry>
+           <entry>Video pixel formatter. An entity capable of pixel formatting
+                  must have at least one sink pad and one source pad. Read
+                  pixel formatters read pixels from memory and perform a subset
+                  of unpacking, cropping, color keying, alpha multiplication
+                  and pixel encoding conversion. Write pixel formatters perform
+                  a subset of dithering, pixel encoding conversion and packing
+                  and write pixels to memory.
+           </entry>
+         </row>
+         <row>
+           <entry><constant>MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV</constant></entry>
+           <entry>Video pixel encoding converter. An entity capable of pixel
+                  enconding conversion must have at least one sink pad and one
+                  source pad, and convert the encoding of pixels received on
+                  its sink pad(s) to a different encoding output on its source
+                  pad(s). Pixel encoding conversion includes but isn't limited
+                  to RGB to/from HSV, RGB to/from YUV and CFA (Bayer) to RGB
+                  conversions.
+           </entry>
+         </row>
+         <row>
+           <entry><constant>MEDIA_ENT_F_PROC_VIDEO_LUT</constant></entry>
+           <entry>Video look-up table. An entity capable of video lookup table
+                  processing must have one sink pad and one source pad. It uses
+                  the values of the pixels received on its sink pad to look up
+                  entries in internal tables and output them on its source pad.
+                  The lookup processing can be performed on all components
+                  separately or combine them for multi-dimensional table
+                  lookups.
+           </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 scale 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). Binning and
+                  skipping are considered as scaling.
+           </entry>
+         </row>
        </tbody>
       </tgroup>
     </table>
index df59edee25d10332ec376373a9dae5f574607c5a..3136686c4bd02930375d67465e8f3aebb09f60e2 100644 (file)
@@ -94,6 +94,15 @@ struct media_device_info {
 #define MEDIA_ENT_F_AUDIO_PLAYBACK     (MEDIA_ENT_F_BASE + 0x03002)
 #define MEDIA_ENT_F_AUDIO_MIXER                (MEDIA_ENT_F_BASE + 0x03003)
 
+/*
+ * Processing entities
+ */
+#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER                (MEDIA_ENT_F_BASE + 0x4001)
+#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER (MEDIA_ENT_F_BASE + 0x4002)
+#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV  (MEDIA_ENT_F_BASE + 0x4003)
+#define MEDIA_ENT_F_PROC_VIDEO_LUT             (MEDIA_ENT_F_BASE + 0x4004)
+#define MEDIA_ENT_F_PROC_VIDEO_SCALER          (MEDIA_ENT_F_BASE + 0x4005)
+
 /*
  * Connectors
  */