Bug 551277 - Fix comm-central breakage - r=roc
authorChris Double <chris.double@double.co.nz>
Tue, 06 Apr 2010 17:31:20 +1200
changeset 40471 87acb65c6318f6ff4d3815f103ba3c4915ab6321
parent 40470 83491775950c1e69a5431ef07e5c70cc84e01bdb
child 40472 88baf8233995801cf87055f3a37cf8d3988822ae
push idunknown
push userunknown
push dateunknown
reviewersroc
bugs551277
milestone1.9.3a4pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
Bug 551277 - Fix comm-central breakage - r=roc
gfx/ycbcr/Makefile.in
gfx/ycbcr/README
gfx/ycbcr/breakage.patch
gfx/ycbcr/update.sh
gfx/ycbcr/yuv_convert.h
--- a/gfx/ycbcr/Makefile.in
+++ b/gfx/ycbcr/Makefile.in
@@ -29,11 +29,12 @@ CPPSRCS += yuv_row_linux.cpp \
            $(NULL)
 endif
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
 CPPSRCS += yuv_row_mac.cpp \
            $(NULL)
 endif
 
+DEFINES += -D_IMPL_NS_GFX
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
--- a/gfx/ycbcr/README
+++ b/gfx/ycbcr/README
@@ -12,8 +12,9 @@ convert.patch: Change Chromium code to b
 
 picture_region.patch: Change Chromium code to allow a picture region.
                       The YUV conversion will convert within this 
                       picture region only.
 
 remove_scale.patch: Removes Chromium scaling code.
 
 yv24.patch: Adds YCbCr 4:4:4 support
+breakage.patch: Export public function to fix seamonkey breakage and fix fast calls on ARM & PPC
new file mode 100644
--- /dev/null
+++ b/gfx/ycbcr/breakage.patch
@@ -0,0 +1,44 @@
+diff --git a/gfx/ycbcr/yuv_convert.h b/gfx/ycbcr/yuv_convert.h
+--- a/gfx/ycbcr/yuv_convert.h
++++ b/gfx/ycbcr/yuv_convert.h
+@@ -6,6 +6,7 @@
+ #define MEDIA_BASE_YUV_CONVERT_H_
+ 
+ #include "chromium_types.h"
++#include "gfxCore.h"
+ 
+ namespace mozilla {
+ 
+@@ -21,7 +22,7 @@
+ 
+ // Convert a frame of YUV to 32 bit ARGB.
+ // Pass in YV16/YV12 depending on source format
+-void ConvertYCbCrToRGB32(const uint8* yplane,
++NS_GFX_(void) ConvertYCbCrToRGB32(const uint8* yplane,
+                          const uint8* uplane,
+                          const uint8* vplane,
+                          uint8* rgbframe,
+diff --git a/gfx/ycbcr/yuv_row_linux.cpp b/gfx/ycbcr/yuv_row_linux.cpp
+--- a/gfx/ycbcr/yuv_row_linux.cpp
++++ b/gfx/ycbcr/yuv_row_linux.cpp
+@@ -18,7 +18,7 @@
+                               const uint8* v_buf,
+                               uint8* rgb_buf,
+                               int width) {
+-  FastConvertYUVToRGB32Row_C(y_buf, u_buf, v_buf, rgb_buf, width);
++  FastConvertYUVToRGB32Row_C(y_buf, u_buf, v_buf, rgb_buf, width, 1);
+ }
+  
+ #else
+diff --git a/gfx/ycbcr/yuv_row_mac.cpp b/gfx/ycbcr/yuv_row_mac.cpp
+--- a/gfx/ycbcr/yuv_row_mac.cpp
++++ b/gfx/ycbcr/yuv_row_mac.cpp
+@@ -15,7 +15,7 @@
+                               const uint8* v_buf,
+                               uint8* rgb_buf,
+                               int width) {
+-  FastConvertYUVToRGB32Row_C(y_buf, u_buf, v_buf, rgb_buf, width);
++  FastConvertYUVToRGB32Row_C(y_buf, u_buf, v_buf, rgb_buf, width, 1);
+ }
+  
+ #else
--- a/gfx/ycbcr/update.sh
+++ b/gfx/ycbcr/update.sh
@@ -5,8 +5,9 @@ cp $1/media/base/yuv_row.h .
 cp $1/media/base/yuv_row_linux.cc yuv_row_linux.cpp
 cp $1/media/base/yuv_row_mac.cc yuv_row_mac.cpp
 cp $1/media/base/yuv_row_win.cc yuv_row_win.cpp
 cp $1/media/base/yuv_row_linux.cc yuv_row_c.cpp
 patch -p3 <convert.patch
 patch -p3 <picture_region.patch
 patch -p3 <remove_scale.patch
 patch -p3 <yv24.patch
+patch -p3 <breakage.patch
--- a/gfx/ycbcr/yuv_convert.h
+++ b/gfx/ycbcr/yuv_convert.h
@@ -1,32 +1,33 @@
 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
 #ifndef MEDIA_BASE_YUV_CONVERT_H_
 #define MEDIA_BASE_YUV_CONVERT_H_
 
 #include "chromium_types.h"
+#include "gfxCore.h"
 
 namespace mozilla {
 
 namespace gfx {
 
 // Type of YUV surface.
 // The value of these enums matter as they are used to shift vertical indices.
 enum YUVType {
   YV12 = 0,           // YV12 is half width and half height chroma channels.
   YV16 = 1,           // YV16 is half width and full height chroma channels.
   YV24 = 2            // YV24 is full width and full height chroma channels.
 };
 
 // Convert a frame of YUV to 32 bit ARGB.
 // Pass in YV16/YV12 depending on source format
-void ConvertYCbCrToRGB32(const uint8* yplane,
+NS_GFX_(void) ConvertYCbCrToRGB32(const uint8* yplane,
                          const uint8* uplane,
                          const uint8* vplane,
                          uint8* rgbframe,
                          int pic_x,
                          int pic_y,
                          int pic_width,
                          int pic_height,
                          int ystride,