platform/upstream/libvpx.git
12 years agogen_asm_deps.sh: regex fix
John Koleszar [Mon, 25 Jun 2012 17:09:05 +0000 (10:09 -0700)]
gen_asm_deps.sh: regex fix

Fixed the quantifier that optionally matches a quote before the
filename. This was originally reported in the homebrew project[1].
Note that this fix is different than patch posted there, as there are
some platforms that don't have the quote, so it needs to be included
in the expression optionally.

[1]: https://github.com/mxcl/homebrew/issues/12567#issuecomment-6434000

Change-Id: Ibf2ed93ce169d80932e877f942dc4eeb03867f8b

12 years agoAlter comment on range of delta_q and delta_lf
Paul Wilkins [Wed, 20 Jun 2012 14:20:53 +0000 (15:20 +0100)]
Alter comment on range of delta_q and delta_lf

Update the comment that defines the allowed ranges for
delta_q and delta_lf that can be used with segmentation.

Change-Id: Ie56ad6f946704259e03ffd49921a4cfb7e1e2f1f

12 years agoMerge "Cosmetics: test/test_libvpx.cc"
John Koleszar [Fri, 22 Jun 2012 22:13:39 +0000 (15:13 -0700)]
Merge "Cosmetics: test/test_libvpx.cc"

12 years agoMerge "Clean Android build defaults"
Johann [Fri, 22 Jun 2012 19:56:01 +0000 (12:56 -0700)]
Merge "Clean Android build defaults"

12 years agoCosmetics: test/test_libvpx.cc
John Koleszar [Fri, 22 Jun 2012 18:53:04 +0000 (11:53 -0700)]
Cosmetics: test/test_libvpx.cc

Itchy submit finger, incorporate review comments.

Change-Id: I7754ad825da32389510d1bfc967f542f0b1033ed

12 years agoMerge "Runtime CPU detection for unit tests"
John Koleszar [Fri, 22 Jun 2012 18:47:02 +0000 (11:47 -0700)]
Merge "Runtime CPU detection for unit tests"

12 years agoRuntime CPU detection for unit tests
John Koleszar [Fri, 22 Jun 2012 17:57:05 +0000 (10:57 -0700)]
Runtime CPU detection for unit tests

Filter out tests that require SIMD extensions if the host doesn't
support them.

Change-Id: Ifac4b73e98e64f9f1b082cc0ffbf5c2faffb0834

12 years agoAdded unit test for vp8_post_proc_down_and_across
Adrian Grange [Tue, 19 Jun 2012 19:03:36 +0000 (12:03 -0700)]
Added unit test for vp8_post_proc_down_and_across

This is a unit test for the post-processing functions:
- vp8_post_proc_down_and_across_c
- vp8_post_proc_down_and_across_mmx
- vp8_post_proc_down_and_across_xmm

Change-Id: Iec3e690327b17470209c00417835473f6d9a35d6

12 years agoMerge "Fix segmentation updates with vp8_set_roimap()"
Paul Wilkins [Wed, 20 Jun 2012 17:34:28 +0000 (10:34 -0700)]
Merge "Fix segmentation updates with vp8_set_roimap()"

12 years agoFix compilation with -werror
John Koleszar [Wed, 20 Jun 2012 04:05:36 +0000 (21:05 -0700)]
Fix compilation with -werror

Fix a last few warnings with multithread, arm, 32 bit

Change-Id: Ic7c67616c370d0ff87562a232fb1e5df0702dc86

12 years agoClean Android build defaults
Johann [Tue, 12 Jun 2012 15:58:11 +0000 (08:58 -0700)]
Clean Android build defaults

Disable unit-tests. The logging in GTest would need to be adjusted.

Restructure ARM cpu detection. Flatten if-else logic.

Change #if defined(HAVE_*) to #if HAVE_* because we only need to check
for features that the library was actually built with. This should have
been harmless, as disabled feature sets wouldn't have any features to
call.

Change-Id: Iea21aa42ce5f049c53ca0376d25bcd0f36f38284

12 years agoFix segmentation updates with vp8_set_roimap()
Paul Wilkins [Thu, 14 Jun 2012 15:26:07 +0000 (16:26 +0100)]
Fix segmentation updates with vp8_set_roimap()

Changes relating to Issue 411

Removed code that was clearing down the segmentation data each
frame.

Added range/parameter checking in vp8_set_roimap(); Return error
if called when cyclic_refresh is enabled.

Correct setup_features() so that it sets or clears the segment update
flags as appropriate.

Change-Id: Ib31ac53006640ddf1ba7b9ec8f8b952e3eff860a

12 years agoEnables building examples with Android NDK
Attila Nagy [Thu, 12 Apr 2012 09:50:19 +0000 (12:50 +0300)]
Enables building examples with Android NDK

Soft enable runtime cpu detect for armv7-android target, so that it
can be disabled and remove dependency on 'cpufeatures' lib.
Change the arm_cpu_caps implementation selection such that 'no rtcd' takes
precedence over system type.

Switch to use -mtune instead of -mcpu. NDK was complaining about
-mcpu=cortex-a8 conflicting with -march=armv7-a, not sure why.

Add a linker flag to fix some cortex-a8 bug, as suggested by NDK Dev
Guide.

Examples:
Configure for armv7+neon:

./configure --target=armv7-android-gcc \
            --sdk-path=/path/to/android/ndk \
            --disable-runtime-cpu-detect \
            --enable-realtime-only \
            --disable-unit-tests

...armv7 w/o neon:

./configure --target=armv7-android-gcc \
            --sdk-path=/path/to/android/ndk \
            --disable-runtime-cpu-detect \
            --enable-realtime-only \
            --disable-neon \
            --cpu=cortex-a9 \
            --disable-unit-tests

Change-Id: I37e2c0592745208979deec38f7658378d4bd6cfa

12 years agoMerge "disable lagged encoding in one-pass"
John Koleszar [Tue, 19 Jun 2012 21:50:46 +0000 (14:50 -0700)]
Merge "disable lagged encoding in one-pass"

12 years agoCorrected usage of image strides
Adrian Grange [Tue, 19 Jun 2012 18:19:40 +0000 (11:19 -0700)]
Corrected usage of image strides

The function vp8_post_proc_down_and_across_c takes the
stride of both the src and dst images as parameters, but
assumes that they are the same.

I modified the code to use the correct strides, as the
assembler versions of these functions do.

Change-Id: I222715b774cd071b21c15a4b0d2f4aef64a520de

12 years agoMerge "Fix pkg-config file to pull in libm"
John Koleszar [Sat, 16 Jun 2012 00:03:21 +0000 (17:03 -0700)]
Merge "Fix pkg-config file to pull in libm"

12 years agoFix pkg-config file to pull in libm
Rob Bradford [Mon, 28 May 2012 12:00:24 +0000 (13:00 +0100)]
Fix pkg-config file to pull in libm

vpx uses symbols in libm and thus we need to provide an indication to
the user of libvpx that if they want to link against libvpx they must
also link against libm.

Change-Id: I31d4068bf7f6f5b1fd222bcdf9e6a1a92fb6696f

12 years agoRemove threading dependencies with --disable-multithread
John Koleszar [Fri, 15 Jun 2012 22:40:13 +0000 (15:40 -0700)]
Remove threading dependencies with --disable-multithread

Avoid a pthreads dependency via pthread_once() when compiled with
--disable-multithread.

In addition, this synchronization is disabled for Win32 as well, even
though we can be sure that the required primatives exist, so that the
requirements on the application when built with --disable-multithread
are consistent across platforms.

Users using libvpx built with --disable-multithread in a multithreaded
context should provide their own synchronization. Updated the
documentation to vpx_codec_enc_init_ver() and vpx_codec_dec_init_ver()
to note this requirement. Moved the RTCD initialization call to match
this description, as previously it didn't happen until the first
frame.

Change-Id: Id576f6bce2758362188278d3085051c218a56d4a

12 years agodisable lagged encoding in one-pass
James Zern [Wed, 13 Jun 2012 18:59:12 +0000 (11:59 -0700)]
disable lagged encoding in one-pass

This currently has no effect and can create an artificial lag in e.g.,
realtime.

Change-Id: Ia1c7c6dbe7c6fe82a944f087f1b0d1dbbc0aa1b6

12 years agoFix pedantic compiler warnings
John Koleszar [Mon, 21 May 2012 21:30:56 +0000 (14:30 -0700)]
Fix pedantic compiler warnings

Allows building the library with the gcc -pedantic option, for improved
portabilty. In particular, this commit removes usage of C99/C++ style
single-line comments and dynamic struct initializers. This is a
continuation of the work done in commit 97b766a46, which removed most
of these warnings for decode only builds.

Change-Id: Id453d9c1d9f44cc0381b10c3869fabb0184d5966

12 years agoMerge "Fix MSVS builds for unit test changes"
John Koleszar [Mon, 11 Jun 2012 20:52:28 +0000 (13:52 -0700)]
Merge "Fix MSVS builds for unit test changes"

12 years agoFix bad merge
John Koleszar [Mon, 11 Jun 2012 19:24:14 +0000 (12:24 -0700)]
Fix bad merge

Change-Id: I45849dde0ee9b7e87fa32adb65ade8486bb66556

12 years agoMerge branch 'origin/eider' into master
John Koleszar [Mon, 4 Jun 2012 22:11:42 +0000 (15:11 -0700)]
Merge branch 'origin/eider' into master

Change-Id: I79fd7bd18aa1af41cd066ccc3d1cd16744b9c8d1

12 years agoMerge "Reset Q for key frame when spatial resizing occurs."
John Koleszar [Mon, 11 Jun 2012 19:02:56 +0000 (12:02 -0700)]
Merge "Reset Q for key frame when spatial resizing occurs."

12 years agoMerge "Skip AS detection for VS"
John Koleszar [Mon, 11 Jun 2012 19:02:35 +0000 (12:02 -0700)]
Merge "Skip AS detection for VS"

12 years agobuild: hide grep/obj_int_extract commands when verbose=0
James Zern [Sat, 9 Jun 2012 21:32:45 +0000 (14:32 -0700)]
build: hide grep/obj_int_extract commands when verbose=0

Change-Id: Ic30d7335b5bf912b39ea55f2b759fe5b7d523ca8

12 years agoRemove unused code in drop_frame
Yunqing Wang [Thu, 7 Jun 2012 15:26:47 +0000 (11:26 -0400)]
Remove unused code in drop_frame

Removed unused parameters and code related to drop_frame.

Change-Id: I594e050d49b1805c6f72abf06005ef624256bb57

12 years agoReset Q for key frame when spatial resizing occurs.
Marco Paniconi [Wed, 6 Jun 2012 18:38:48 +0000 (11:38 -0700)]
Reset Q for key frame when spatial resizing occurs.

The logic for spatial resizing is done after the Q is selected for the
frame. This causes a problem that the Q we select for the (resized)
key frame may be based on a different resolution than the frame we
will encode.

This fix is to ensure that, when resize is on, the selected Q is still
based on the resolution of the frame to be encoded.

Change-Id: Ia49a9eac5f64e48d1c00dfc7ed4ce26fe84d3fa1

12 years agoSkip AS detection for VS
Johann Koenig [Mon, 12 Dec 2011 17:43:42 +0000 (09:43 -0800)]
Skip AS detection for VS

Visual Studio doesn't use the assembler in $PATH

Change-Id: I169f8492127cbc1d256a2fb2e749cd970040ccc8

12 years agoMerge "Fix windows build: obj_int_extract to extract numbrs from .rdata" into eider
John Koleszar [Tue, 5 Jun 2012 01:54:52 +0000 (18:54 -0700)]
Merge "Fix windows build: obj_int_extract to extract numbrs from .rdata" into eider

12 years agoMerge "asm_*_offsets to define variables as constants" into eider
John Koleszar [Tue, 5 Jun 2012 01:54:23 +0000 (18:54 -0700)]
Merge "asm_*_offsets to define variables as constants" into eider

12 years agoFix windows build: obj_int_extract to extract numbrs from .rdata
Alpha Lam [Wed, 30 May 2012 18:18:35 +0000 (11:18 -0700)]
Fix windows build: obj_int_extract to extract numbrs from .rdata

The change in assembly offset files to define values as const int broke
Windows build, because the variables are stored in .rdata section instead
of .data section.

This CL changes the integer peeking from .data to .rdata.

Change-Id: I87e465ddcc78d39ec29f3720ea7df0ab807d5512

12 years agoasm_*_offsets to define variables as constants
Alpha Lam [Thu, 24 May 2012 04:35:35 +0000 (21:35 -0700)]
asm_*_offsets to define variables as constants

This change is to allow obj_int_extract to extract all integers
in the data segment. With the const keyword these variables are
forced into the .rodata segment even for zero variable value.

We had a problem before that zero valueed variables would get
assigned to BSS segment that fooled obj_int_extract to give
incorrect values.

Change-Id: Icd94f80a8ab356879894ca508bf132d20b865299

12 years agoRemove extra enum
Johann [Wed, 23 May 2012 23:08:37 +0000 (16:08 -0700)]
Remove extra enum

VP8_REFFRAME is the same as vpx_ref_frame_type

Change-Id: I63c2ddfb39f6ec87d1e5eb6a8852846464552b1b

12 years agoRemove redundant assignment
Johann [Wed, 9 May 2012 17:26:07 +0000 (10:26 -0700)]
Remove redundant assignment

clang complains about self-assignment

Change-Id: Iead70eed0a960e84a4b167f67f05b05e2965b3b6

12 years agoExplicitly discard fwrite/fread return values
Johann [Wed, 2 May 2012 21:12:57 +0000 (14:12 -0700)]
Explicitly discard fwrite/fread return values

Using if(); triggers an empty body warning with clang

Change-Id: I0fa2ee676400a974b40f8eaafca9ae668107eebb

12 years agoFix MSVS builds for unit test changes
John Koleszar [Fri, 1 Jun 2012 17:43:47 +0000 (10:43 -0700)]
Fix MSVS builds for unit test changes

Update the Visual Studio builds to support the new monolithic unit
test binary.

Includes minor semi-cosmetic refactoring of solution.mk, as the
%vpx.vcproj match is no longer appropriate given the test_libvpx
target.

Change-Id: I29e6e07c39e72b54a4b3eaca5b9b7877ef3fb134

12 years agoFixes a win build issue related to denoising.
Stefan Holmer [Thu, 31 May 2012 13:27:05 +0000 (15:27 +0200)]
Fixes a win build issue related to denoising.

Change-Id: I912384f526865089aa03ca8875591324e5c1c449

12 years agoFixes a clang linking error.
Stefan Holmer [Thu, 31 May 2012 08:52:20 +0000 (10:52 +0200)]
Fixes a clang linking error.

Change-Id: I1d2db53129dc6ec068093ad1e5fc0d94110473b3

12 years agoFixes a win build issue related to denoising.
Stefan Holmer [Thu, 31 May 2012 13:27:05 +0000 (15:27 +0200)]
Fixes a win build issue related to denoising.

Change-Id: I912384f526865089aa03ca8875591324e5c1c449

12 years agoFixes a clang linking error.
Stefan Holmer [Thu, 31 May 2012 08:52:20 +0000 (10:52 +0200)]
Fixes a clang linking error.

Change-Id: I1d2db53129dc6ec068093ad1e5fc0d94110473b3

12 years agoMerge "boolcoder_test "
Jim Bankoski [Wed, 30 May 2012 21:47:05 +0000 (14:47 -0700)]
Merge "boolcoder_test "

12 years agoAdded another denoising threshold for finding DC shifts.
Stefan Holmer [Wed, 30 May 2012 10:17:06 +0000 (12:17 +0200)]
Added another denoising threshold for finding DC shifts.

Compares the sum of differences between the input block and the averaged
block. If they differ too much the block will not be filtered. Negligible
perfomance hit.

Change-Id: Ib1c31a265efd4d100b3abc4a1ea6675038c8ddde

12 years agoMake libvpx Chromium build friendly
Alpha Lam [Wed, 23 May 2012 22:52:34 +0000 (15:52 -0700)]
Make libvpx Chromium build friendly

Add PRIVATE macro for adding private_extern directive for yasm
to hide global symbols. This is only enabled if -DCHROMIUM is used
with YASM.

Also fixed a small problem with rtcd_defs.sh to guard TEMPORAL_DENOISING.

Change-Id: I9027fce3ebddcf20078293e4b86b396f21da7857

12 years agofix denoiser for temporal patterns and rd
Jim Bankoski [Thu, 24 May 2012 14:44:03 +0000 (07:44 -0700)]
fix denoiser for temporal patterns and rd

This extends the denoiser to work for temporally scalable
coding.

I believe this also fixes a very rare but really bad bug in the original
implementation.

Change-Id: I8b3593a8c54b86eb76f785af1970935f7d56262a

12 years agoInline Intrinsic optimized Denoiser
Christian Duvivier [Mon, 21 May 2012 14:54:20 +0000 (07:54 -0700)]
Inline Intrinsic optimized Denoiser

Faster version of denoiser, cut cost by 1.7x for C path, by 3.3x for
SSE2 path.

Change-Id: I154786308550763bc0e3497e5fa5bfd1ce651beb

12 years agoFix windows build: obj_int_extract to extract numbrs from .rdata
Alpha Lam [Wed, 30 May 2012 18:18:35 +0000 (11:18 -0700)]
Fix windows build: obj_int_extract to extract numbrs from .rdata

The change in assembly offset files to define values as const int broke
Windows build, because the variables are stored in .rdata section instead
of .data section.

This CL changes the integer peeking from .data to .rdata.

Change-Id: I87e465ddcc78d39ec29f3720ea7df0ab807d5512

12 years agoAdded another denoising threshold for finding DC shifts.
Stefan Holmer [Wed, 30 May 2012 10:17:06 +0000 (12:17 +0200)]
Added another denoising threshold for finding DC shifts.

Compares the sum of differences between the input block and the averaged
block. If they differ too much the block will not be filtered. Negligible
perfomance hit.

Change-Id: Ib1c31a265efd4d100b3abc4a1ea6675038c8ddde

12 years agoMerge "fix denoiser for temporal patterns and rd"
Jim Bankoski [Fri, 25 May 2012 16:56:08 +0000 (09:56 -0700)]
Merge "fix denoiser for temporal patterns and rd"

12 years agoboolcoder_test
Jim Bankoski [Fri, 25 May 2012 16:07:32 +0000 (09:07 -0700)]
boolcoder_test

Changed to google style rather than pseudo webm project style

Change-Id: I0e19d57342a1b27b818fe6a5ae9f6bb3710a122a

12 years agoMerge changes I231c062e,Idadc42c7
John Koleszar [Thu, 24 May 2012 19:22:34 +0000 (12:22 -0700)]
Merge changes I231c062e,Idadc42c7

* changes:
  Add external resize tests
  Prevent external frame size changes in two-pass

12 years agoMerge "Fix another multithreaded encoder loopfilter race condition"
John Koleszar [Thu, 24 May 2012 16:40:48 +0000 (09:40 -0700)]
Merge "Fix another multithreaded encoder loopfilter race condition"

12 years agoMerge "asm_*_offsets to define variables as constants"
John Koleszar [Thu, 24 May 2012 16:40:29 +0000 (09:40 -0700)]
Merge "asm_*_offsets to define variables as constants"

12 years agoAdd external resize tests
John Koleszar [Wed, 23 May 2012 19:55:27 +0000 (12:55 -0700)]
Add external resize tests

Adds a test that ensures the application is able to trigger frame size
changes via vpx_codec_enc_config_set()

Change-Id: I231c062e533d75c8d63c5f8a5544650117429a63

12 years agofix denoiser for temporal patterns and rd
Jim Bankoski [Thu, 24 May 2012 14:44:03 +0000 (07:44 -0700)]
fix denoiser for temporal patterns and rd

This extends the denoiser to work for temporally scalable
coding.

I believe this also fixes a very rare but really bad bug in the original
implementation.

Change-Id: I8b3593a8c54b86eb76f785af1970935f7d56262a

12 years agoasm_*_offsets to define variables as constants
Alpha Lam [Thu, 24 May 2012 04:35:35 +0000 (21:35 -0700)]
asm_*_offsets to define variables as constants

This change is to allow obj_int_extract to extract all integers
in the data segment. With the const keyword these variables are
forced into the .rodata segment even for zero variable value.

We had a problem before that zero valueed variables would get
assigned to BSS segment that fooled obj_int_extract to give
incorrect values.

Change-Id: Icd94f80a8ab356879894ca508bf132d20b865299

12 years agoMerge "Make libvpx Chromium build friendly"
John Koleszar [Thu, 24 May 2012 03:56:49 +0000 (20:56 -0700)]
Merge "Make libvpx Chromium build friendly"

12 years agoMake libvpx Chromium build friendly
Alpha Lam [Wed, 23 May 2012 22:52:34 +0000 (15:52 -0700)]
Make libvpx Chromium build friendly

Add PRIVATE macro for adding private_extern directive for yasm
to hide global symbols. This is only enabled if -DCHROMIUM is used
with YASM.

Also fixed a small problem with rtcd_defs.sh to guard TEMPORAL_DENOISING.

Change-Id: I9027fce3ebddcf20078293e4b86b396f21da7857

12 years agoFix another multithreaded encoder loopfilter race condition
Attila Nagy [Tue, 22 May 2012 11:19:10 +0000 (14:19 +0300)]
Fix another multithreaded encoder loopfilter race condition

After a key frame encoding, the frame type could change while
filtering is still going on. Pass the frame type as parameter to the
loopfilter function and don't read it from common storage.

vp8cx_set_alt_lf_level has to be done before packing the stream.
Currently alt_lf_level is not used so there hasn't been any visible
problem here.

Change-Id: Ia114162158cd833c2b16e3b89303cc9c91f19165

12 years agoPrevent external frame size changes in two-pass
John Koleszar [Wed, 23 May 2012 19:07:53 +0000 (12:07 -0700)]
Prevent external frame size changes in two-pass

The two-pass code does not support the case where the application
changes the frame size dynamically. Add this case to the validation
checks in the vpx_codec_enc_config_set() path.

Change-Id: Idadc42c7c3bd566ecdbce30d8dd720add097f992

12 years agoMerge changes I38e93fe2,I6d6a0fb6,I51155833,If4c3e5d4,Ia2f40ef2
John Koleszar [Wed, 23 May 2012 20:47:48 +0000 (13:47 -0700)]
Merge changes I38e93fe2,I6d6a0fb6,I51155833,If4c3e5d4,Ia2f40ef2

* changes:
  Add initial keyframe tests
  Move all tests to test/ directory
  Enable unit tests by default
  Build unit tests monolithically
  configure: initial support for CXX, CXXFLAGS variables

12 years agoFix memory leak in vpx_codec_enc_config_set()
John Koleszar [Wed, 23 May 2012 19:03:39 +0000 (12:03 -0700)]
Fix memory leak in vpx_codec_enc_config_set()

Resolution changes in calls to vpx_codec_enc_config_set() would cause
a memory leak due to failing to release the lookahead and alt ref
buffers.

Change-Id: I48392ea25e71fe2760d60cfde3fb3874598cc85f

12 years agomulti-res: modify memory allocation code
Yunqing Wang [Wed, 23 May 2012 17:40:24 +0000 (13:40 -0400)]
multi-res: modify memory allocation code

Reverted part of change in memory alllocation code, which ensures
that the function returns 0 and encoder works correctly when
CONFIG_MULTI_RES_ENCODING isn't turned on.

Change-Id: Id5d5e7f2c8bd9e961a6dca79d257e8185f0d592a

12 years agoFix another multithreaded encoder loopfilter race condition
Attila Nagy [Tue, 22 May 2012 11:19:10 +0000 (14:19 +0300)]
Fix another multithreaded encoder loopfilter race condition

After a key frame encoding, the frame type could change while
filtering is still going on. Pass the frame type as parameter to the
loopfilter function and don't read it from common storage.

vp8cx_set_alt_lf_level has to be done before packing the stream.
Currently alt_lf_level is not used so there hasn't been any visible
problem here.

Change-Id: Ia114162158cd833c2b16e3b89303cc9c91f19165

12 years agoAdd initial keyframe tests
John Koleszar [Wed, 16 May 2012 22:27:00 +0000 (15:27 -0700)]
Add initial keyframe tests

Implements a couple simple tests of the encoder API using the gtest
framework:

  TestDisableKeyframes
  TestForceKeyframe
  TestKeyframeMaxDistance

Change-Id: I38e93fe242fbeb30bb11b23ac12de8ddc291a28d

12 years agoMove all tests to test/ directory
John Koleszar [Tue, 22 May 2012 18:56:31 +0000 (11:56 -0700)]
Move all tests to test/ directory

Consolodate the unit tests under vp8/ to the test/ directory

Change-Id: I6d6a0fb60f5e3874a4d6710e9e121dd3e81a93db

12 years agoEnable unit tests by default
John Koleszar [Tue, 22 May 2012 18:51:14 +0000 (11:51 -0700)]
Enable unit tests by default

Build unit tests by default if there is a working C++ toolchain
available.

Change-Id: I511558339b332fadfde37ef01b2dbf2755f48f89

12 years agoBuild unit tests monolithically
John Koleszar [Wed, 16 May 2012 23:25:51 +0000 (16:25 -0700)]
Build unit tests monolithically

Rework unit tests  to have a single executable rather than many, which
should avoid pollution of the visual studio project namespace, improve
build times, and make it easier to use the gtest test sharding system
when we get these going on the continuous build cluster.

Change-Id: If4c3e5d4b3515522869de6c89455c2a64697cca6

12 years agoconfigure: initial support for CXX, CXXFLAGS variables
John Koleszar [Tue, 22 May 2012 17:37:20 +0000 (10:37 -0700)]
configure: initial support for CXX, CXXFLAGS variables

Use CXX rather than assuming g++ to invoke the compiler. Also introduce
separate CXXFLAGS, as certain CFLAGS we enable by default cause warnings
with g++.

Change-Id: Ia2f40ef27c93e45c971d070cc58bdcde9da2ac7c

12 years agoMerge "multi-res: force Key frame sychronization"
Yunqing Wang [Tue, 22 May 2012 15:00:12 +0000 (08:00 -0700)]
Merge "multi-res: force Key frame sychronization"

12 years agoMerge "Be explicit about 'in-place'"
Johann [Mon, 21 May 2012 22:01:20 +0000 (15:01 -0700)]
Merge "Be explicit about 'in-place'"

12 years agoMerge "Inline Intrinsic optimized Denoiser"
Jim Bankoski [Mon, 21 May 2012 20:30:19 +0000 (13:30 -0700)]
Merge "Inline Intrinsic optimized Denoiser"

12 years agoInline Intrinsic optimized Denoiser
Christian Duvivier [Mon, 21 May 2012 14:54:20 +0000 (07:54 -0700)]
Inline Intrinsic optimized Denoiser

Faster version of denoiser, cut cost by 1.7x for C path, by 3.3x for
SSE2 path.

Change-Id: I154786308550763bc0e3497e5fa5bfd1ce651beb

12 years agoMerge "bug fix: do not set noise sensitivity in vp8_scalable_patterns.c"
James Berry [Mon, 21 May 2012 14:36:54 +0000 (07:36 -0700)]
Merge "bug fix: do not set noise sensitivity in vp8_scalable_patterns.c"

12 years agoMerge "examples: use alignment > 1 w/vpx_img_alloc"
John Koleszar [Sat, 19 May 2012 03:39:50 +0000 (20:39 -0700)]
Merge "examples: use alignment > 1 w/vpx_img_alloc"

12 years agoexamples: use alignment > 1 w/vpx_img_alloc
James Zern [Sat, 19 May 2012 02:22:26 +0000 (19:22 -0700)]
examples: use alignment > 1 w/vpx_img_alloc

aligned buffers improve performace. this change brings vpxenc &
vp8_scalable_patterns in line with the other examples.

Change-Id: I4cf9f3e4728b901161905dd7ccb092e774ffb15f

12 years agobug fix: do not set noise sensitivity in vp8_scalable_patterns.c
James Berry [Fri, 18 May 2012 21:04:24 +0000 (17:04 -0400)]
bug fix: do not set noise sensitivity in vp8_scalable_patterns.c

setting VP8E_SET_NOISE_SENSITIVITY not currently supported
for scalable patterns.

Change-Id: Ia7bd6a5fdd2551340ce993276cf70de2a44345b9

12 years agomulti-res: force Key frame sychronization
Yunqing Wang [Wed, 16 May 2012 19:06:42 +0000 (15:06 -0400)]
multi-res: force Key frame sychronization

In multi-resolution encoding, frame_type decision for each frame
is made by the lowest-resolution encoder. For all other higher-
resolution encoders, kf_mode is always set to VPX_KF_DISABLED,
and they are forced to use the same frame_type picked by the
lowest-resolution encoder.

Change-Id: Ic4d52ec65bbc012ca9c2d236210e28a295591eaf

12 years agoMerge "Fix missing param name in NEON scaler functions"
John Koleszar [Mon, 14 May 2012 19:39:23 +0000 (12:39 -0700)]
Merge "Fix missing param name in NEON scaler functions"

12 years agoMerge "fix warnings for building on win32"
John Koleszar [Mon, 14 May 2012 19:06:08 +0000 (12:06 -0700)]
Merge "fix warnings for building on win32"

12 years agoAllow target autodetection to work when cross-compiling.
Alexis Ballier [Sat, 12 May 2012 19:45:13 +0000 (15:45 -0400)]
Allow target autodetection to work when cross-compiling.

Allow CHOST to override the gcc -dumpmachine output. This allows to
use the target autodetection code when cross compiling by setting the
CHOST variable.

On Gentoo, we would like to support easy cross-compilation, and for
libvpx this would basically mean copying the code in
build/make/configure.sh to setup the right --target option. It seems a
lot easier to let it guess by itself.

Another option I considered was using CROSS-gcc instead but this would
not work for our multilib setups: They use gcc -m32 to build 32bits
binaries and gcc -m32 -dumpmachine will output the 64bits version,
which would then make libvpx wrongly believe it is building for a
64bits architecture.

Change-Id: I05a19be402228f749e23be7473ca53ae74fd2186

12 years agofix warnings for building on win32
Scott Graham [Tue, 8 May 2012 18:45:35 +0000 (11:45 -0700)]
fix warnings for building on win32

Change-Id: If6e11ba3d681e831d7d98662c0abdd2ac16b3811

12 years agoMerge branch 'origin/eider' into master
John Koleszar [Fri, 11 May 2012 17:51:05 +0000 (10:51 -0700)]
Merge branch 'origin/eider' into master

Conflicts:
vp8/common/entropymode.c
vp8/common/entropymode.h
vp8/encoder/encodeframe.c
vp8/vp8_cx_iface.c

Change-Id: I708b0f30449b9502b382e47b745d56f5ed2ce265

12 years agoMerge "vp8e - boolcoder unit test"
Jim Bankoski [Wed, 9 May 2012 22:41:23 +0000 (15:41 -0700)]
Merge "vp8e - boolcoder unit test"

12 years agoUpdate CHANGELOG for v1.1.0 (Eider) release v1.1.0
John Koleszar [Tue, 8 May 2012 20:47:21 +0000 (13:47 -0700)]
Update CHANGELOG for v1.1.0 (Eider) release

Change-Id: Ic429556e76bcc4f96a34e18835a153b07fe410a2

12 years agoUpdate AUTHORS
John Koleszar [Tue, 8 May 2012 22:00:46 +0000 (15:00 -0700)]
Update AUTHORS

Change-Id: Id9dd1802ae597a39eb46d2cbe531d5b04bd0a1c5

12 years agoUpdate .mailmap
John Koleszar [Tue, 8 May 2012 22:00:27 +0000 (15:00 -0700)]
Update .mailmap

Change-Id: If3a9958f6e2a466c631972316c3a49c253cbd9c2

12 years agoUse consistent range for VP8E_SET_NOISE_SENSITIVITY
John Koleszar [Tue, 8 May 2012 18:23:42 +0000 (11:23 -0700)]
Use consistent range for VP8E_SET_NOISE_SENSITIVITY

Accept the same range of inputs for the VP8E_SET_NOISE_SENSITIVITY
control, regardless of whether temporal denoising is enabled or not.
This is important for maintaining compatibility with existing
applications.

Change-Id: I94cd4bb09bf7c803516701a394cf1a63bfec0097

12 years agovp8e - boolcoder unit test
Jim Bankoski [Tue, 8 May 2012 14:29:19 +0000 (07:29 -0700)]
vp8e - boolcoder unit test

Adds a unit test to the boolcoder that tests encoding
and decoding thousands of different bits, with different
probabilities in different patterns.

Code borrowed from the webp project - and its committers.

Change-Id: Icabbb884d57e666496490c961dd29b246144ab3e

12 years agoBe explicit about 'in-place'
Johann [Fri, 4 May 2012 23:12:22 +0000 (16:12 -0700)]
Be explicit about 'in-place'

On darwin, sed expects an argument for '-i'. Make it empty.

Change-Id: I5dc6cdf667a754b2624f1767eb6e8025df48e308

12 years agofix vp8_ namespace issues
John Koleszar [Fri, 4 May 2012 19:23:53 +0000 (12:23 -0700)]
fix vp8_ namespace issues

Make functions only referenced from one translation unit static. Other
symbols with extern linkage get a vp8/vpx prefix.

Change-Id: I928c7e0d0d36e89ac78cb54ff8bb28748727834f

12 years agoFormalize encodeframe.c forward delclarations
John Koleszar [Fri, 4 May 2012 16:46:57 +0000 (09:46 -0700)]
Formalize encodeframe.c forward delclarations

Change If4321cc5 fixed a bug caused by forward declarations not being
kept in sync across C files, resulting in a function call with the
wrong arguments. The commit moves the affected function declarations
into a header file, along with the other symbols from encodeframe.c
that were being sloppily shared.

Change-Id: I76a7b4c66d4fe175f9cbef7e52148655e4bb9ba1

12 years agoFix multi-resolution threaded encoding
Attila Nagy [Fri, 4 May 2012 10:32:43 +0000 (13:32 +0300)]
Fix multi-resolution threaded encoding

mb_row and mb_col was not passed to vp8cx_encode_inter_macroblock in
threaded encoding.

Change-Id: If4321cc59bf91e991aa31e772f882ed5f2bbb201

12 years agoremove deprecated pre-v0.9.0 API
John Koleszar [Wed, 2 May 2012 23:37:37 +0000 (16:37 -0700)]
remove deprecated pre-v0.9.0 API

Remove a bunch of compatibility code dating back to before the initial
libvpx release.

Change-Id: Ie50b81e7d665955bec3d692cd6521c9583e85ca3

12 years agoMake global data const
Attila Nagy [Mon, 16 Apr 2012 07:23:57 +0000 (10:23 +0300)]
Make global data const

Removes all runtime initialization of global data. This commit is a
squashed version of the following series cherry-picked from master.
This is necessary because of a change that was merged to the tester
that depends on the scaler being moved to the RTCD framework, which
is a worthwhile thing to include in Eider anyway.

  - a91b42f02 Makes all global data in entropy.c const
  - b35a0db0e Makes all global data in tokenize.c const
  - 441cac8ea Makes all mode token tables const
  - 5948a0210 Ports vpx_xcaler to new RTCD method
  - 317d4244c Makes all mode token tables const part 2

Change-Id: Ifeaea24df2b731e7c509fa6c6ef6891a374afc26

12 years agoMerge "vp8_multi_resolution_encoder.c is not a generated example"
Yunqing Wang [Fri, 4 May 2012 15:22:45 +0000 (08:22 -0700)]
Merge "vp8_multi_resolution_encoder.c is not a generated example"

12 years agoFix multi-resolution threaded encoding
Attila Nagy [Fri, 4 May 2012 10:32:43 +0000 (13:32 +0300)]
Fix multi-resolution threaded encoding

mb_row and mb_col was not passed to vp8cx_encode_inter_macroblock in
threaded encoding.

Change-Id: If4321cc59bf91e991aa31e772f882ed5f2bbb201

12 years agoMerge "Add VPX_TS_ prefix to MAX_LAYERS, MAX_PERIODICITY" into eider
John Koleszar [Thu, 3 May 2012 16:40:50 +0000 (09:40 -0700)]
Merge "Add VPX_TS_ prefix to MAX_LAYERS, MAX_PERIODICITY" into eider

12 years agovp8_multi_resolution_encoder.c is not a generated example
Attila Nagy [Thu, 3 May 2012 10:06:19 +0000 (13:06 +0300)]
vp8_multi_resolution_encoder.c is not a generated example

Move it from GEN_EXAMPLES to UTILS list.

Change-Id: I7ebd51b18a9cb58e3008ca3d7576589400b365ce

12 years agoFix missing param name in NEON scaler functions
Attila Nagy [Thu, 3 May 2012 10:08:51 +0000 (13:08 +0300)]
Fix missing param name in NEON scaler functions

Was generating compilation errors.

Change-Id: I68d7c320b2b2f2737bbbc9862f2c39675c7f678a