00001 /***************************************************************************** 00002 * vout_pictures.h : picture management definitions 00003 ***************************************************************************** 00004 * Copyright (C) 2002-2004 the VideoLAN team 00005 * $Id: vout_pictures.h 11664 2005-07-09 06:17:09Z courmisch $ 00006 * 00007 * Authors: Samuel Hocevar <[email protected]> 00008 * 00009 * This program is free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2 of the License, or 00012 * (at your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with this program; if not, write to the Free Software 00021 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. 00022 *****************************************************************************/ 00023 00024 /***************************************************************************** 00025 * Fourcc definitions that we can handle internally 00026 *****************************************************************************/ 00027 00028 /* Packed RGB for 8bpp */ 00029 #define FOURCC_BI_RGB 0x00000000 00030 #define FOURCC_RGB2 VLC_FOURCC('R','G','B','2') 00031 00032 /* Packed RGB for 16, 24, 32bpp */ 00033 #define FOURCC_BI_BITFIELDS 0x00000003 00034 00035 /* Packed RGB 15bpp, usually 0x7c00, 0x03e0, 0x001f */ 00036 #define FOURCC_RV15 VLC_FOURCC('R','V','1','5') 00037 00038 /* Packed RGB 16bpp, usually 0xf800, 0x07e0, 0x001f */ 00039 #define FOURCC_RV16 VLC_FOURCC('R','V','1','6') 00040 00041 /* Packed RGB 24bpp, usually 0x00ff0000, 0x0000ff00, 0x000000ff */ 00042 #define FOURCC_RV24 VLC_FOURCC('R','V','2','4') 00043 00044 /* Packed RGB 32bpp, usually 0x00ff0000, 0x0000ff00, 0x000000ff */ 00045 #define FOURCC_RV32 VLC_FOURCC('R','V','3','2') 00046 00047 /* Planar YUV 4:2:0, Y:U:V */ 00048 #define FOURCC_I420 VLC_FOURCC('I','4','2','0') 00049 #define FOURCC_IYUV VLC_FOURCC('I','Y','U','V') 00050 #define FOURCC_J420 VLC_FOURCC('J','4','2','0') 00051 00052 /* Planar YUV 4:2:0, Y:V:U */ 00053 #define FOURCC_YV12 VLC_FOURCC('Y','V','1','2') 00054 00055 /* Packed YUV 4:2:2, U:Y:V:Y, interlaced */ 00056 #define FOURCC_IUYV VLC_FOURCC('I','U','Y','V') 00057 00058 /* Packed YUV 4:2:2, U:Y:V:Y */ 00059 #define FOURCC_UYVY VLC_FOURCC('U','Y','V','Y') 00060 #define FOURCC_UYNV VLC_FOURCC('U','Y','N','V') 00061 #define FOURCC_Y422 VLC_FOURCC('Y','4','2','2') 00062 00063 /* Packed YUV 4:2:2, U:Y:V:Y, reverted */ 00064 #define FOURCC_cyuv VLC_FOURCC('c','y','u','v') 00065 00066 /* Packed YUV 4:2:2, Y:U:Y:V */ 00067 #define FOURCC_YUY2 VLC_FOURCC('Y','U','Y','2') 00068 #define FOURCC_YUNV VLC_FOURCC('Y','U','N','V') 00069 00070 /* Packed YUV 4:2:2, Y:V:Y:U */ 00071 #define FOURCC_YVYU VLC_FOURCC('Y','V','Y','U') 00072 00073 /* Packed YUV 2:1:1, Y:U:Y:V */ 00074 #define FOURCC_Y211 VLC_FOURCC('Y','2','1','1') 00075 00076 /* Planar YUV 4:1:1, Y:U:V */ 00077 #define FOURCC_I411 VLC_FOURCC('I','4','1','1') 00078 00079 /* Planar YUV 4:1:0, Y:U:V */ 00080 #define FOURCC_I410 VLC_FOURCC('I','4','1','0') 00081 #define FOURCC_YVU9 VLC_FOURCC('Y','V','U','9') 00082 00083 /* Planar Y, packed UV, from Matrox */ 00084 #define FOURCC_YMGA VLC_FOURCC('Y','M','G','A') 00085 00086 /* Planar 4:2:2, Y:U:V */ 00087 #define FOURCC_I422 VLC_FOURCC('I','4','2','2') 00088 #define FOURCC_J422 VLC_FOURCC('J','4','2','2') 00089 00090 /* Planar 4:4:4, Y:U:V */ 00091 #define FOURCC_I444 VLC_FOURCC('I','4','4','4') 00092 #define FOURCC_J444 VLC_FOURCC('J','4','4','4') 00093 00094 /* Planar 4:4:4:4 Y:U:V:A */ 00095 #define FOURCC_YUVA VLC_FOURCC('Y','U','V','A') 00096 00097 /* Palettized YUV with palette element Y:U:V:A */ 00098 #define FOURCC_YUVP VLC_FOURCC('Y','U','V','P')