linux/drivers/staging/vc04_services/bcm2835-camera/mmal-encodings.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Broadcom BM2835 V4L2 driver
   4 *
   5 * Copyright © 2013 Raspberry Pi (Trading) Ltd.
   6 *
   7 * Authors: Vincent Sanders <vincent.sanders@collabora.co.uk>
   8 *          Dave Stevenson <dsteve@broadcom.com>
   9 *          Simon Mellor <simellor@broadcom.com>
  10 *          Luke Diamand <luked@broadcom.com>
  11 */
  12#ifndef MMAL_ENCODINGS_H
  13#define MMAL_ENCODINGS_H
  14
  15#define MMAL_ENCODING_H264             MMAL_FOURCC('H', '2', '6', '4')
  16#define MMAL_ENCODING_H263             MMAL_FOURCC('H', '2', '6', '3')
  17#define MMAL_ENCODING_MP4V             MMAL_FOURCC('M', 'P', '4', 'V')
  18#define MMAL_ENCODING_MP2V             MMAL_FOURCC('M', 'P', '2', 'V')
  19#define MMAL_ENCODING_MP1V             MMAL_FOURCC('M', 'P', '1', 'V')
  20#define MMAL_ENCODING_WMV3             MMAL_FOURCC('W', 'M', 'V', '3')
  21#define MMAL_ENCODING_WMV2             MMAL_FOURCC('W', 'M', 'V', '2')
  22#define MMAL_ENCODING_WMV1             MMAL_FOURCC('W', 'M', 'V', '1')
  23#define MMAL_ENCODING_WVC1             MMAL_FOURCC('W', 'V', 'C', '1')
  24#define MMAL_ENCODING_VP8              MMAL_FOURCC('V', 'P', '8', ' ')
  25#define MMAL_ENCODING_VP7              MMAL_FOURCC('V', 'P', '7', ' ')
  26#define MMAL_ENCODING_VP6              MMAL_FOURCC('V', 'P', '6', ' ')
  27#define MMAL_ENCODING_THEORA           MMAL_FOURCC('T', 'H', 'E', 'O')
  28#define MMAL_ENCODING_SPARK            MMAL_FOURCC('S', 'P', 'R', 'K')
  29#define MMAL_ENCODING_MJPEG            MMAL_FOURCC('M', 'J', 'P', 'G')
  30
  31#define MMAL_ENCODING_JPEG             MMAL_FOURCC('J', 'P', 'E', 'G')
  32#define MMAL_ENCODING_GIF              MMAL_FOURCC('G', 'I', 'F', ' ')
  33#define MMAL_ENCODING_PNG              MMAL_FOURCC('P', 'N', 'G', ' ')
  34#define MMAL_ENCODING_PPM              MMAL_FOURCC('P', 'P', 'M', ' ')
  35#define MMAL_ENCODING_TGA              MMAL_FOURCC('T', 'G', 'A', ' ')
  36#define MMAL_ENCODING_BMP              MMAL_FOURCC('B', 'M', 'P', ' ')
  37
  38#define MMAL_ENCODING_I420             MMAL_FOURCC('I', '4', '2', '0')
  39#define MMAL_ENCODING_I420_SLICE       MMAL_FOURCC('S', '4', '2', '0')
  40#define MMAL_ENCODING_YV12             MMAL_FOURCC('Y', 'V', '1', '2')
  41#define MMAL_ENCODING_I422             MMAL_FOURCC('I', '4', '2', '2')
  42#define MMAL_ENCODING_I422_SLICE       MMAL_FOURCC('S', '4', '2', '2')
  43#define MMAL_ENCODING_YUYV             MMAL_FOURCC('Y', 'U', 'Y', 'V')
  44#define MMAL_ENCODING_YVYU             MMAL_FOURCC('Y', 'V', 'Y', 'U')
  45#define MMAL_ENCODING_UYVY             MMAL_FOURCC('U', 'Y', 'V', 'Y')
  46#define MMAL_ENCODING_VYUY             MMAL_FOURCC('V', 'Y', 'U', 'Y')
  47#define MMAL_ENCODING_NV12             MMAL_FOURCC('N', 'V', '1', '2')
  48#define MMAL_ENCODING_NV21             MMAL_FOURCC('N', 'V', '2', '1')
  49#define MMAL_ENCODING_ARGB             MMAL_FOURCC('A', 'R', 'G', 'B')
  50#define MMAL_ENCODING_RGBA             MMAL_FOURCC('R', 'G', 'B', 'A')
  51#define MMAL_ENCODING_ABGR             MMAL_FOURCC('A', 'B', 'G', 'R')
  52#define MMAL_ENCODING_BGRA             MMAL_FOURCC('B', 'G', 'R', 'A')
  53#define MMAL_ENCODING_RGB16            MMAL_FOURCC('R', 'G', 'B', '2')
  54#define MMAL_ENCODING_RGB24            MMAL_FOURCC('R', 'G', 'B', '3')
  55#define MMAL_ENCODING_RGB32            MMAL_FOURCC('R', 'G', 'B', '4')
  56#define MMAL_ENCODING_BGR16            MMAL_FOURCC('B', 'G', 'R', '2')
  57#define MMAL_ENCODING_BGR24            MMAL_FOURCC('B', 'G', 'R', '3')
  58#define MMAL_ENCODING_BGR32            MMAL_FOURCC('B', 'G', 'R', '4')
  59
  60/** SAND Video (YUVUV128) format, native format understood by VideoCore.
  61 * This format is *not* opaque - if requested you will receive full frames
  62 * of YUV_UV video.
  63 */
  64#define MMAL_ENCODING_YUVUV128         MMAL_FOURCC('S', 'A', 'N', 'D')
  65
  66/** VideoCore opaque image format, image handles are returned to
  67 * the host but not the actual image data.
  68 */
  69#define MMAL_ENCODING_OPAQUE           MMAL_FOURCC('O', 'P', 'Q', 'V')
  70
  71/** An EGL image handle
  72 */
  73#define MMAL_ENCODING_EGL_IMAGE        MMAL_FOURCC('E', 'G', 'L', 'I')
  74
  75/* }@ */
  76
  77/** \name Pre-defined audio encodings */
  78/* @{ */
  79#define MMAL_ENCODING_PCM_UNSIGNED_BE  MMAL_FOURCC('P', 'C', 'M', 'U')
  80#define MMAL_ENCODING_PCM_UNSIGNED_LE  MMAL_FOURCC('p', 'c', 'm', 'u')
  81#define MMAL_ENCODING_PCM_SIGNED_BE    MMAL_FOURCC('P', 'C', 'M', 'S')
  82#define MMAL_ENCODING_PCM_SIGNED_LE    MMAL_FOURCC('p', 'c', 'm', 's')
  83#define MMAL_ENCODING_PCM_FLOAT_BE     MMAL_FOURCC('P', 'C', 'M', 'F')
  84#define MMAL_ENCODING_PCM_FLOAT_LE     MMAL_FOURCC('p', 'c', 'm', 'f')
  85
  86/* Pre-defined H264 encoding variants */
  87
  88/** ISO 14496-10 Annex B byte stream format */
  89#define MMAL_ENCODING_VARIANT_H264_DEFAULT   0
  90/** ISO 14496-15 AVC stream format */
  91#define MMAL_ENCODING_VARIANT_H264_AVC1      MMAL_FOURCC('A', 'V', 'C', '1')
  92/** Implicitly delineated NAL units without emulation prevention */
  93#define MMAL_ENCODING_VARIANT_H264_RAW       MMAL_FOURCC('R', 'A', 'W', ' ')
  94
  95/** \defgroup MmalColorSpace List of pre-defined video color spaces
  96 * This defines a list of common color spaces. This list isn't exhaustive and
  97 * is only provided as a convenience to avoid clients having to use FourCC
  98 * codes directly. However components are allowed to define and use their own
  99 * FourCC codes.
 100 */
 101/* @{ */
 102
 103/** Unknown color space */
 104#define MMAL_COLOR_SPACE_UNKNOWN       0
 105/** ITU-R BT.601-5 [SDTV] */
 106#define MMAL_COLOR_SPACE_ITUR_BT601    MMAL_FOURCC('Y', '6', '0', '1')
 107/** ITU-R BT.709-3 [HDTV] */
 108#define MMAL_COLOR_SPACE_ITUR_BT709    MMAL_FOURCC('Y', '7', '0', '9')
 109/** JPEG JFIF */
 110#define MMAL_COLOR_SPACE_JPEG_JFIF     MMAL_FOURCC('Y', 'J', 'F', 'I')
 111/** Title 47 Code of Federal Regulations (2003) 73.682 (a) (20) */
 112#define MMAL_COLOR_SPACE_FCC           MMAL_FOURCC('Y', 'F', 'C', 'C')
 113/** Society of Motion Picture and Television Engineers 240M (1999) */
 114#define MMAL_COLOR_SPACE_SMPTE240M     MMAL_FOURCC('Y', '2', '4', '0')
 115/** ITU-R BT.470-2 System M */
 116#define MMAL_COLOR_SPACE_BT470_2_M     MMAL_FOURCC('Y', '_', '_', 'M')
 117/** ITU-R BT.470-2 System BG */
 118#define MMAL_COLOR_SPACE_BT470_2_BG    MMAL_FOURCC('Y', '_', 'B', 'G')
 119/** JPEG JFIF, but with 16..255 luma */
 120#define MMAL_COLOR_SPACE_JFIF_Y16_255  MMAL_FOURCC('Y', 'Y', '1', '6')
 121/* @} MmalColorSpace List */
 122
 123#endif /* MMAL_ENCODINGS_H */
 124