debian/tmp/usr/include/libavutil/pixfmt.h
Go to the documentation of this file.
00001 /*
00002  * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
00003  *
00004  * This file is part of FFmpeg.
00005  *
00006  * FFmpeg is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * FFmpeg is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with FFmpeg; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00019  */
00020 
00021 #ifndef AVUTIL_PIXFMT_H
00022 #define AVUTIL_PIXFMT_H
00023 
00030 #include "libavutil/avconfig.h"
00031 
00062 enum PixelFormat {
00063     PIX_FMT_NONE= -1,
00064     PIX_FMT_YUV420P,   
00065     PIX_FMT_YUYV422,   
00066     PIX_FMT_RGB24,     
00067     PIX_FMT_BGR24,     
00068     PIX_FMT_YUV422P,   
00069     PIX_FMT_YUV444P,   
00070     PIX_FMT_YUV410P,   
00071     PIX_FMT_YUV411P,   
00072     PIX_FMT_GRAY8,     
00073     PIX_FMT_MONOWHITE, 
00074     PIX_FMT_MONOBLACK, 
00075     PIX_FMT_PAL8,      
00076     PIX_FMT_YUVJ420P,  
00077     PIX_FMT_YUVJ422P,  
00078     PIX_FMT_YUVJ444P,  
00079     PIX_FMT_XVMC_MPEG2_MC,
00080     PIX_FMT_XVMC_MPEG2_IDCT,
00081     PIX_FMT_UYVY422,   
00082     PIX_FMT_UYYVYY411, 
00083     PIX_FMT_BGR8,      
00084     PIX_FMT_BGR4,      
00085     PIX_FMT_BGR4_BYTE, 
00086     PIX_FMT_RGB8,      
00087     PIX_FMT_RGB4,      
00088     PIX_FMT_RGB4_BYTE, 
00089     PIX_FMT_NV12,      
00090     PIX_FMT_NV21,      
00091 
00092     PIX_FMT_ARGB,      
00093     PIX_FMT_RGBA,      
00094     PIX_FMT_ABGR,      
00095     PIX_FMT_BGRA,      
00096 
00097     PIX_FMT_GRAY16BE,  
00098     PIX_FMT_GRAY16LE,  
00099     PIX_FMT_YUV440P,   
00100     PIX_FMT_YUVJ440P,  
00101     PIX_FMT_YUVA420P,  
00102     PIX_FMT_VDPAU_H264,
00103     PIX_FMT_VDPAU_MPEG1,
00104     PIX_FMT_VDPAU_MPEG2,
00105     PIX_FMT_VDPAU_WMV3,
00106     PIX_FMT_VDPAU_VC1, 
00107     PIX_FMT_RGB48BE,   
00108     PIX_FMT_RGB48LE,   
00109 
00110     PIX_FMT_RGB565BE,  
00111     PIX_FMT_RGB565LE,  
00112     PIX_FMT_RGB555BE,  
00113     PIX_FMT_RGB555LE,  
00114 
00115     PIX_FMT_BGR565BE,  
00116     PIX_FMT_BGR565LE,  
00117     PIX_FMT_BGR555BE,  
00118     PIX_FMT_BGR555LE,  
00119 
00120     PIX_FMT_VAAPI_MOCO, 
00121     PIX_FMT_VAAPI_IDCT, 
00122     PIX_FMT_VAAPI_VLD,  
00123 
00124     PIX_FMT_YUV420P16LE,  
00125     PIX_FMT_YUV420P16BE,  
00126     PIX_FMT_YUV422P16LE,  
00127     PIX_FMT_YUV422P16BE,  
00128     PIX_FMT_YUV444P16LE,  
00129     PIX_FMT_YUV444P16BE,  
00130     PIX_FMT_VDPAU_MPEG4,  
00131     PIX_FMT_DXVA2_VLD,    
00132 
00133     PIX_FMT_RGB444LE,  
00134     PIX_FMT_RGB444BE,  
00135     PIX_FMT_BGR444LE,  
00136     PIX_FMT_BGR444BE,  
00137     PIX_FMT_GRAY8A,    
00138     PIX_FMT_BGR48BE,   
00139     PIX_FMT_BGR48LE,   
00140 
00141     //the following 10 formats have the disadvantage of needing 1 format for each bit depth, thus
00142     //If you want to support multiple bit depths, then using PIX_FMT_YUV420P16* with the bpp stored seperately
00143     //is better
00144     PIX_FMT_YUV420P9BE, 
00145     PIX_FMT_YUV420P9LE, 
00146     PIX_FMT_YUV420P10BE,
00147     PIX_FMT_YUV420P10LE,
00148     PIX_FMT_YUV422P10BE,
00149     PIX_FMT_YUV422P10LE,
00150     PIX_FMT_YUV444P9BE, 
00151     PIX_FMT_YUV444P9LE, 
00152     PIX_FMT_YUV444P10BE,
00153     PIX_FMT_YUV444P10LE,
00154     PIX_FMT_YUV422P9BE, 
00155     PIX_FMT_YUV422P9LE, 
00156     PIX_FMT_VDA_VLD,    
00157 
00158 #ifdef AV_PIX_FMT_ABI_GIT_MASTER
00159     PIX_FMT_RGBA64BE,  
00160     PIX_FMT_RGBA64LE,  
00161     PIX_FMT_BGRA64BE,  
00162     PIX_FMT_BGRA64LE,  
00163 #endif
00164     PIX_FMT_GBRP,      
00165     PIX_FMT_GBRP9BE,   
00166     PIX_FMT_GBRP9LE,   
00167     PIX_FMT_GBRP10BE,  
00168     PIX_FMT_GBRP10LE,  
00169     PIX_FMT_GBRP16BE,  
00170     PIX_FMT_GBRP16LE,  
00171 
00172 #ifndef AV_PIX_FMT_ABI_GIT_MASTER
00173     PIX_FMT_RGBA64BE=0x123,  
00174     PIX_FMT_RGBA64LE,  
00175     PIX_FMT_BGRA64BE,  
00176     PIX_FMT_BGRA64LE,  
00177 #endif
00178     PIX_FMT_0RGB=0x123+4,      
00179     PIX_FMT_RGB0,      
00180     PIX_FMT_0BGR,      
00181     PIX_FMT_BGR0,      
00182     PIX_FMT_NB,        
00183 };
00184 
00185 #define PIX_FMT_Y400A PIX_FMT_GRAY8A
00186 #define PIX_FMT_GBR24P PIX_FMT_GBRP
00187 
00188 #if AV_HAVE_BIGENDIAN
00189 #   define PIX_FMT_NE(be, le) PIX_FMT_##be
00190 #else
00191 #   define PIX_FMT_NE(be, le) PIX_FMT_##le
00192 #endif
00193 
00194 #define PIX_FMT_RGB32   PIX_FMT_NE(ARGB, BGRA)
00195 #define PIX_FMT_RGB32_1 PIX_FMT_NE(RGBA, ABGR)
00196 #define PIX_FMT_BGR32   PIX_FMT_NE(ABGR, RGBA)
00197 #define PIX_FMT_BGR32_1 PIX_FMT_NE(BGRA, ARGB)
00198 #define PIX_FMT_0RGB32  PIX_FMT_NE(0RGB, BGR0)
00199 #define PIX_FMT_0BGR32  PIX_FMT_NE(0BGR, RGB0)
00200 
00201 #define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16BE, GRAY16LE)
00202 #define PIX_FMT_RGB48  PIX_FMT_NE(RGB48BE,  RGB48LE)
00203 #define PIX_FMT_RGB565 PIX_FMT_NE(RGB565BE, RGB565LE)
00204 #define PIX_FMT_RGB555 PIX_FMT_NE(RGB555BE, RGB555LE)
00205 #define PIX_FMT_RGB444 PIX_FMT_NE(RGB444BE, RGB444LE)
00206 #define PIX_FMT_BGR48  PIX_FMT_NE(BGR48BE,  BGR48LE)
00207 #define PIX_FMT_BGR565 PIX_FMT_NE(BGR565BE, BGR565LE)
00208 #define PIX_FMT_BGR555 PIX_FMT_NE(BGR555BE, BGR555LE)
00209 #define PIX_FMT_BGR444 PIX_FMT_NE(BGR444BE, BGR444LE)
00210 
00211 #define PIX_FMT_YUV420P9  PIX_FMT_NE(YUV420P9BE , YUV420P9LE)
00212 #define PIX_FMT_YUV422P9  PIX_FMT_NE(YUV422P9BE , YUV422P9LE)
00213 #define PIX_FMT_YUV444P9  PIX_FMT_NE(YUV444P9BE , YUV444P9LE)
00214 #define PIX_FMT_YUV420P10 PIX_FMT_NE(YUV420P10BE, YUV420P10LE)
00215 #define PIX_FMT_YUV422P10 PIX_FMT_NE(YUV422P10BE, YUV422P10LE)
00216 #define PIX_FMT_YUV444P10 PIX_FMT_NE(YUV444P10BE, YUV444P10LE)
00217 #define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
00218 #define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
00219 #define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
00220 
00221 #define PIX_FMT_RGBA64 PIX_FMT_NE(RGBA64BE, RGBA64LE)
00222 #define PIX_FMT_BGRA64 PIX_FMT_NE(BGRA64BE, BGRA64LE)
00223 #define PIX_FMT_GBRP9     PIX_FMT_NE(GBRP9BE ,    GBRP9LE)
00224 #define PIX_FMT_GBRP10    PIX_FMT_NE(GBRP10BE,    GBRP10LE)
00225 #define PIX_FMT_GBRP16    PIX_FMT_NE(GBRP16BE,    GBRP16LE)
00226 
00227 #endif /* AVUTIL_PIXFMT_H */