Commit Graph

1923 Commits

Author SHA1 Message Date
James Zern
15296c24a6 I420VideoSource: add members to ctor initialization
silences valgrind warnings about uninitialized values in SetSize()

Change-Id: I54c4fdcc246687793393735b213c8777e79e47da
2012-07-09 17:36:01 -07:00
Yunqing Wang
eab09e34e3 Merge "Add 0 offsets handling in SSSE3 sixtap_predict functions" 2012-07-03 15:55:02 -07:00
Yunqing Wang
cdc35037a5 Merge "Fix subpixel_predict initialization" 2012-07-03 15:22:00 -07:00
Yunqing Wang
147e864629 Add 0 offsets handling in SSSE3 sixtap_predict functions
This patch fixed issue 458 by calling copy function when both
offsets are 0, which guarantees the SSSE3 functions output
same result as the c function for all possible offsets.

Change-Id: I209aec7a4c6b3362db2646a8887c1038493b6496
2012-07-02 16:50:48 -07:00
Yunqing Wang
b293698561 Fix subpixel_predict initialization
xd->subpixel_predict16x16 is called in first pass, but isn't
initialized in first pass, which causes segfault. This patch
fixed that problem.

Change-Id: Ibd2cad4e2d32ea589fc3e0876d60d3079ae836e7
2012-07-02 14:47:47 -07:00
John Koleszar
acd147c50c Build unit test driver from the default target
We need an easy way to build the unit test driver without running the
tests. This enables passing options like --gtest_filter to the
executable, which can't be done very cleanly when running under
`make test`.

Fixed a number of compiler errors/warnings when building the tests
in various configurations by Jenkins.

Change-Id: I9198122600bcf02520688e5f052ab379f963b77b
2012-06-29 15:03:50 -07:00
John Koleszar
e7bbedce5f fdct4x4_test: remove unnecessary includes
Removes compiler warnings stemming from compiling C as C++.

Change-Id: I84ec60d04fcc6281b6f2ea75af6a22fa3232d95f
2012-06-29 12:17:58 -07:00
Yunqing Wang
e2c5e78ad9 Merge "Fix decimation_count in drop_frame" 2012-06-29 10:57:39 -07:00
James Zern
31fd98d724 fix permissions on regular files
Change-Id: I731354b3cf3405eba2dfffcb47d174b5fa9df21a
2012-06-27 23:45:56 -07:00
Yaowu Xu
e859faa29e fixed a build problem with target=x86_64-win64-vs9
Change-Id: I9c56216d22212c4fc13a5e2ed02f30f5b373b94c
2012-06-25 17:24:15 -07:00
Yaowu Xu
532faf0f1c Added unit test for 4x4 forward dct
Change-Id: I1607676879c29adc0173a3c0355a0e5d8a84fc3b
2012-06-25 17:05:52 -07:00
Jim Bankoski
6c86ef2ea4 Merge "Add unit test for intra prediction." 2012-06-25 14:46:45 -07:00
John Koleszar
d67acd870a Merge changes I94a061eb,If6910fe3
* changes:
  add auto keyframe unit test
  Add support for downloading test data
2012-06-25 12:52:02 -07:00
John Koleszar
4e06b0c602 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
2012-06-25 10:09:05 -07:00
Ronald S. Bultje
a441b60aa0 Add unit test for intra prediction.
Change-Id: I7dadadeb99bee5a51219f46fe11c760fc294c735
2012-06-25 09:34:10 -07:00
Jim Bankoski
96b6b6bbf0 add auto keyframe unit test
To do so we add a framework for encoding a yv12 file..

Change-Id: I94a061eb916beaf6cde920cf1aaadb6eed10a717
2012-06-23 11:20:41 -07:00
Paul Wilkins
a87fb0da5b 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
2012-06-23 16:33:30 +01:00
John Koleszar
3cecdd683e Merge "Cosmetics: test/test_libvpx.cc" 2012-06-22 15:13:39 -07:00
Johann
1a376c407a Merge "Clean Android build defaults" 2012-06-22 12:56:01 -07:00
John Koleszar
17b34a1bba Cosmetics: test/test_libvpx.cc
Itchy submit finger, incorporate review comments.

Change-Id: I7754ad825da32389510d1bfc967f542f0b1033ed
2012-06-22 11:53:04 -07:00
John Koleszar
3897b48aba Merge "Runtime CPU detection for unit tests" 2012-06-22 11:47:02 -07:00
John Koleszar
c8c71f1fbf Runtime CPU detection for unit tests
Filter out tests that require SIMD extensions if the host doesn't
support them.

Change-Id: Ifac4b73e98e64f9f1b082cc0ffbf5c2faffb0834
2012-06-22 10:59:14 -07:00
John Koleszar
007486329f Add support for downloading test data
The commit introduces a make target 'testdata' that downloads the
required test data from the WebM project website. The data will also
be downloaded if invoking `make test` but is not a strict requirement
for only building the test executable.

The download directory is taken from the LIBVPX_TEST_DATA_PATH
environment variable, or may be specified as part of the make command.
If unset, it defaults to the current directory. It's expected that
most developers will want to set this environment variable to a place
outside their source/build trees, to avoid having to download the data
more than once.

To add test data file:

  1) add a line to test/test.mk:

      LIBVPX_TEST_DATA-yes += foo-bar-file.y4m

  2) add its sha1sum to the test/test-data.sha1 file in the following
     format:

      528cc88c821e5f5b133c2b40f9c8e3f22eaacc4c  foo-bar-file.y4m

  3) upload the file to the website

      $ gsutil cp foo-bar-file.y4m gs://downloads.webmproject.org/test_data/libvpx

This implementation will check the integrity of the test data
automatically if the `sha1sum` executable is available.

Change-Id: If6910fe304bb3f5cdcc5cb9e5f9afa5be74720d2
2012-06-21 10:41:48 -07:00
Adrian Grange
c7acd6db5e 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
2012-06-20 16:27:59 -07:00
Paul Wilkins
6fc1d9efc4 Merge "Fix segmentation updates with vp8_set_roimap()" 2012-06-20 10:34:28 -07:00
John Koleszar
6291dd4c2f Fix compilation with -werror
Fix a last few warnings with multithread, arm, 32 bit

Change-Id: Ic7c67616c370d0ff87562a232fb1e5df0702dc86
2012-06-20 09:43:42 -07:00
Johann
d6e80deb32 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
2012-06-20 09:15:28 -07:00
Paul Wilkins
7c32cb52b5 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
2012-06-20 12:49:29 +01:00
Attila Nagy
5daaa838a6 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
2012-06-20 10:15:24 +03:00
John Koleszar
b178fe7bfb Merge "disable lagged encoding in one-pass" 2012-06-19 14:50:46 -07:00
Adrian Grange
5eaa9bcfe3 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
2012-06-19 14:02:22 -07:00
John Koleszar
0277c70a17 Merge "Fix pkg-config file to pull in libm" 2012-06-15 17:03:21 -07:00
Rob Bradford
576629baaf 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
2012-06-15 16:37:33 -07:00
John Koleszar
8df79e9d42 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
2012-06-15 16:26:39 -07:00
James Zern
7b0b6a2c41 disable lagged encoding in one-pass
This currently has no effect and can create an artificial lag in e.g.,
realtime.

Change-Id: Ia1c7c6dbe7c6fe82a944f087f1b0d1dbbc0aa1b6
2012-06-13 14:06:34 -07:00
Yunqing Wang
0ca0c4f6a0 Remove goldfreq in VP8_COMP
goldfreq can be replaced by DEFAULT_GF_INTERVAL.

Change-Id: I3659a9e7b9a6be9cb1952a1838e02c20d656e369
2012-06-12 11:57:26 -04:00
John Koleszar
0164a1cc5b 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
2012-06-11 15:14:58 -07:00
John Koleszar
30fb976e3e Merge "Fix MSVS builds for unit test changes" 2012-06-11 13:52:28 -07:00
John Koleszar
52ec78be7d Fix bad merge
Change-Id: I45849dde0ee9b7e87fa32adb65ade8486bb66556
2012-06-11 12:24:14 -07:00
John Koleszar
598759be1d Merge branch 'origin/eider' into master
Change-Id: I79fd7bd18aa1af41cd066ccc3d1cd16744b9c8d1
2012-06-11 12:06:53 -07:00
John Koleszar
71618e542c Merge "Reset Q for key frame when spatial resizing occurs." 2012-06-11 12:02:56 -07:00
John Koleszar
118b9931d7 Merge "Skip AS detection for VS" 2012-06-11 12:02:35 -07:00
James Zern
538c6ea3d3 build: hide grep/obj_int_extract commands when verbose=0
Change-Id: Ic30d7335b5bf912b39ea55f2b759fe5b7d523ca8
2012-06-09 14:52:56 -07:00
Yunqing Wang
53d92e61cc Fix decimation_count in drop_frame
Frame dropping decision is made by evaluating both current frame
and next frame's buffer_level. If both buffer_levels are less
than drop_mark, next frame is dropped. When frame dropping is
over, namely, buffer_level becomes normal again, we need to
reset decimation_count to 0.

Change-Id: Iae182612e61e0da367fbd43afdc90738d975d1a3
2012-06-07 14:47:37 -04:00
Yunqing Wang
9904c28f5b Remove unused code in drop_frame
Removed unused parameters and code related to drop_frame.

Change-Id: I594e050d49b1805c6f72abf06005ef624256bb57
2012-06-07 11:26:47 -04:00
Marco Paniconi
baedcedcbe 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
2012-06-06 15:18:18 -07:00
Johann Koenig
5d0174bc02 Skip AS detection for VS
Visual Studio doesn't use the assembler in $PATH

Change-Id: I169f8492127cbc1d256a2fb2e749cd970040ccc8
2012-06-05 15:40:59 -07:00
John Koleszar
363a67c601 Merge "Fix windows build: obj_int_extract to extract numbrs from .rdata" into eider 2012-06-04 18:54:52 -07:00
John Koleszar
5205d299bb Merge "asm_*_offsets to define variables as constants" into eider 2012-06-04 18:54:23 -07:00
Alpha Lam
2926571be6 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
2012-06-04 18:03:41 -07:00