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