244 Commits

Author SHA1 Message Date
fbarchard@google.com
bd4a849bcb fix for nv21 u, v order, align all loops, and make addrows support 1 row
BUG=17
TEST=none
Review URL: https://webrtc-codereview.appspot.com/435004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@208 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-07 19:19:03 +00:00
fbarchard@google.com
ba3aeed3b8 gcc port of alpha blend and add align to row_win loops
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/439006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@207 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-07 18:24:51 +00:00
fbarchard@google.com
c6e7e2a853 addrow fix
Review URL: https://webrtc-codereview.appspot.com/437003

git-svn-id: http://libyuv.googlecode.com/svn/trunk@206 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-07 06:11:14 +00:00
fbarchard@google.com
fe9f4ad808 alphablend test for opaque and transparent
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/436005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@205 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-07 02:43:18 +00:00
fbarchard@google.com
9198f3754b rm for stride in addrows for clang on mac to not run out of registers
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/440001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@204 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-06 20:18:27 +00:00
fbarchard@google.com
965fb914ea alpha blend argb into argb
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/428009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@203 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-06 18:49:39 +00:00
fbarchard@google.com
26becab452 try r followed by rm for clang
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/426010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@202 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-03 02:05:54 +00:00
fbarchard@google.com
f69e90a19e mirror munging and avoid wait. scale addrows use 6 registers for mac
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/426007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@200 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-03-02 19:07:15 +00:00
fbarchard@google.com
e74ae8ef6c scale AddRows use 4 registers instead of 5 for benefit of OSX
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/423001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@192 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-29 19:07:20 +00:00
fbarchard@google.com
4e21867163 addrows improvements for general purpose down size box filter. scale sse avoid pushad. sub ecx before store to avoid wait
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/405007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@191 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-28 00:29:02 +00:00
fbarchard@google.com
4339f09d60 bilinear scaling improvements
-subpixel accurate for scaling down by passing in x and dx.
-blend for bilinear use single multiply instead of 2 multiplies.
-filter col do 2 pixels at a time
-assembly do address munging
-assembly avoid wait on store for core2
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/397012

git-svn-id: http://libyuv.googlecode.com/svn/trunk@187 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-23 10:52:55 +00:00
fbarchard@google.com
8ae294e440 handle last 1 or 2 rows of 3/4 and 3/8 scalers with careful vertical filtering
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/380004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@165 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-02-02 22:33:21 +00:00
fbarchard@google.com
9460279178 scale function relaxed pointer checks and unrolled scale34 and scale38
BUG=none
TEST=none
Review URL: https://webrtc-codereview.appspot.com/369004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@149 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-21 06:46:34 +00:00
frkoenig@google.com
ea8d0eb0d1 ScaleFilterRows optimized for NEON.
Includes unit test that scales the image up by 2.
Currently this is done using the generic bilinear scale.
Review URL: http://webrtc-codereview.appspot.com/330032

git-svn-id: http://libyuv.googlecode.com/svn/trunk@126 16f28f9a-4ce2-e073-06de-1de4eb20be90
2012-01-04 23:04:07 +00:00
fbarchard@google.com
0000a2ad52 .private_extern for OSX 32 bit but not for other platforms
BUG=none
TEST=build and run scale and rotate.
Review URL: http://webrtc-codereview.appspot.com/330014

git-svn-id: http://libyuv.googlecode.com/svn/trunk@119 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-21 18:30:15 +00:00
fbarchard@google.com
c9911bcba1 more functions added for convertFromI420
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/333015

git-svn-id: http://libyuv.googlecode.com/svn/trunk@118 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-21 03:37:37 +00:00
fbarchard@google.com
62e63b25ff Remove .global from asm blocks to reduce external visibility
BUG=none
TEST=functions still build/link on 32 bit linux/osx
Review URL: http://webrtc-codereview.appspot.com/330011

git-svn-id: http://libyuv.googlecode.com/svn/trunk@116 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-21 00:04:04 +00:00
fbarchard@google.com
9d206a29cd cygwin compatibility fix for ifdef underscores, and __inline for C vs inline which is C++
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/335003

git-svn-id: http://libyuv.googlecode.com/svn/trunk@115 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-19 19:04:46 +00:00
fbarchard@google.com
45b9ef0f6a scale call copyplane in planarfunctions
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/335002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@112 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-16 03:34:09 +00:00
fbarchard@google.com
19a248ab63 fix for underscore on gcc 32 bit for linux
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/325001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@102 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-12 20:21:52 +00:00
fbarchard@google.com
fe5ff7ed54 clang on linux prefers no args for rep movsl/stosl. ifdef for C that removes namespace. extern c allows c++ to be used to compile, including with namespace, but C program can link libyuv
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/320004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@101 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-10 07:45:58 +00:00
fbarchard@google.com
1d61cd91bb mingw behaves like apple as far as labels go
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/322002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@99 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-08 19:57:48 +00:00
frkoenig@google.com
e0bf6f0934 Fix build for OSX.
Clang defines __APPLE__, not OSX, use that
for platform specific code.

Removed spurious volatile that was giving a warning
when compiling for OSX.
Review URL: http://webrtc-codereview.appspot.com/305005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@98 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-12-07 01:54:13 +00:00
fbarchard@google.com
3e8a577bb3 add ARGBRect, fix for 444 support in ConvertToI420
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/289003

git-svn-id: http://libyuv.googlecode.com/svn/trunk@93 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-23 18:58:38 +00:00
fbarchard@google.com
1c5136d069 use IS_ALIGNED for width and stride to avoid mod that generates 6 instructions
BUG=none
TEST=disassemble to confirm smaller/simplier alignment checks
Review URL: http://webrtc-codereview.appspot.com/287001

git-svn-id: http://libyuv.googlecode.com/svn/trunk@91 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-22 18:15:17 +00:00
fbarchard@google.com
12d048335d I420Mirror rewrite, I420Copy movdqa, I444To420, I420To422
Review URL: http://webrtc-codereview.appspot.com/267025

git-svn-id: http://libyuv.googlecode.com/svn/trunk@89 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-21 23:54:38 +00:00
fbarchard@google.com
15c3d45cbe Change WIN32 to _M_IX86 and use YUV_DISABLE_ASM consistently
BUG=none
TEST=none
Review URL: http://webrtc-codereview.appspot.com/277008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@84 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-17 22:13:17 +00:00
fbarchard@google.com
c59000bf0f osx 64 bit does not want _ in variable names
BUG=none
TEST=build with m64
Review URL: http://webrtc-codereview.appspot.com/268011

git-svn-id: http://libyuv.googlecode.com/svn/trunk@81 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-15 22:27:45 +00:00
fbarchard@google.com
eaedc1d727 remove mmx functions
BUG=none
TEST=builds
Review URL: http://webrtc-codereview.appspot.com/269010

git-svn-id: http://libyuv.googlecode.com/svn/trunk@77 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-11 18:41:47 +00:00
mikhal@webrtc.org
1b06484b4a libyuv: clean up:
1. Removing libyuv:: when not needed
2. Test clean-up 
Review URL: http://webrtc-codereview.appspot.com/279002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@74 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-10 23:58:32 +00:00
fbarchard@google.com
f7a5048f54 align asm new line to column 48
BUG=none
TEST=builds
Review URL: http://webrtc-codereview.appspot.com/268008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@73 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-10 22:41:20 +00:00
frkoenig@google.com
7aa6f06e70 Avoid using Q4-Q7 registers for NEON.
Was not paying attention to which registers were for scratch.
Avoid the need to preserve registers by not using registers
in the Q4-Q7 range.

Fix ScaleDown2Int_NEON by changing how rounding was applied.

ScaleDownRow4 changed to process 4 output pixels per loop.

No need to push/pop registers for UV Transpose, removed
functions.

Fix for CPU Flag for scale_test.cc to turn on/off optimizations
for timing.
Review URL: http://webrtc-codereview.appspot.com/259002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@58 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-03 00:54:50 +00:00
fbarchard@google.com
d14936a0af scale avoid xmm6 and xmm7 usage
BUG=none
TEST=scale test in talk
Review URL: http://webrtc-codereview.appspot.com/256009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@56 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-11-02 23:06:40 +00:00
frkoenig@google.com
0e9b515f53 Neon 38 downscaler.
Fixed up unit tests for filters to use same image generation and comparison code.

Added timing information output from doing scale.
Review URL: http://webrtc-codereview.appspot.com/244016

git-svn-id: http://libyuv.googlecode.com/svn/trunk@48 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-10-29 00:26:17 +00:00
frkoenig@google.com
f626bea05f Neon version of ScaleRowDown34.
Review URL: http://webrtc-codereview.appspot.com/250003

git-svn-id: http://libyuv.googlecode.com/svn/trunk@44 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-10-28 17:32:35 +00:00
frkoenig@google.com
bab397f72a ScaleRowDown4Int_SSE2 was incorrectly computing offset.
One of the source lines for ScaleRowDown4Int_SSE2 was
incorrect leading to a bad read.  Add a test to catch
this in the future.
Review URL: http://webrtc-codereview.appspot.com/242006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@39 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-10-21 22:27:20 +00:00
frkoenig@google.com
36ab38a3bd ARM Neon optimized 4x4 box filter.
Fix for 2x2 box filter assembly code.
Review URL: http://webrtc-codereview.appspot.com/240007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@37 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-10-21 21:17:16 +00:00
fbarchard@google.com
3faa0f15cb x64 versions of assembly which also work on PIC 32 bit. biplanar take 2 strides for odd width. inversion for src height
TEST=media and planar unittests in Talk

BUG=none
Review URL: http://webrtc-codereview.appspot.com/244004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@33 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-10-20 06:04:16 +00:00
fbarchard@google.com
a1280730c2 cleanup yuv for consistency. stride, return int, negative heights, inplace conversions, lower case names, filter enum, uint, planarfunction updates, remove common.h, remove common/ folder, cpuid header public, move headers into libyuv/, add libyuv.h, fixed header guards, remove internal timing from scale, tweaks for llvm build, videocommon simplified
BUG=none
TEST=Talk builds on all platforms against libyuv.
Review URL: http://webrtc-codereview.appspot.com/226003

git-svn-id: http://libyuv.googlecode.com/svn/trunk@31 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-10-14 17:50:12 +00:00
fbarchard@google.com
41686e8479 remove linux.cc and simplify cpuid
TEST=pulse build of talk against libyuv
BUG=none
Review URL: http://webrtc-codereview.appspot.com/224002

git-svn-id: http://libyuv.googlecode.com/svn/trunk@25 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-10-13 17:47:39 +00:00
mikhal@webrtc.org
43575c8fa5 Libyuv: Numerous changes
Review URL: http://webrtc-codereview.appspot.com/217007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@22 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-10-12 18:49:21 +00:00
mikhal@webrtc.org
ea0cff0217 libyuv: changing assert call on scale.cc
Review URL: http://webrtc-codereview.appspot.com/215004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@19 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-10-11 20:09:44 +00:00
mikhal@webrtc.org
283eb139df LibYuv: General updates
Review URL: http://webrtc-codereview.appspot.com/220004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@17 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-10-11 18:22:34 +00:00
mikhal@webrtc.org
aed1cc94c1 first draft
git-svn-id: http://libyuv.googlecode.com/svn/trunk@2 16f28f9a-4ce2-e073-06de-1de4eb20be90
2011-09-28 00:06:25 +00:00