wok-next diff ffmpeg-dev/stuff/avutil.h @ rev 2955
Fix: nicotine+ (category)
author | Claudinei Pereira <claudinei@slitaz.org> |
---|---|
date | Fri May 08 14:21:20 2009 +0000 (2009-05-08) |
parents | |
children | 7a3e60dd9305 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/ffmpeg-dev/stuff/avutil.h Fri May 08 14:21:20 2009 +0000 1.3 @@ -0,0 +1,156 @@ 1.4 +/* 1.5 + * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> 1.6 + * 1.7 + * This file is part of FFmpeg. 1.8 + * 1.9 + * FFmpeg is free software; you can redistribute it and/or 1.10 + * modify it under the terms of the GNU Lesser General Public 1.11 + * License as published by the Free Software Foundation; either 1.12 + * version 2.1 of the License, or (at your option) any later version. 1.13 + * 1.14 + * FFmpeg is distributed in the hope that it will be useful, 1.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 1.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1.17 + * Lesser General Public License for more details. 1.18 + * 1.19 + * You should have received a copy of the GNU Lesser General Public 1.20 + * License along with FFmpeg; if not, write to the Free Software 1.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 1.22 + */ 1.23 + 1.24 +#ifndef AVUTIL_AVUTIL_H 1.25 +#define AVUTIL_AVUTIL_H 1.26 + 1.27 +/** 1.28 + * @file libavutil/avutil.h 1.29 + * external API header 1.30 + */ 1.31 + 1.32 + 1.33 +#define AV_STRINGIFY(s) AV_TOSTRING(s) 1.34 +#define AV_TOSTRING(s) #s 1.35 + 1.36 +#define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c) 1.37 +#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c 1.38 +#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) 1.39 + 1.40 +#define LIBAVUTIL_VERSION_MAJOR 49 1.41 +#define LIBAVUTIL_VERSION_MINOR 14 1.42 +#define LIBAVUTIL_VERSION_MICRO 0 1.43 + 1.44 +#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ 1.45 + LIBAVUTIL_VERSION_MINOR, \ 1.46 + LIBAVUTIL_VERSION_MICRO) 1.47 +#define LIBAVUTIL_VERSION AV_VERSION(LIBAVUTIL_VERSION_MAJOR, \ 1.48 + LIBAVUTIL_VERSION_MINOR, \ 1.49 + LIBAVUTIL_VERSION_MICRO) 1.50 +#define LIBAVUTIL_BUILD LIBAVUTIL_VERSION_INT 1.51 + 1.52 +#define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) 1.53 + 1.54 +/** 1.55 + * Returns the LIBAVUTIL_VERSION_INT constant. 1.56 + */ 1.57 +unsigned avutil_version(void); 1.58 + 1.59 +#include "common.h" 1.60 +#include "mathematics.h" 1.61 +#include "rational.h" 1.62 +#include "intfloat_readwrite.h" 1.63 +#include "log.h" 1.64 + 1.65 +/** 1.66 + * Pixel format. Notes: 1.67 + * 1.68 + * PIX_FMT_RGB32 is handled in an endian-specific manner. An RGBA 1.69 + * color is put together as: 1.70 + * (A << 24) | (R << 16) | (G << 8) | B 1.71 + * This is stored as BGRA on little-endian CPU architectures and ARGB on 1.72 + * big-endian CPUs. 1.73 + * 1.74 + * When the pixel format is palettized RGB (PIX_FMT_PAL8), the palettized 1.75 + * image data is stored in AVFrame.data[0]. The palette is transported in 1.76 + * AVFrame.data[1], is 1024 bytes long (256 4-byte entries) and is 1.77 + * formatted the same as in PIX_FMT_RGB32 described above (i.e., it is 1.78 + * also endian-specific). Note also that the individual RGB palette 1.79 + * components stored in AVFrame.data[1] should be in the range 0..255. 1.80 + * This is important as many custom PAL8 video codecs that were designed 1.81 + * to run on the IBM VGA graphics adapter use 6-bit palette components. 1.82 + * 1.83 + * For all the 8bit per pixel formats, an RGB32 palette is in data[1] like 1.84 + * for pal8. This palette is filled in automatically by the function 1.85 + * allocating the picture. 1.86 + */ 1.87 +enum PixelFormat { 1.88 + PIX_FMT_NONE= -1, 1.89 + PIX_FMT_YUV420P, ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples) 1.90 + PIX_FMT_YUYV422, ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr 1.91 + PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB... 1.92 + PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR... 1.93 + PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) 1.94 + PIX_FMT_YUV444P, ///< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples) 1.95 + PIX_FMT_RGB32, ///< packed RGB 8:8:8, 32bpp, (msb)8A 8R 8G 8B(lsb), in CPU endianness 1.96 + PIX_FMT_YUV410P, ///< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples) 1.97 + PIX_FMT_YUV411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) 1.98 + PIX_FMT_RGB565, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), in CPU endianness 1.99 + PIX_FMT_RGB555, ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), in CPU endianness, most significant bit to 0 1.100 + PIX_FMT_GRAY8, ///< Y , 8bpp 1.101 + PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black 1.102 + PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white 1.103 + PIX_FMT_PAL8, ///< 8 bit with PIX_FMT_RGB32 palette 1.104 + PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG) 1.105 + PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG) 1.106 + PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG) 1.107 + PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing 1.108 + PIX_FMT_XVMC_MPEG2_IDCT, 1.109 + PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 1.110 + PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3 1.111 + PIX_FMT_BGR32, ///< packed RGB 8:8:8, 32bpp, (msb)8A 8B 8G 8R(lsb), in CPU endianness 1.112 + PIX_FMT_BGR565, ///< packed RGB 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), in CPU endianness 1.113 + PIX_FMT_BGR555, ///< packed RGB 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), in CPU endianness, most significant bit to 1 1.114 + PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb) 1.115 + PIX_FMT_BGR4, ///< packed RGB 1:2:1, 4bpp, (msb)1B 2G 1R(lsb) 1.116 + PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb) 1.117 + PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb) 1.118 + PIX_FMT_RGB4, ///< packed RGB 1:2:1, 4bpp, (msb)1R 2G 1B(lsb) 1.119 + PIX_FMT_RGB4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb) 1.120 + PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 for UV 1.121 + PIX_FMT_NV21, ///< as above, but U and V bytes are swapped 1.122 + 1.123 + PIX_FMT_RGB32_1, ///< packed RGB 8:8:8, 32bpp, (msb)8R 8G 8B 8A(lsb), in CPU endianness 1.124 + PIX_FMT_BGR32_1, ///< packed RGB 8:8:8, 32bpp, (msb)8B 8G 8R 8A(lsb), in CPU endianness 1.125 + 1.126 + PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian 1.127 + PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian 1.128 + PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples) 1.129 + PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG) 1.130 + PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples) 1.131 + PIX_FMT_VDPAU_H264,///< H.264 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers 1.132 + PIX_FMT_VDPAU_MPEG1,///< MPEG-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers 1.133 + PIX_FMT_VDPAU_MPEG2,///< MPEG-2 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers 1.134 + PIX_FMT_VDPAU_WMV3,///< WMV3 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers 1.135 + PIX_FMT_VDPAU_VC1, ///< VC-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers 1.136 + PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions 1.137 +}; 1.138 + 1.139 +#ifdef WORDS_BIGENDIAN 1.140 +#define PIX_FMT_RGBA PIX_FMT_RGB32_1 1.141 +#define PIX_FMT_BGRA PIX_FMT_BGR32_1 1.142 +#define PIX_FMT_ARGB PIX_FMT_RGB32 1.143 +#define PIX_FMT_ABGR PIX_FMT_BGR32 1.144 +#define PIX_FMT_GRAY16 PIX_FMT_GRAY16BE 1.145 +#else 1.146 +#define PIX_FMT_RGBA PIX_FMT_BGR32 1.147 +#define PIX_FMT_BGRA PIX_FMT_RGB32 1.148 +#define PIX_FMT_ARGB PIX_FMT_BGR32_1 1.149 +#define PIX_FMT_ABGR PIX_FMT_RGB32_1 1.150 +#define PIX_FMT_GRAY16 PIX_FMT_GRAY16LE 1.151 +#endif 1.152 + 1.153 +#if LIBAVUTIL_VERSION_INT < (50<<16) 1.154 +#define PIX_FMT_UYVY411 PIX_FMT_UYYVYY411 1.155 +#define PIX_FMT_RGBA32 PIX_FMT_RGB32 1.156 +#define PIX_FMT_YUV422 PIX_FMT_YUYV422 1.157 +#endif 1.158 + 1.159 +#endif /* AVUTIL_AVUTIL_H */