⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 colormodels.h

📁 这个库实现了录象功能
💻 H
字号:
/******************************************************************************* colormodels.h libquicktime - A library for reading and writing quicktime/avi/mp4 files. http://libquicktime.sourceforge.net Copyright (C) 2002 Heroine Virtual Ltd. Copyright (C) 2002-2007 Members of the libquicktime project. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA*******************************************************************************/  #ifndef COLORMODELS_H#define COLORMODELS_H#pragma GCC visibility push(default)/** \defgroup color Color handling   Libquicktime has a built in colormodel converter, which can do implicit colormodel   conversions while en-/decoding. It is, however, far from perfect: It is incomplete   (i.e. not all conversions are present), slow and sometimes inaccurate. Therefore,   there is a possibility to bypass internal colormodel conversions.*/// Colormodels#define BC_COMPRESSED   1/** \ingroup color    16 bit RGB. Each pixel is a uint16_t in native byte order. Color masks are:    for red: 0xf800, for green: 0x07e0, for blue: 0x001f*/#define BC_RGB565       2/** \ingroup color    16 bit BGR. Each pixel is a uint16_t in native byte order. Color masks are:    for red: 0x001f, for green: 0x07e0, for blue: 0xf800*/#define BC_BGR565       3/** \ingroup color    24 bit BGR. Each color is an uint8_t. Color order is BGR*/#define BC_BGR888       4/** \ingroup color 32 bit BGR. Each color is an uint8_t. Color order is BGRXBGRX, where X is unused*/#define BC_BGR8888      5/** \ingroup color    24 bit RGB. Each color is an uint8_t. Color order is RGB*/#define BC_RGB888       6/** \ingroup color    32 bit RGBA. Each color is an uint8_t. Color order is RGBARGBA*/#define BC_RGBA8888     7/** \ingroup color    48 bit RGB. Each color is an uint16_t in native byte order. Color order is RGB*/#define BC_RGB161616    8/** \ingroup color    64 bit RGBA. Each color is an uint16_t in native byte order. Color order is RGBA*/#define BC_RGBA16161616 9/** \ingroup color    Packed YCbCrA 4:4:4:4. Each component is an uint8_t. Component order is YUVA*/#define BC_YUVA8888     10/** \ingroup color    Packed YCbCr 4:2:2. Each component is an uint8_t. Component order is Y1 U1 Y2 V1*/#define BC_YUV422       13// Planar/** \ingroup color    Planar YCbCr 4:2:0. Each component is an uint8_t. Chroma placement is defined by    \ref lqt_chroma_placement_t*/#define BC_YUV420P      14/** \ingroup color    Planar YCbCr 4:2:2. Each component is an uint8_t*/#define BC_YUV422P      15/** \ingroup color    Planar YCbCr 4:4:4. Each component is an uint8_t*/#define BC_YUV444P      16/** \ingroup color    Planar YCbCr 4:1:1. Each component is an uint8_t*/#define BC_YUV411P      17/* JPEG scaled colormodels *//** \ingroup color    Planar YCbCr 4:2:0. Each component is an uint8_t, luma and chroma values are full range (0x00 .. 0xff)*/#define BC_YUVJ420P     18/** \ingroup color    Planar YCbCr 4:2:2. Each component is an uint8_t, luma and chroma values are full range (0x00 .. 0xff)*/#define BC_YUVJ422P     19/** \ingroup color    Planar YCbCr 4:4:4. Each component is an uint8_t, luma and chroma values are full range (0x00 .. 0xff)*/#define BC_YUVJ444P     20/* 16 bit per component planar formats *//** \ingroup color    16 bit Planar YCbCr 4:2:2. Each component is an uint16_t in native byte order.*/#define BC_YUV422P16    21/** \ingroup color    16 bit Planar YCbCr 4:4:4. Each component is an uint16_t in native byte order.*/#define BC_YUV444P16    22// Colormodels purely used by Quicktime are done in Quicktime.// For communication with the X Server#define FOURCC_YV12 0x32315659  /* YV12   YUV420P */#define FOURCC_YUV2 0x32595559  /* YUV2   YUV422 */#define FOURCC_I420 0x30323449  /* I420   Intel Indeo 4 */// #undef RECLIP// #define RECLIP(x, y, z) ((x) = ((x) < (y) ? (y) : ((x) > (z) ? (z) : (x))))#ifdef __cplusplusextern "C" {#endifint cmodel_calculate_pixelsize(int colormodel);int cmodel_calculate_datasize(int w, int h, int bytes_per_line, int color_model);int cmodel_calculate_max(int colormodel);int cmodel_components(int colormodel);int cmodel_is_yuv(int colormodel);void cmodel_transfer(unsigned char **output_rows, /* Leave NULL if non existent */	unsigned char **input_rows,	int in_x,        /* Dimensions to capture from input frame */	int in_y, 	int in_w, 	int in_h,	int out_w, 	int out_h,	int in_colormodel, 	int out_colormodel,	int in_rowspan,       /* For planar use the luma rowspan */        int out_rowspan,      /* For planar use the luma rowspan */        int in_rowspan_uv,    /* Chroma rowspan */        int out_rowspan_uv    /* Chroma rowspan */);     int cmodel_bc_to_x(int color_model);// Tell when to use plane arguments or row pointer arguments to functionsint cmodel_is_planar(int color_model);#ifdef __cplusplus}#endif#pragma GCC visibility pop#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -