libquicktime: /tmp/tgz/libquicktime-1.1.3/include/quicktime/colormodels.h Source File

# colormodels.h

    00001 /*******************************************************************************
    00002  colormodels.h
    00003
    00004  libquicktime - A library for reading and writing quicktime/avi/mp4 files.
    00005  http://libquicktime.sourceforge.net
    00006
    00007  Copyright (C) 2002 Heroine Virtual Ltd.
    00008  Copyright (C) 2002-2007 Members of the libquicktime project.
    00009
    00010  This library is free software; you can redistribute it and/or modify it under
    00011  the terms of the GNU Lesser General Public License as published by the Free
    00012  Software Foundation; either version 2.1 of the License, or (at your option)
    00013  any later version.
    00014
    00015  This library is distributed in the hope that it will be useful, but WITHOUT
    00016  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    00017  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
    00018  details.
    00019
    00020  You should have received a copy of the GNU Lesser General Public License along
    00021  with this library; if not, write to the Free Software Foundation, Inc., 51
    00022  Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
    00023 *******************************************************************************/
    00024
    00025 #ifndef COLORMODELS_H
    00026 #define COLORMODELS_H
    00027
    00028 #pragma GCC visibility push(default)
    00029
    00038 // Colormodels
    00039 #define BC_COMPRESSED   1
    00040
    00047 #define BC_RGB565       2
    00048
    00055 #define BC_BGR565       3
    00056
    00062 #define BC_BGR888       4
    00063
    00069 #define BC_BGR8888      5
    00070
    00077 #define BC_RGB888       6
    00078
    00084 #define BC_RGBA8888     7
    00085
    00091 #define BC_RGB161616    8
    00092
    00098 #define BC_RGBA16161616 9
    00099
    00105 #define BC_YUVA8888     10
    00106
    00112 #define BC_YUV422       13
    00113 // Planar
    00114
    00121 #define BC_YUV420P      14
    00122
    00128 #define BC_YUV422P      15
    00129
    00135 #define BC_YUV444P      16
    00136
    00142 #define BC_YUV411P      17
    00143 /* JPEG scaled colormodels */
    00144
    00150 #define BC_YUVJ420P     18
    00151
    00157 #define BC_YUVJ422P     19
    00158
    00164 #define BC_YUVJ444P     20
    00165 /* 16 bit per component planar formats */
    00166
    00172 #define BC_YUV422P16    21
    00173
    00179 #define BC_YUV444P16    22
    00180
    00181 // Colormodels purely used by Quicktime are done in Quicktime.
    00182
    00183 // For communication with the X Server
    00184 #define FOURCC_YV12 0x32315659  /* YV12   YUV420P */
    00185 #define FOURCC_YUV2 0x32595559  /* YUV2   YUV422 */
    00186 #define FOURCC_I420 0x30323449  /* I420   Intel Indeo 4 */
    00187
    00188 // #undef RECLIP
    00189 // #define RECLIP(x, y, z) ((x) = ((x) < (y) ? (y) : ((x) > (z) ? (z) : (x))))
    00190
    00191 #ifdef __cplusplus
    00192 extern "C" {
    00193 #endif
    00194
    00195 int cmodel_calculate_pixelsize(int colormodel);
    00196 int cmodel_calculate_datasize(int w, int h, int bytes_per_line, int color_model);
    00197 int cmodel_calculate_max(int colormodel);
    00198 int cmodel_components(int colormodel);
    00199 int cmodel_is_yuv(int colormodel);
    00200
    00201 void cmodel_transfer(unsigned char **output_rows, /* Leave NULL if non existent */
    00202         unsigned char **input_rows,
    00203         int in_x,        /* Dimensions to capture from input frame */
    00204         int in_y,
    00205         int in_w,
    00206         int in_h,
    00207         int out_w,
    00208         int out_h,
    00209         int in_colormodel,
    00210         int out_colormodel,
    00211         int in_rowspan,       /* For planar use the luma rowspan */
    00212         int out_rowspan,      /* For planar use the luma rowspan */
    00213         int in_rowspan_uv,    /* Chroma rowspan */
    00214         int out_rowspan_uv    /* Chroma rowspan */);
    00215
    00216 int cmodel_bc_to_x(int color_model);
    00217 // Tell when to use plane arguments or row pointer arguments to functions
    00218 int cmodel_is_planar(int color_model);
    00219
    00220
    00221
    00222
    00223
    00224 #ifdef __cplusplus
    00225 }
    00226 #endif
    00227
    00228 #pragma GCC visibility pop
    00229
    00230 #endif