* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; either version 2 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
-
-
+
+
#ifndef BCCMODELS_H
#define BCCMODELS_H
// Must match colormodels.h in quicktime
#ifndef BC_TRANSPARENCY
-
-#define BC_TRANSPARENCY 0
-#define BC_COMPRESSED 1
-#define BC_RGB8 2
-#define BC_RGB565 3
-#define BC_BGR565 4
-#define BC_BGR888 5
-#define BC_BGR8888 6
+enum BC_CModel {
+ BC_TRANSPARENCY = 0,
+ BC_COMPRESSED = 1,
+ BC_RGB8 = 2,
+ BC_RGB565 = 3,
+ BC_BGR565 = 4,
+ BC_BGR888 = 5,
+ BC_BGR8888 = 6,
// Working bitmaps are packed to simplify processing
-#define BC_RGB888 9
-#define BC_RGBA8888 10
-#define BC_ARGB8888 20
-#define BC_ABGR8888 21
-#define BC_RGB161616 11
-#define BC_RGBA16161616 12
-#define BC_YUV888 13
-#define BC_YUVA8888 14
-#define BC_YUV161616 15
-#define BC_YUVA16161616 16
-#define BC_UVY422 18
-#define BC_YUV422 19
-#define BC_A8 22
-#define BC_A16 23
-#define BC_A_FLOAT 31
-#define BC_YUV101010 24
-#define BC_VYU888 25
-#define BC_UYVA8888 26
-#define BC_RGB_FLOAT 29
-#define BC_RGBA_FLOAT 30
+ BC_RGB888 = 9,
+ BC_RGBA8888 = 10,
+ BC_ARGB8888 = 20,
+ BC_ABGR8888 = 21,
+ BC_RGB161616 = 11,
+ BC_RGBA16161616 = 12,
+ BC_YUV888 = 13,
+ BC_YUVA8888 = 14,
+ BC_YUV161616 = 15,
+ BC_YUVA16161616 = 16,
+ BC_UVY422 = 18,
+ BC_YUV422 = 19,
+ BC_A8 = 22,
+ BC_A16 = 23,
+ BC_A_FLOAT = 31,
+ BC_YUV101010 = 24,
+ BC_VYU888 = 25,
+ BC_UYVA8888 = 26,
+ BC_RGB_FLOAT = 29,
+ BC_RGBA_FLOAT = 30,
// Planar
-#define BC_YUV420P 7
-#define BC_YUV422P 8
-#define BC_YUV444P 27
-#define BC_YUV411P 17
-#define BC_YUV410P 28
-#define BC_RGB_FLOATP 32
-#define BC_RGBA_FLOATP 33
-#define BC_YUV420PI 34
+ BC_YUV420P = 7,
+ BC_YUV422P = 8,
+ BC_YUV444P = 27,
+ BC_YUV411P = 17,
+ BC_YUV410P = 28,
+ BC_RGB_FLOATP = 32,
+ BC_RGBA_FLOATP = 33,
+ BC_YUV420PI = 34,
+ BC_GBRP = 38,
+// only used in intermediate ffmpeg xfers
+ BC_AYUV16161616 = 35,
+ BC_GREY8 = 36,
+ BC_GREY16 = 37,
+};
// Colormodels purely used by Quicktime are done in Quicktime.
unsigned char *in_u_plane,
unsigned char *in_v_plane,
int in_x, /* Dimensions to capture from input frame */
- int in_y,
- int in_w,
+ int in_y,
+ int in_w,
int in_h,
int out_x, /* Dimensions to project on output frame */
- int out_y,
- int out_w,
+ int out_y,
+ int out_w,
int out_h,
- int in_colormodel,
+ int in_colormodel,
int out_colormodel,
int bg_color, /* When transfering BC_RGBA8888 to non-alpha this is the background color in 0xRRGGBB hex */
int in_rowspan, /* For planar use the luma rowspan */
int in_x, int in_y, int in_w, int in_h, int in_rowspan,
int bg_color);
- static void init_yuv();
static int bc_to_x(int color_model);
static void bcxfer_stop_slicers();
};