Age | Commit message (Collapse) | Author |
|
Optimized fdct4x4 (8x4) for ARMv6 instruction set.
- No interlocks in Cortex-A8 pipeline
- One interlock cycle in ARM11 pipeline
- About 2.16 times faster than current C-code compiled with -O3
Change-Id: I60484ecd144365da45bb68a960d30196b59952b8
|
|
The mmap allocation code in vp8_dx_iface.c was inconsistent.
The static array vp8_mem_req_segs defines two descriptors,
but only the first is real. The second is a sentinel and
isn't actually allocated, so vpx_codec_alg_priv is declared
with mmaps[NELEMENTS(vp8_mem_req_segs)-1]. Some functions
use this reduced upper bound when iterating though the mmap
array, but these two functions did not.
Instead, this commit calls NELEMENTS(...->mmaps) to directly
query the bounds of the dereferenced array.
This fixes an array-bounds warning from gcc 4.6 on
vp8_xma_set_mmap.
Change-Id: I918e2721b401d134c1a9764c978912bdb3188be1
|
|
Change-Id: I48642c380353043bed96026f56de5908fcee270a
|
|
|
|
Fixes implicit declaration warning for 'mach_task_self'. This change
is an update to Change I9991dedd1ccfddc092eca86705ecbc3b764b799d,
which fixed this issue for the decoder but not the encoder.
Change-Id: I9df033e81f9520c4f975b7a7cf6c643d12e87c96
|
|
Change-Id: I9965170b40e2f32e9d84895c33a529b0d7dacdc1
|
|
Change-Id: I08edaffc62514907fa5e90e1689269e467c857f5
|
|
Change-Id: Ib0c280e1fcfd977e11e4390807b2c8077a87500c
|
|
|
|
Change-Id: I18bfda6d420626f2718e096e338c1d0bf0ba029d
|
|
obj_int_extract was unconditionally skipping the first character in the
symbol. make sure it's actually an '_' first
Change-Id: Icfe527eb8a0028faeabaa1dcedf8cd8f51c92754
|
|
|
|
Change-Id: I77e9f2f521a71089228f96e2db72524189364ffb
|
|
Without this change I get link errors in firefox's libxul. It looks
like the linker expect a particular pattern for getting the GOT. This
patch changes webm to use the same pattern used by the compiler.
Change-Id: Iea8c2e134ad45c1dc7d221ff885a8429bfa4e057
|
|
|
|
The vp8_build_intra_predictors_mby and vp8_build_intra_predictors_mby_s
functions had global function pointers rather than using the RTCD
framework. This can show up as a potential data race with tools such as
helgrind. See https://bugzilla.mozilla.org/show_bug.cgi?id=640935
for an example.
Change-Id: I29c407f828ac2bddfc039f852f138de5de888534
|
|
|
|
|
|
Fix compiling on 32 bit x86.
Change-Id: I6210573e1d9287ac49acbe3d7e5181e309316107
|
|
Clean up vp8_init_config() a bit and remove null pointer case,
as this code can't be called any more and is not an adequate
trap anyway, as a null pointer would cause exceptions before
hitting the test.
Change-Id: I937c00167cc039b3aa3f645f29c319d58ae8d3ee
|
|
|
|
Issue 291 highlighted the fact that CQ mode was not working
as expected in 1 pass mode,
This commit fixes that specific problem but in so doing I also
uncovered an overflow issue in the VBR code for 1 pass and
some data values not being correctly initialized.
For some clips (particularly short clips), the resulting
improvement is dramatic.
Change-Id: Ieefd6c6e4776eb8f1b0550dbfdfb72f86b33c960
|
|
|
|
|
|
|
|
|
|
Change-Id: Ie388d4618c44b131f96b9fe526618b457f020dfa
|
|
Change-Id: I91921b0a90dbaddc7010380b038955be347964b3
|
|
Use aligned store.
Change-Id: Icab4c0c53da811d0c52bb7e8134927f249ba2499
|
|
|
|
Change-Id: Iadcbdba717439f47a2c24e65fd69a3a1464174b5
|
|
In multithreaded mode the loopfilter is running in its own thread (filter level
calculation and frame filtering). Filtering is mostly done in parallel with the
bitstream packing. Before starting the packing the loopfilter level has
to be calculated. Also any needed reference frame copying is done in the
filter thread.
Currently the encoder will create n+1 threads, where n > 1 is the number of
threads specified by application and 1 is the extra filter thread. With n = 1
the encoder runs in single thread mode. There will never be more than n threads
running concurrently.
Change-Id: I4fb29b559a40275d6d3babb8727245c40fba931b
|
|
Adds new ARMv6 optimized function vp8_fast_quantize_b_armv6
to the encoder.
Change-Id: I40277ec8f82e8a6cbc453cf295a0cc9b2504b21e
|
|
Enable extraction of assembly offsets from compiled examples in MSVS.
This will allow us to remove some stub functions from x86 assembly since
we will be able to reliably determine structure offsets at compile time.
see ARM code for examples:
vp8/encoder/arm/armv5te/
vpx_scale/arm/neon/
Change-Id: I1852dc6b56ede0bf1dddb5552196222a7c6a902f
|
|
Printout of firstpass stats for frame had one fewer
format specifiers than arguments.
Change-Id: I5a42c85aa79c471e1a70afd75e24a91546b7a1cd
|
|
The firstpass motion map consists of an 8-bit flag for
each MB indicating how strongly the firstpass code
believes it should be filtered during the second pass
ARNR filtering.
For long or large format material the motion map can
become extremely large and hamper the operation of
the encoding process.
This change removes the motion map altogether, leaving
the second pass to rely on the magnitude of the motion
compensated error to determine the filter weight to
use for the MB during ARNR filtering.
Tests on the derf set indicate that the effect of this
change is neutral, with some small wins and losses. The
motion map has therefore been removed based on
a cost/benefit evaluation.
Change-Id: I53e07d236f5ce09a6f0c54e7c4ffbb490fb870f6
|
|
The previous calculation of macroblock count (w*h)/256
is not correct when the width/height are not multiples of
16. Use the precalculated macroblock count from
cpi->common instead. This manifested itself as a divide
by zero when the number of pixels was less than 256.
num_mbs updated in estimate_max_q, estimate_q,
estimate_kf_group_q, and estimate_cq
Change-Id: I92ff98587864c801b1ee5485cfead964673a9973
|
|
|
|
Change-Id: Icf18b4981afb12ef255fca431d4ba45860dd22c9
|
|
Missing file causes 'make dist' to not include a complete copy of the
source.
Change-Id: I3f55aeb5a86d0e81234e4e4588cb8086ba4cfc4a
|
|
|
|
Added SSSE3 function
Change-Id: I8c304c92458618d93fda3a2f62bd09ccb63e75ad
|
|
Removed some unused functions
Change-Id: Ifdfc27453e53cfc75997b38492901d193a16b245
|
|
|
|
|
|
Move the update of the loopfilter info to the same block where it
is used. GCC 4.5 is not able trace the initialization of the local
filter_info across the other calls between the two conditionals on
pbi->common and issues an uninitialized variable warning.
Change-Id: Ie4487b3714a096b3fb21608f6b0c74e745e3c6fc
|
|
failed to find headers in the source directory
output to stdout instead of a hardcoded file
MinGW doesn't support _sopen_s
_fstat catches non-existant files
Change-Id: I24e0aacc6f6f26e6bcfc25f9ee7821aa3c8cc7e7
|
|
Rewrote these functions to process 16 pixels once instead of 8.
Change-Id: Ic67e80124467a446a3df4cfecfb76a4248602adb
|
|
|
|
|