profile/ivi/libvpx.git
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 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 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 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
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

12 years agomulti-res: restore v1.0.0 API
John Koleszar [Thu, 19 Apr 2012 17:00:33 +0000 (10:00 -0700)]
multi-res: restore v1.0.0 API

Move the notion of 0 bitrate implying skip deeper into the codec,
rather than doing it at the multi-encoder API level. This preserves
v1.0.0 ABI compatibility, rather than forcing a bump to v2.0.0 over a
minor change. Also, this allows the case where the application can
selectively enable and disable the larger resolution(s) without having
to reinitialize the codec instace (for instance, if no target is
receiving the full resolution stream).

It's not clear how deep to push this check. It may be valuable to
allow the framerate adaptation code to run, for example. Currently put
the check as early as possible for simplicity, should reevaluate this
as this feature gains real use.

Change-Id: I371709b8c6b52185a1c71a166a131ecc244582f0

12 years agoMerge "Fix compiler warnings" into eider
John Koleszar [Wed, 2 May 2012 23:22:34 +0000 (16:22 -0700)]
Merge "Fix compiler warnings" into eider

12 years agoAdd VPX_TS_ prefix to MAX_LAYERS, MAX_PERIODICITY
John Koleszar [Wed, 2 May 2012 23:21:52 +0000 (16:21 -0700)]
Add VPX_TS_ prefix to MAX_LAYERS, MAX_PERIODICITY

Preserved the prior names for compatibility, will remove in the future.

Change-Id: I8773f959ebce72f60168a2972f7a8ffe6642b9b2

12 years agoupdate unit tests to support --enable-static-msvcrt
James Berry [Wed, 2 May 2012 22:09:54 +0000 (18:09 -0400)]
update unit tests to support --enable-static-msvcrt

update unit tests to support --enable-static-msvcrt

Change-Id: I7e6e9ef2a0a8e2054076c8debe35ee317e9ab2e3

12 years agoAdd support for native Solaris compiler on x86.
Timothy B. Terriberry [Wed, 2 May 2012 17:14:27 +0000 (10:14 -0700)]
Add support for native Solaris compiler on x86.

Original patch by Ginn Chen <ginn.chen@oracle.com> against libvpx
 v0.9.0.
I've forward-ported it to the current version (which mostly
 involved removing hunks that were no longer relevant), since I've
 given up on getting Ginn to submit this upstream himself.

Change-Id: I403c757c831c78d820ebcfe417e717b470a1d022

12 years agoFix TEXTRELs in the ARM asm.
Timothy B. Terriberry [Wed, 2 May 2012 17:11:36 +0000 (10:11 -0700)]
Fix TEXTRELs in the ARM asm.

Besides imposing a performance penalty at startup in most
 configurations, these relocations break the dynamic linker for
 native Fennec, since it does not support them at all.

Change-Id: Id5dc768609354ebb4379966eb61a7313e6fd18de

12 years agoFix trailing commas in enums.
Timothy B. Terriberry [Wed, 2 May 2012 17:08:10 +0000 (10:08 -0700)]
Fix trailing commas in enums.

These are warnings in most builds, but show up as compile errors on
 some platforms when these headers are included from C++ code.

Change-Id: I6c523b4dbbc699075fe73830442b51922e5a61d5

12 years agoFix trailing commas in enums.
Timothy B. Terriberry [Wed, 2 May 2012 17:08:10 +0000 (10:08 -0700)]
Fix trailing commas in enums.

These are warnings in most builds, but show up as compile errors on
 some platforms when these headers are included from C++ code.

Change-Id: I6c523b4dbbc699075fe73830442b51922e5a61d5

12 years agoFix compiler warnings
Attila Nagy [Fri, 27 Apr 2012 10:41:58 +0000 (13:41 +0300)]
Fix compiler warnings

Fix code for following warnings:
-Wimplicit-function-declaration
-Wuninitialized
-Wunused-but-set-variable
-Wunused-variable

Change-Id: I2be434f22fdecb903198e8b0711255b4c1a2947a

12 years agoMerge "Update paths for iOS 5.1" into eider
Johann [Tue, 1 May 2012 17:13:03 +0000 (10:13 -0700)]
Merge "Update paths for iOS 5.1" into eider

12 years agoUpdate paths for iOS 5.1
Johann [Mon, 30 Apr 2012 22:04:41 +0000 (15:04 -0700)]
Update paths for iOS 5.1

These values can be overridden with some poorly documented and
overloaded options: --libc and --sdk-path

../libvpx/configure --target=armv7-darwin-gcc --sdk-path=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer --libc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/

So for someone who still wants to build with the iOS 5 SDK, the last
part of the path should be iPhoneOS5.0.sdk

Change-Id: Ibe93d96ae828c619700dc3222983aa4c30456b88

12 years agoMerge "Add target for OS X 10.8 Mountain Lion" into eider
Johann [Mon, 30 Apr 2012 17:23:59 +0000 (10:23 -0700)]
Merge "Add target for OS X 10.8 Mountain Lion" into eider

12 years agoReset output frames counter for second pass
Adrian Grange [Fri, 27 Apr 2012 18:06:14 +0000 (11:06 -0700)]
Reset output frames counter for second pass

The frame counter was not being reset at the start of
the first pass.

Change-Id: I2ef7c6edf027e43f83f470c52cbcf95bf152e430

12 years agoAdd target for OS X 10.8 Mountain Lion
Johann [Fri, 27 Apr 2012 18:40:04 +0000 (11:40 -0700)]
Add target for OS X 10.8 Mountain Lion

Also clarify universal build rules

Change-Id: I3b7352f81d5d5b3472420e89872038377c5c2697

12 years agoReset output frames counter for second pass
Adrian Grange [Fri, 27 Apr 2012 18:06:14 +0000 (11:06 -0700)]
Reset output frames counter for second pass

The frame counter was not being reset at the start of
the first pass.

Change-Id: I2ef7c6edf027e43f83f470c52cbcf95bf152e430

12 years agoModified ARNR MC-filter to ignore ARF frame
Adrian Grange [Fri, 27 Apr 2012 16:01:17 +0000 (09:01 -0700)]
Modified ARNR MC-filter to ignore ARF frame

The ARNR filter uses MC to find the best match between the
ARF and other nearby frames in the filter-set. Since the
ARF is a member of the filter-set, MC in that case is
unnecesssary. This patch modifies the filter so it does
not apply MC in this case.

Change-Id: Ic0321199c08db2189a57f28d1700b745bc7ff66d

12 years agoRemoved MV costing from ARNR filtering
Adrian Grange [Thu, 26 Apr 2012 22:41:38 +0000 (15:41 -0700)]
Removed MV costing from ARNR filtering

The ARNR filter uses a motion compensated temporal filter,
but the motion estimation implementation accounts for the
cost of the mv in its decision making process. The ARNR
filter uses a dummy cost table initialized to 0 as a way
to ignore the mv costs (which are irrelevant to the filter).

This CL modifies the ARNR filter implementation so that
the mv costing is ignored without the requirement for
dummy tables.

Change-Id: I4196aa5c24da63f858ff54fbaa5fc85ae1f1957f

12 years agoMerge "Fix loopfilter race condition in multithreaded encoder" into eider
John Koleszar [Thu, 26 Apr 2012 23:07:20 +0000 (16:07 -0700)]
Merge "Fix loopfilter race condition in multithreaded encoder" into eider

12 years agoMoves error concealment allocations from common parts to decoder
Attila Nagy [Tue, 24 Apr 2012 12:33:44 +0000 (15:33 +0300)]
Moves error concealment allocations from common parts to decoder

The backup MODE_INFO buffer used in the error concealment was
allocated in the codec common parts allocation even though this is a
decoder only resource. Moved the allocation to the decoder side.
No need to update_mode_info_border as mode_info buffers are zero
allocated.

This fixes also a potential memory leak as the EC overlaps buffer was not
properly released before reallocation after a frame size change.

Change-Id: I12803d3e012308d95669069980b1c95973fb775f

12 years agoHave vpxenc use a default kf_max_rate of 5 seconds.
Ralph Giles [Thu, 5 Jan 2012 21:05:05 +0000 (15:05 -0600)]
Have vpxenc use a default kf_max_rate of 5 seconds.

Rather than using the static default maximum keyframe spacing
provided by vpx_codec_enc_config_default() set the default
value to 5 times the frame rate. Five seconds is too long for
live streaming applications, but is a compromise between seek
efficiency and giving the encoder freedom to choose keyframe
locations.

The five second value is from James Zern's suggestion in
http://article.gmane.org/gmane.comp.multimedia.webm.user/2945

Change-Id: Ib7274dc248589c433c06e68ca07232e97f7ce17f

12 years agovpxenc: validate rational arguments
John Koleszar [Thu, 26 Apr 2012 00:08:56 +0000 (17:08 -0700)]
vpxenc: validate rational arguments

Trap negative values and zero denominators at the point where they're
parsed.

Change-Id: I1ec9da5d4e95d3ef539860883041330ecec2f345

12 years agoFix loopfilter race condition in multithreaded encoder
Attila Nagy [Wed, 25 Apr 2012 11:04:55 +0000 (14:04 +0300)]
Fix loopfilter race condition in multithreaded encoder

Race was introduced by https://gerrit.chromium.org/gerrit/15563.

If loopfilter related config params were changed between frames, or
after a KEY frame, there could be a mismatch between encoder's and
decoder's recontructed image. In worst case, when frame buffers are
reallocated because of a size change, the loopfilter could
do an invalid data access (segmentation fault).

Fixes:
Sync with the loopfilter before applying any encoder changes in
vp8_change_config().
Moved the loopfilter synching to the top of
encode_frame_to_data_rate() so that it's done before any alteration of
the encoder.

Change-Id: Ide5245d2a2aeed78752de750c0110bc4b46f5b7b

12 years agoSimplifies decoder multithread synching
Attila Nagy [Fri, 20 Apr 2012 11:14:24 +0000 (14:14 +0300)]
Simplifies decoder multithread synching

Increment the last_row_mb_col counter by nsync after last MB of row is
ready. This way we dont need to check for last MB of row when
synching.

Set last MB of row ready just after row extension is done, This avoids
o potential race condition whit the processing of last MB of next row.

Change-Id: I19c44fd6041116ee5483be2143b4f4bfcd149eac

12 years agoMerge "Use LIBSUBDIR for vpx.pc." into eider
John Koleszar [Mon, 23 Apr 2012 19:11:08 +0000 (12:11 -0700)]
Merge "Use LIBSUBDIR for vpx.pc." into eider

12 years agoMerge "multi-res: restore v1.0.0 API" into eider
John Koleszar [Mon, 23 Apr 2012 19:07:18 +0000 (12:07 -0700)]
Merge "multi-res: restore v1.0.0 API" into eider

12 years agoShares one set of RD costs tables between all encoding threads
Attila Nagy [Tue, 17 Apr 2012 07:40:56 +0000 (10:40 +0300)]
Shares one set of RD costs tables between all encoding threads

RD costs were local to MACROBLOCK data and had to be copied all the
time to each thread's MACROBLOCK data. Tables moved to a common place
and only pointers are setup for each encoding thread.

vp8_cost_tokens() generates 'int' costs so changed all types to be
int (i.e. removed unsigned).

NOTE: Could do some more cleaning in vp8cx_init_mbrthread_data().

Change-Id: Ifa4de4c6286dffaca7ed3082041fe5af1345ddc0

12 years agoRemoved mcomp_filter_type
Scott LaVarnway [Mon, 23 Apr 2012 17:23:21 +0000 (13:23 -0400)]
Removed mcomp_filter_type

and replaced with use_bilinear_mc_filter.

Change-Id: Ie9e9f0bccca4ab7d3e23ae045aefed33536103ff

12 years agoMerge "Removes duplication of key frame mode probabilities"
Scott LaVarnway [Mon, 23 Apr 2012 17:07:50 +0000 (10:07 -0700)]
Merge "Removes duplication of key frame mode probabilities"

12 years agoOptimizes precalculated decoder block ptrs&offs
Attila Nagy [Mon, 23 Apr 2012 12:20:07 +0000 (15:20 +0300)]
Optimizes precalculated decoder block ptrs&offs

The block pointers and offset do not need to be calculated for every
frame. Block internal predictors can be update once when decoder is
allocated. Destination and previous buffer offsets have to be updated
just when frame size is changing.

Change-Id: I92ca8df0e6aaac4cc35ab890751d446760bf82e2

12 years agoRemoves duplication of key frame mode probabilities
Attila Nagy [Mon, 23 Apr 2012 09:53:30 +0000 (12:53 +0300)]
Removes duplication of key frame mode probabilities

Key frame macrobock and block mode probabilities are constant.
Remove the allocation of tables for each codec instance and use
instead the default const prob tables.

Change-Id: I8361798ac491f9b3889e86925a494c58647c753f

12 years agoUse LIBSUBDIR for vpx.pc.
Takanori MATSUURA [Fri, 20 Apr 2012 22:11:46 +0000 (15:11 -0700)]
Use LIBSUBDIR for vpx.pc.

Change-Id: Ibba635696e8c23086e5d3c0e8452ab97c460d7d7

12 years agomulti-res: restore v1.0.0 API
John Koleszar [Thu, 19 Apr 2012 17:00:33 +0000 (10:00 -0700)]
multi-res: restore v1.0.0 API

Move the notion of 0 bitrate implying skip deeper into the codec,
rather than doing it at the multi-encoder API level. This preserves
v1.0.0 ABI compatibility, rather than forcing a bump to v2.0.0 over a
minor change. Also, this allows the case where the application can
selectively enable and disable the larger resolution(s) without having
to reinitialize the codec instace (for instance, if no target is
receiving the full resolution stream).

It's not clear how deep to push this check. It may be valuable to
allow the framerate adaptation code to run, for example. Currently put
the check as early as possible for simplicity, should reevaluate this
as this feature gains real use.

Change-Id: I371709b8c6b52185a1c71a166a131ecc244582f0

12 years agovp8_change_config: don't force kf with spatial resampling
John Koleszar [Fri, 20 Apr 2012 17:17:57 +0000 (10:17 -0700)]
vp8_change_config: don't force kf with spatial resampling

Look for changes in the codec's configured w/h instead of its active
w/h when forcing keyframes. Otherwise calls to vp8_change_config()
will force a keyframe when spatial resampling is active.

Change-Id: Ie0d20e70507004e714ad40b640aa5b434251eb32

12 years agoMerge "Makes all mode token tables const part 2"
Scott LaVarnway [Fri, 20 Apr 2012 15:22:56 +0000 (08:22 -0700)]
Merge "Makes all mode token tables const part 2"

12 years agoMakes all mode token tables const part 2
Scott LaVarnway [Thu, 19 Apr 2012 21:35:20 +0000 (17:35 -0400)]
Makes all mode token tables const part 2

(see Change I9b2ccc88: Makes all mode token tables const)
Further remove runtime table initialization and use
precalculated const data.  Data footprint reduced
by 4112 bytes.

Change-Id: Ia3ae9fc19f77316b045cabff01f6e5f0876a86ab

12 years agortcd: serialize function pointer initialization
John Koleszar [Wed, 18 Apr 2012 23:03:40 +0000 (16:03 -0700)]
rtcd: serialize function pointer initialization

Ensure that RTCD function pointers are set at most once, to silence
some data race warnings. Implementation provided for POSIX threads and
Win32, with the prior unsynchronized behavior left in place for other
platforms.

Change-Id: I65c5856df43ef67043b3d5f26ddafddd8fcb2f7e

12 years agoPorts vpx_xcaler to new RTCD method
Attila Nagy [Thu, 19 Apr 2012 12:55:03 +0000 (15:55 +0300)]
Ports vpx_xcaler to new RTCD method

We can get rid of all remaining global initializers now:
 vp8_scale_machine_specific_config()
 vp8_initialize()
 vp8dx_initialize()

Change-Id: I2825cea5d1c01ad9f6c45df49a0f86d803bfeb69

12 years agoMakes all mode token tables const
Attila Nagy [Thu, 19 Apr 2012 12:14:28 +0000 (15:14 +0300)]
Makes all mode token tables const

Mode token tabels precalculated in entropymode.c.
Removes vp8_initialize_common()as all common global data
is precalculated const now.

Change-Id: I9b2ccc883e4f618069e1bc180dad3a823394eb73

12 years agoMerge "Makes all global data in tokenize.c const"
Johann [Wed, 18 Apr 2012 17:51:46 +0000 (10:51 -0700)]
Merge "Makes all global data in tokenize.c const"

12 years agoMakes all global data in tokenize.c const
Attila Nagy [Mon, 16 Apr 2012 11:47:40 +0000 (14:47 +0300)]
Makes all global data in tokenize.c const

Removes all runtime initialization of global data in tokenize.c.
DCT token and cost tabels are pre-generated.

Second patch in a series to make sure code is reentrant.

Change-Id: Iab48b5fe290129823947b669413101f22a1bcac0

12 years agoMakes all global data in entropy.c const
Attila Nagy [Mon, 16 Apr 2012 07:23:57 +0000 (10:23 +0300)]
Makes all global data in entropy.c const

Removes all runtime initialization of global data in entropy.c.
Precalculated values are used for initializing all entropy related
tabels.

First patch in a series to make sure code is reentrant.

Change-Id: I9aac91a2a26f96d73c6470d772a343df63bfe633

12 years agocorrect alt-ref contribution to frame rate
John Koleszar [Mon, 16 Apr 2012 19:22:59 +0000 (12:22 -0700)]
correct alt-ref contribution to frame rate

When producing an invisible ARF, the time stamp counters aren't
updated since the last time stamp is seen by the codec twice. The
prior code was trapping this case with refresh_alt_ref, but this isn't
correct for other uses of the ARF. Instead, use the show_frame flag.

Change-Id: If67fff7c6c66a3606698e34e2fb5731f56b4a223

12 years agoFTFY: Check for astyle and version
Johann [Thu, 12 Apr 2012 23:09:46 +0000 (16:09 -0700)]
FTFY: Check for astyle and version

Change-Id: I377387681332cfc975254cd825e4ad2998271690

12 years agoMerge "Use OFFSET_PATTERN from libs.mk"
Johann [Thu, 12 Apr 2012 19:15:04 +0000 (12:15 -0700)]
Merge "Use OFFSET_PATTERN from libs.mk"

12 years agoMerge "MB_MODE_INFO size reduction"
Scott LaVarnway [Thu, 12 Apr 2012 19:03:45 +0000 (12:03 -0700)]
Merge "MB_MODE_INFO size reduction"

12 years agoMerge "loopfilter improvements"
Scott LaVarnway [Thu, 12 Apr 2012 19:02:24 +0000 (12:02 -0700)]
Merge "loopfilter improvements"