1193323Sed/* SPDX-License-Identifier: GPL-2.0 */ 2193323Sed/* 3193323Sed * Broadcom BCM2835 V4L2 driver 4193323Sed * 5193323Sed * Copyright �� 2013 Raspberry Pi (Trading) Ltd. 6193323Sed * 7193323Sed * Authors: Vincent Sanders @ Collabora 8193323Sed * Dave Stevenson @ Broadcom 9193323Sed * (now dave.stevenson@raspberrypi.org) 10193323Sed * Simon Mellor @ Broadcom 11193323Sed * Luke Diamand @ Broadcom 12193323Sed */ 13193323Sed#ifndef MMAL_ENCODINGS_H 14193323Sed#define MMAL_ENCODINGS_H 15193323Sed 16193323Sed#define MMAL_ENCODING_H264 MMAL_FOURCC('H', '2', '6', '4') 17193323Sed#define MMAL_ENCODING_H263 MMAL_FOURCC('H', '2', '6', '3') 18193323Sed#define MMAL_ENCODING_MP4V MMAL_FOURCC('M', 'P', '4', 'V') 19193323Sed#define MMAL_ENCODING_MP2V MMAL_FOURCC('M', 'P', '2', 'V') 20193323Sed#define MMAL_ENCODING_MP1V MMAL_FOURCC('M', 'P', '1', 'V') 21193323Sed#define MMAL_ENCODING_WMV3 MMAL_FOURCC('W', 'M', 'V', '3') 22193323Sed#define MMAL_ENCODING_WMV2 MMAL_FOURCC('W', 'M', 'V', '2') 23193323Sed#define MMAL_ENCODING_WMV1 MMAL_FOURCC('W', 'M', 'V', '1') 24193323Sed#define MMAL_ENCODING_WVC1 MMAL_FOURCC('W', 'V', 'C', '1') 25193323Sed#define MMAL_ENCODING_VP8 MMAL_FOURCC('V', 'P', '8', ' ') 26193323Sed#define MMAL_ENCODING_VP7 MMAL_FOURCC('V', 'P', '7', ' ') 27193323Sed#define MMAL_ENCODING_VP6 MMAL_FOURCC('V', 'P', '6', ' ') 28193323Sed#define MMAL_ENCODING_THEORA MMAL_FOURCC('T', 'H', 'E', 'O') 29193323Sed#define MMAL_ENCODING_SPARK MMAL_FOURCC('S', 'P', 'R', 'K') 30193323Sed#define MMAL_ENCODING_MJPEG MMAL_FOURCC('M', 'J', 'P', 'G') 31193323Sed 32193323Sed#define MMAL_ENCODING_JPEG MMAL_FOURCC('J', 'P', 'E', 'G') 33193323Sed#define MMAL_ENCODING_GIF MMAL_FOURCC('G', 'I', 'F', ' ') 34193323Sed#define MMAL_ENCODING_PNG MMAL_FOURCC('P', 'N', 'G', ' ') 35193323Sed#define MMAL_ENCODING_PPM MMAL_FOURCC('P', 'P', 'M', ' ') 36193323Sed#define MMAL_ENCODING_TGA MMAL_FOURCC('T', 'G', 'A', ' ') 37193323Sed#define MMAL_ENCODING_BMP MMAL_FOURCC('B', 'M', 'P', ' ') 38193323Sed 39193323Sed#define MMAL_ENCODING_I420 MMAL_FOURCC('I', '4', '2', '0') 40193323Sed#define MMAL_ENCODING_I420_SLICE MMAL_FOURCC('S', '4', '2', '0') 41193323Sed#define MMAL_ENCODING_YV12 MMAL_FOURCC('Y', 'V', '1', '2') 42193323Sed#define MMAL_ENCODING_I422 MMAL_FOURCC('I', '4', '2', '2') 43193323Sed#define MMAL_ENCODING_I422_SLICE MMAL_FOURCC('S', '4', '2', '2') 44193323Sed#define MMAL_ENCODING_YUYV MMAL_FOURCC('Y', 'U', 'Y', 'V') 45193323Sed#define MMAL_ENCODING_YVYU MMAL_FOURCC('Y', 'V', 'Y', 'U') 46212793Sdim#define MMAL_ENCODING_UYVY MMAL_FOURCC('U', 'Y', 'V', 'Y') 47193323Sed#define MMAL_ENCODING_VYUY MMAL_FOURCC('V', 'Y', 'U', 'Y') 48193323Sed#define MMAL_ENCODING_NV12 MMAL_FOURCC('N', 'V', '1', '2') 49193323Sed#define MMAL_ENCODING_NV21 MMAL_FOURCC('N', 'V', '2', '1') 50193323Sed#define MMAL_ENCODING_ARGB MMAL_FOURCC('A', 'R', 'G', 'B') 51193323Sed#define MMAL_ENCODING_RGBA MMAL_FOURCC('R', 'G', 'B', 'A') 52193323Sed#define MMAL_ENCODING_ABGR MMAL_FOURCC('A', 'B', 'G', 'R') 53193323Sed#define MMAL_ENCODING_BGRA MMAL_FOURCC('B', 'G', 'R', 'A') 54193323Sed#define MMAL_ENCODING_RGB16 MMAL_FOURCC('R', 'G', 'B', '2') 55212793Sdim#define MMAL_ENCODING_RGB24 MMAL_FOURCC('R', 'G', 'B', '3') 56212793Sdim#define MMAL_ENCODING_RGB32 MMAL_FOURCC('R', 'G', 'B', '4') 57207618Srdivacky#define MMAL_ENCODING_BGR16 MMAL_FOURCC('B', 'G', 'R', '2') 58193323Sed#define MMAL_ENCODING_BGR24 MMAL_FOURCC('B', 'G', 'R', '3') 59193323Sed#define MMAL_ENCODING_BGR32 MMAL_FOURCC('B', 'G', 'R', '4') 60193323Sed 61193323Sed/** SAND Video (YUVUV128) format, native format understood by VideoCore. 62212793Sdim * This format is *not* opaque - if requested you will receive full frames 63212793Sdim * of YUV_UV video. 64207618Srdivacky */ 65193323Sed#define MMAL_ENCODING_YUVUV128 MMAL_FOURCC('S', 'A', 'N', 'D') 66193323Sed 67193323Sed/** VideoCore opaque image format, image handles are returned to 68198090Srdivacky * the host but not the actual image data. 69198090Srdivacky */ 70193323Sed#define MMAL_ENCODING_OPAQUE MMAL_FOURCC('O', 'P', 'Q', 'V') 71212793Sdim 72193323Sed/** An EGL image handle 73193323Sed */ 74193323Sed#define MMAL_ENCODING_EGL_IMAGE MMAL_FOURCC('E', 'G', 'L', 'I') 75193323Sed 76193323Sed/* }@ */ 77198090Srdivacky 78193323Sed/** \name Pre-defined audio encodings */ 79198090Srdivacky/* @{ */ 80198090Srdivacky#define MMAL_ENCODING_PCM_UNSIGNED_BE MMAL_FOURCC('P', 'C', 'M', 'U') 81193323Sed#define MMAL_ENCODING_PCM_UNSIGNED_LE MMAL_FOURCC('p', 'c', 'm', 'u') 82193323Sed#define MMAL_ENCODING_PCM_SIGNED_BE MMAL_FOURCC('P', 'C', 'M', 'S') 83193323Sed#define MMAL_ENCODING_PCM_SIGNED_LE MMAL_FOURCC('p', 'c', 'm', 's') 84193323Sed#define MMAL_ENCODING_PCM_FLOAT_BE MMAL_FOURCC('P', 'C', 'M', 'F') 85193323Sed#define MMAL_ENCODING_PCM_FLOAT_LE MMAL_FOURCC('p', 'c', 'm', 'f') 86198090Srdivacky 87198090Srdivacky/* Pre-defined H264 encoding variants */ 88193323Sed 89212793Sdim/** ISO 14496-10 Annex B byte stream format */ 90193323Sed#define MMAL_ENCODING_VARIANT_H264_DEFAULT 0 91193323Sed/** ISO 14496-15 AVC stream format */ 92193323Sed#define MMAL_ENCODING_VARIANT_H264_AVC1 MMAL_FOURCC('A', 'V', 'C', '1') 93193323Sed/** Implicitly delineated NAL units without emulation prevention */ 94193323Sed#define MMAL_ENCODING_VARIANT_H264_RAW MMAL_FOURCC('R', 'A', 'W', ' ') 95193323Sed 96193323Sed/** \defgroup MmalColorSpace List of pre-defined video color spaces 97193323Sed * This defines a list of common color spaces. This list isn't exhaustive and 98193323Sed * is only provided as a convenience to avoid clients having to use FourCC 99193323Sed * codes directly. However components are allowed to define and use their own 100193323Sed * FourCC codes. 101193323Sed */ 102193323Sed/* @{ */ 103193323Sed 104193323Sed/** Unknown color space */ 105193323Sed#define MMAL_COLOR_SPACE_UNKNOWN 0 106193323Sed/** ITU-R BT.601-5 [SDTV] */ 107193323Sed#define MMAL_COLOR_SPACE_ITUR_BT601 MMAL_FOURCC('Y', '6', '0', '1') 108193323Sed/** ITU-R BT.709-3 [HDTV] */ 109212793Sdim#define MMAL_COLOR_SPACE_ITUR_BT709 MMAL_FOURCC('Y', '7', '0', '9') 110193323Sed/** JPEG JFIF */ 111193323Sed#define MMAL_COLOR_SPACE_JPEG_JFIF MMAL_FOURCC('Y', 'J', 'F', 'I') 112212793Sdim/** Title 47 Code of Federal Regulations (2003) 73.682 (a) (20) */ 113193323Sed#define MMAL_COLOR_SPACE_FCC MMAL_FOURCC('Y', 'F', 'C', 'C') 114193323Sed/** Society of Motion Picture and Television Engineers 240M (1999) */ 115207618Srdivacky#define MMAL_COLOR_SPACE_SMPTE240M MMAL_FOURCC('Y', '2', '4', '0') 116207618Srdivacky/** ITU-R BT.470-2 System M */ 117207618Srdivacky#define MMAL_COLOR_SPACE_BT470_2_M MMAL_FOURCC('Y', '_', '_', 'M') 118193323Sed/** ITU-R BT.470-2 System BG */ 119193323Sed#define MMAL_COLOR_SPACE_BT470_2_BG MMAL_FOURCC('Y', '_', 'B', 'G') 120193323Sed/** JPEG JFIF, but with 16..255 luma */ 121193323Sed#define MMAL_COLOR_SPACE_JFIF_Y16_255 MMAL_FOURCC('Y', 'Y', '1', '6') 122193323Sed/* @} MmalColorSpace List */ 123193323Sed 124193323Sed#endif /* MMAL_ENCODINGS_H */ 125207618Srdivacky