From 031f05fd008e2f9d69802c87b8d53b61f540f073 Mon Sep 17 00:00:00 2001 From: "fbarchard@google.com" Date: Sun, 19 May 2013 18:32:45 +0000 Subject: [PATCH] Add OSX fourcc for 32 and 24 bit big endian formats, using by camtwist BUG=229 TEST=untested Review URL: https://webrtc-codereview.appspot.com/1506004 git-svn-id: http://libyuv.googlecode.com/svn/trunk@698 16f28f9a-4ce2-e073-06de-1de4eb20be90 --- README.chromium | 2 +- include/libyuv/version.h | 2 +- include/libyuv/video_common.h | 8 ++++++-- source/video_common.cc | 2 ++ unit_test/video_common_test.cc | 2 ++ 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/README.chromium b/README.chromium index f36dd508d..ba40d16d4 100644 --- a/README.chromium +++ b/README.chromium @@ -1,6 +1,6 @@ Name: libyuv URL: http://code.google.com/p/libyuv/ -Version: 697 +Version: 698 License: BSD License File: LICENSE diff --git a/include/libyuv/version.h b/include/libyuv/version.h index e314af15e..aa0515498 100644 --- a/include/libyuv/version.h +++ b/include/libyuv/version.h @@ -11,6 +11,6 @@ #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #define INCLUDE_LIBYUV_VERSION_H_ -#define LIBYUV_VERSION 697 +#define LIBYUV_VERSION 698 #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT diff --git a/include/libyuv/video_common.h b/include/libyuv/video_common.h index d1a65b7ea..d118cacfb 100644 --- a/include/libyuv/video_common.h +++ b/include/libyuv/video_common.h @@ -92,19 +92,21 @@ enum FourCC { FOURCC_J420 = FOURCC('J', '4', '2', '0'), FOURCC_J400 = FOURCC('J', '4', '0', '0'), - // 12 Auxiliary aliases. CanonicalFourCC() maps these to canonical fourcc. + // 14 Auxiliary aliases. CanonicalFourCC() maps these to canonical fourcc. FOURCC_IYUV = FOURCC('I', 'Y', 'U', 'V'), // Alias for I420. FOURCC_YU16 = FOURCC('Y', 'U', '1', '6'), // Alias for I422. FOURCC_YU24 = FOURCC('Y', 'U', '2', '4'), // Alias for I444. FOURCC_YUYV = FOURCC('Y', 'U', 'Y', 'V'), // Alias for YUY2. FOURCC_YUVS = FOURCC('y', 'u', 'v', 's'), // Alias for YUY2 on Mac. FOURCC_HDYC = FOURCC('H', 'D', 'Y', 'C'), // Alias for UYVY. - FOURCC_2VUY = FOURCC('2', 'v', 'u', 'y'), // Alias for UYVY. + FOURCC_2VUY = FOURCC('2', 'v', 'u', 'y'), // Alias for UYVY on Mac. FOURCC_JPEG = FOURCC('J', 'P', 'E', 'G'), // Alias for MJPG. FOURCC_DMB1 = FOURCC('d', 'm', 'b', '1'), // Alias for MJPG on Mac. FOURCC_BA81 = FOURCC('B', 'A', '8', '1'), // Alias for BGGR. FOURCC_RGB3 = FOURCC('R', 'G', 'B', '3'), // Alias for RAW. FOURCC_BGR3 = FOURCC('B', 'G', 'R', '3'), // Alias for 24BG. + FOURCC_CM32 = FOURCC(0, 0, 0, 32), // Alias for BGRA kCMPixelFormat_32ARGB + FOURCC_CM24 = FOURCC(0, 0, 0, 24), // Alias for RAW kCMPixelFormat_24RGB // 1 Auxiliary compressed YUV format set aside for capturer. FOURCC_H264 = FOURCC('H', '2', '6', '4'), @@ -159,6 +161,8 @@ enum FourCCBpp { FOURCC_BPP_BA81 = 8, FOURCC_BPP_RGB3 = 24, FOURCC_BPP_BGR3 = 24, + FOURCC_BPP_CM32 = 32, + FOURCC_BPP_CM24 = 24, // Match any fourcc. FOURCC_BPP_ANY = 0, // 0 means unknown. diff --git a/source/video_common.cc b/source/video_common.cc index ed8159953..8294b913e 100644 --- a/source/video_common.cc +++ b/source/video_common.cc @@ -36,6 +36,8 @@ static const FourCCAliasEntry kFourCCAliases[] = { {FOURCC_BA81, FOURCC_BGGR}, {FOURCC_RGB3, FOURCC_RAW}, {FOURCC_BGR3, FOURCC_24BG}, + {FOURCC_CM32, FOURCC_BGRA}, + {FOURCC_CM24, FOURCC_RAW}, }; LIBYUV_API diff --git a/unit_test/video_common_test.cc b/unit_test/video_common_test.cc index cc1776686..379d89013 100644 --- a/unit_test/video_common_test.cc +++ b/unit_test/video_common_test.cc @@ -54,6 +54,8 @@ TEST_F(libyuvTest, TestCanonicalFourCC) { EXPECT_EQ(FOURCC_BGGR, CanonicalFourCC(FOURCC_BA81)); EXPECT_EQ(FOURCC_RAW, CanonicalFourCC(FOURCC_RGB3)); EXPECT_EQ(FOURCC_24BG, CanonicalFourCC(FOURCC_BGR3)); + EXPECT_EQ(FOURCC_BGRA, CanonicalFourCC(FOURCC_CM32)); + EXPECT_EQ(FOURCC_RAW, CanonicalFourCC(FOURCC_CM24)); } TEST_F(libyuvTest, TestFourCC) {