diff options
author | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-08 03:56:53 +0000 |
---|---|---|
committer | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-08 03:56:53 +0000 |
commit | 7091ca47e63c66e8f9f9b02508ea4cbc25ab3aff (patch) | |
tree | 0a0917e11f12a7e607eac702edd5eef574edc360 /media/base/yuv_scale.cc | |
parent | 51046488738f8a3fdd7f55fc046a93f89e0294f7 (diff) | |
download | chromium_src-7091ca47e63c66e8f9f9b02508ea4cbc25ab3aff.zip chromium_src-7091ca47e63c66e8f9f9b02508ea4cbc25ab3aff.tar.gz chromium_src-7091ca47e63c66e8f9f9b02508ea4cbc25ab3aff.tar.bz2 |
Revert r15615, build errors on linux and mac.
Review URL: http://codereview.chromium.org/113135
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15616 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/yuv_scale.cc')
-rw-r--r-- | media/base/yuv_scale.cc | 111 |
1 files changed, 24 insertions, 87 deletions
diff --git a/media/base/yuv_scale.cc b/media/base/yuv_scale.cc index be99cac..7f39861 100644 --- a/media/base/yuv_scale.cc +++ b/media/base/yuv_scale.cc @@ -20,74 +20,37 @@ static void ScaleYV12ToRGB32Row(const uint8* y_buf, const uint8* u_buf, const uint8* v_buf, uint8* rgb_buf, - int width, - int scaled_width); + size_t width, + size_t scaled_width); static void HalfYV12ToRGB32Row(const uint8* y_buf, const uint8* u_buf, const uint8* v_buf, uint8* rgb_buf, - int width); - -extern "C" void ConvertYV12ToRGB32Row(const uint8* y_buf, - const uint8* u_buf, - const uint8* v_buf, - uint8* rgb_buf, - size_t width); + size_t width); // Scale a frame of YV12 (aka YUV420) to 32 bit ARGB. void ScaleYV12ToRGB32(const uint8* y_buf, const uint8* u_buf, const uint8* v_buf, uint8* rgb_buf, - int width, - int height, - int scaled_width, - int scaled_height, + size_t width, + size_t height, + size_t scaled_width, + size_t scaled_height, int y_pitch, int uv_pitch, - int rgb_pitch, - Rotate view_rotate) { - // Rotations that start at right side of image - if ((view_rotate == ROTATE_180) || - (view_rotate == ROTATE_270) || - (view_rotate == MIRROR_ROTATE_0) || - (view_rotate == MIRROR_ROTATE_90)) { - y_buf += width - 1; - u_buf += width / 2 - 1; - v_buf += width / 2 - 1; - width = -width; - } - // Rotations that start at bottom of image - if ((view_rotate == ROTATE_90) || - (view_rotate == ROTATE_180) || - (view_rotate == MIRROR_ROTATE_90) || - (view_rotate == MIRROR_ROTATE_180)) { - y_buf += (height - 1) * y_pitch; - u_buf += (height / 2 - 1) * uv_pitch; - v_buf += (height / 2 - 1) * uv_pitch; - height = -height; - } - // Only these rotations are implemented. - DCHECK((view_rotate == ROTATE_0) || - (view_rotate == ROTATE_180) || - (view_rotate == MIRROR_ROTATE_0) || - (view_rotate == MIRROR_ROTATE_180)); - + int rgb_pitch) { #ifdef _OPENMP #pragma omp parallel for #endif - for (int y = 0; y < scaled_height; ++y) { + for (int y = 0; y < static_cast<int>(scaled_height); ++y) { uint8* dest_pixel = rgb_buf + y * rgb_pitch; int scaled_y = (y * height / scaled_height); - const uint8* y_ptr = y_buf + scaled_y * y_pitch; const uint8* u_ptr = u_buf + scaled_y / 2 * uv_pitch; const uint8* v_ptr = v_buf + scaled_y / 2 * uv_pitch; - if (scaled_width == width) { - ConvertYV12ToRGB32Row(y_ptr, u_ptr, v_ptr, - dest_pixel, scaled_width); - } else if (scaled_width == (width / 2)) { + if (scaled_width == (width / 2)) { HalfYV12ToRGB32Row(y_ptr, u_ptr, v_ptr, dest_pixel, scaled_width); } else { @@ -102,43 +65,17 @@ void ScaleYV16ToRGB32(const uint8* y_buf, const uint8* u_buf, const uint8* v_buf, uint8* rgb_buf, - int width, - int height, - int scaled_width, - int scaled_height, + size_t width, + size_t height, + size_t scaled_width, + size_t scaled_height, int y_pitch, int uv_pitch, - int rgb_pitch, - Rotate view_rotate) { - // Rotations that start at right side of image - if ((view_rotate == ROTATE_180) || - (view_rotate == ROTATE_270) || - (view_rotate == MIRROR_ROTATE_0) || - (view_rotate == MIRROR_ROTATE_90)) { - y_buf += width - 1; - u_buf += width / 2 - 1; - v_buf += width / 2 - 1; - width = -width; - } - // Rotations that start at bottom of image - if ((view_rotate == ROTATE_90) || - (view_rotate == ROTATE_180) || - (view_rotate == MIRROR_ROTATE_90) || - (view_rotate == MIRROR_ROTATE_180)) { - y_buf += (height - 1) * y_pitch; - u_buf += (height - 1) * uv_pitch; - v_buf += (height - 1) * uv_pitch; - height = -height; - } - // Only these rotations are implemented. - DCHECK((view_rotate == ROTATE_0) || - (view_rotate == ROTATE_180) || - (view_rotate == MIRROR_ROTATE_0) || - (view_rotate == MIRROR_ROTATE_180)); + int rgb_pitch) { #ifdef _OPENMP #pragma omp parallel for #endif - for (int y = 0; y < scaled_height; ++y) { + for (int y = 0; y < static_cast<int>(scaled_height); ++y) { uint8* dest_pixel = rgb_buf + y * rgb_pitch; int scaled_y = (y * height / scaled_height); const uint8* y_ptr = y_buf + scaled_y * y_pitch; @@ -234,9 +171,9 @@ static uint8 g_rgb_clip_table[kClipOverflow // Therefore source range is -128 to 384. // Output clips to unsigned 0 to 255. static inline uint32 clip(int32 value) { -// DCHECK(((value >> 8) + kClipOverflow) >= 0); -// DCHECK(((value >> 8) + kClipOverflow) < -// (kClipOverflow + kClipTableSize + kClipOverflow)); + DCHECK(((value >> 8) + kClipOverflow) >= 0); + DCHECK(((value >> 8) + kClipOverflow) < + (kClipOverflow + kClipTableSize + kClipOverflow)); return static_cast<uint32>(g_rgb_clip_table[((value) >> 8) + kClipOverflow]); } @@ -249,11 +186,11 @@ static void ScaleYV12ToRGB32Row(const uint8* y_buf, const uint8* u_buf, const uint8* v_buf, uint8* rgb_buf, - int width, - int scaled_width) { + size_t width, + size_t scaled_width) { int scaled_dx = width * 16 / scaled_width; int scaled_x = 0; - for (int32 x = 0; x < scaled_width; ++x) { + for (int32 x = 0; x < static_cast<int32>(scaled_width); ++x) { uint8 u = u_buf[scaled_x >> 5]; uint8 v = v_buf[scaled_x >> 5]; int32 d = static_cast<int32>(u) - 128; @@ -296,8 +233,8 @@ static void HalfYV12ToRGB32Row(const uint8* y_buf, const uint8* u_buf, const uint8* v_buf, uint8* rgb_buf, - int width) { - for (int32 x = 0; x < width; ++x) { + size_t width) { + for (int32 x = 0; x < static_cast<int32>(width); ++x) { uint8 u = u_buf[x]; uint8 v = v_buf[x]; int32 d = static_cast<int32>(u) - 128; |