Libav 0.7.1
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 Libav.
00005  *
00006  * Libav 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  * Libav 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 Libav; 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 
00032 #include "libavutil/avconfig.h"
00033 
00060 enum PixelFormat {
00061     PIX_FMT_NONE= -1,
00062     PIX_FMT_YUV420P,   
00063     PIX_FMT_YUYV422,   
00064     PIX_FMT_RGB24,     
00065     PIX_FMT_BGR24,     
00066     PIX_FMT_YUV422P,   
00067     PIX_FMT_YUV444P,   
00068     PIX_FMT_YUV410P,   
00069     PIX_FMT_YUV411P,   
00070     PIX_FMT_GRAY8,     
00071     PIX_FMT_MONOWHITE, 
00072     PIX_FMT_MONOBLACK, 
00073     PIX_FMT_PAL8,      
00074     PIX_FMT_YUVJ420P,  
00075     PIX_FMT_YUVJ422P,  
00076     PIX_FMT_YUVJ444P,  
00077     PIX_FMT_XVMC_MPEG2_MC,
00078     PIX_FMT_XVMC_MPEG2_IDCT,
00079     PIX_FMT_UYVY422,   
00080     PIX_FMT_UYYVYY411, 
00081     PIX_FMT_BGR8,      
00082     PIX_FMT_BGR4,      
00083     PIX_FMT_BGR4_BYTE, 
00084     PIX_FMT_RGB8,      
00085     PIX_FMT_RGB4,      
00086     PIX_FMT_RGB4_BYTE, 
00087     PIX_FMT_NV12,      
00088     PIX_FMT_NV21,      
00089 
00090     PIX_FMT_ARGB,      
00091     PIX_FMT_RGBA,      
00092     PIX_FMT_ABGR,      
00093     PIX_FMT_BGRA,      
00094 
00095     PIX_FMT_GRAY16BE,  
00096     PIX_FMT_GRAY16LE,  
00097     PIX_FMT_YUV440P,   
00098     PIX_FMT_YUVJ440P,  
00099     PIX_FMT_YUVA420P,  
00100     PIX_FMT_VDPAU_H264,
00101     PIX_FMT_VDPAU_MPEG1,
00102     PIX_FMT_VDPAU_MPEG2,
00103     PIX_FMT_VDPAU_WMV3,
00104     PIX_FMT_VDPAU_VC1, 
00105     PIX_FMT_RGB48BE,   
00106     PIX_FMT_RGB48LE,   
00107 
00108     PIX_FMT_RGB565BE,  
00109     PIX_FMT_RGB565LE,  
00110     PIX_FMT_RGB555BE,  
00111     PIX_FMT_RGB555LE,  
00112 
00113     PIX_FMT_BGR565BE,  
00114     PIX_FMT_BGR565LE,  
00115     PIX_FMT_BGR555BE,  
00116     PIX_FMT_BGR555LE,  
00117 
00118     PIX_FMT_VAAPI_MOCO, 
00119     PIX_FMT_VAAPI_IDCT, 
00120     PIX_FMT_VAAPI_VLD,  
00121 
00122     PIX_FMT_YUV420P16LE,  
00123     PIX_FMT_YUV420P16BE,  
00124     PIX_FMT_YUV422P16LE,  
00125     PIX_FMT_YUV422P16BE,  
00126     PIX_FMT_YUV444P16LE,  
00127     PIX_FMT_YUV444P16BE,  
00128     PIX_FMT_VDPAU_MPEG4,  
00129     PIX_FMT_DXVA2_VLD,    
00130 
00131     PIX_FMT_RGB444LE,  
00132     PIX_FMT_RGB444BE,  
00133     PIX_FMT_BGR444LE,  
00134     PIX_FMT_BGR444BE,  
00135     PIX_FMT_Y400A,     
00136     PIX_FMT_BGR48BE,   
00137     PIX_FMT_BGR48LE,   
00138     PIX_FMT_YUV420P9BE, 
00139     PIX_FMT_YUV420P9LE, 
00140     PIX_FMT_YUV420P10BE,
00141     PIX_FMT_YUV420P10LE,
00142     PIX_FMT_YUV422P10BE,
00143     PIX_FMT_YUV422P10LE,
00144     PIX_FMT_YUV444P9BE, 
00145     PIX_FMT_YUV444P9LE, 
00146     PIX_FMT_YUV444P10BE,
00147     PIX_FMT_YUV444P10LE,
00148     PIX_FMT_NB,        
00149 };
00150 
00151 #if AV_HAVE_BIGENDIAN
00152 #   define PIX_FMT_NE(be, le) PIX_FMT_##be
00153 #else
00154 #   define PIX_FMT_NE(be, le) PIX_FMT_##le
00155 #endif
00156 
00157 #define PIX_FMT_RGB32   PIX_FMT_NE(ARGB, BGRA)
00158 #define PIX_FMT_RGB32_1 PIX_FMT_NE(RGBA, ABGR)
00159 #define PIX_FMT_BGR32   PIX_FMT_NE(ABGR, RGBA)
00160 #define PIX_FMT_BGR32_1 PIX_FMT_NE(BGRA, ARGB)
00161 
00162 #define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16BE, GRAY16LE)
00163 #define PIX_FMT_RGB48  PIX_FMT_NE(RGB48BE,  RGB48LE)
00164 #define PIX_FMT_RGB565 PIX_FMT_NE(RGB565BE, RGB565LE)
00165 #define PIX_FMT_RGB555 PIX_FMT_NE(RGB555BE, RGB555LE)
00166 #define PIX_FMT_RGB444 PIX_FMT_NE(RGB444BE, RGB444LE)
00167 #define PIX_FMT_BGR48  PIX_FMT_NE(BGR48BE,  BGR48LE)
00168 #define PIX_FMT_BGR565 PIX_FMT_NE(BGR565BE, BGR565LE)
00169 #define PIX_FMT_BGR555 PIX_FMT_NE(BGR555BE, BGR555LE)
00170 #define PIX_FMT_BGR444 PIX_FMT_NE(BGR444BE, BGR444LE)
00171 
00172 #define PIX_FMT_YUV420P9  PIX_FMT_NE(YUV420P9BE , YUV420P9LE)
00173 #define PIX_FMT_YUV444P9  PIX_FMT_NE(YUV444P9BE , YUV444P9LE)
00174 #define PIX_FMT_YUV420P10 PIX_FMT_NE(YUV420P10BE, YUV420P10LE)
00175 #define PIX_FMT_YUV422P10 PIX_FMT_NE(YUV422P10BE, YUV422P10LE)
00176 #define PIX_FMT_YUV444P10 PIX_FMT_NE(YUV444P10BE, YUV444P10LE)
00177 #define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
00178 #define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
00179 #define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
00180 
00181 #endif /* AVUTIL_PIXFMT_H */