Commit Graph

3711 Commits

Author SHA1 Message Date
Scott LaVarnway
3299f88800 Bug fix: Issue 532: VPX codec executes emms instruction without
checking CPU capabilities

Reported by Krzysztof Kaspruk.
https://code.google.com/p/webm/issues/detail?id=532

Change-Id: I9efa693b0c33694c871189841b8ac59c1fc554e2
2013-03-15 14:27:15 -07:00
Scott LaVarnway
720d4eaaba Bug fix: Issue 531: MMX code tries to read from SSE2 register
Reported by Krzysztof Kaspruk.
https://code.google.com/p/webm/issues/detail?id=531

Change-Id: Ib5d5878ad07707bd42c2ca833eb021004f537012
2013-03-15 09:27:09 -07:00
Scott LaVarnway
f77140b7b4 Merge "Removed shadow warnings : loopfilter*.c" 2013-03-14 10:55:58 -07:00
Scott LaVarnway
fc6a190af4 Removed shadow warnings : reconintra.c
Adding -Wshadow to CFLAGS generated a bunch of warnings.  This patch
removes these warnings.

Change-Id: I9d52c4a44351607d7d20d52e2a1bffe2a067891a
2013-03-14 08:28:34 -07:00
Scott LaVarnway
60bbd43995 Removed shadow warnings : loopfilter*.c
Adding -Wshadow to CFLAGS generated a bunch of warnings.  This commit
is based on work already done by jzern.

Change-Id: Iefc08a7ab601c4d1b507f039577433bfb1c6cc9d
2013-03-14 08:23:26 -07:00
John Koleszar
2bf563c335 vpxenc: improve progress indicators with --skip
Account for skipped input frames when calculating frame rates, ETA.

Fixes https://code.google.com/p/webm/issues/detail?id=556

Change-Id: I9c8b51e02e9ff0ab2cf6f16fc9382fc7f6c77b80
2013-03-11 15:03:00 -07:00
John Koleszar
83f2a112ac vpxdec: fix use of uninitialized do_scale argument
This fixes a potential crash with VP8 streams that have an alt-ref on
the first frame, as well as potentially scaling the output in cases
where that wasn't desired.

Change-Id: I1fd74b5ab43329fbbffecb004dfd44de34c4dc22
2013-03-11 12:30:29 -07:00
James Zern
1e8b3da75e Merge "vp8: clamp probability values" 2013-03-08 11:20:49 -08:00
James Zern
215084b31c vp8: clamp probability values
fixes out of bounds reads on vp8_prob_cost table.
present since:
217591f Added rate-targeted temporal scalability
v0.9.7-p1-71-g217591f

Change-Id: I9194b773098a381f1e3f67bd3307f05df27c24fd
2013-03-05 16:18:24 -08:00
Dmitry Kovalev
7d855a9f13 Merge "Code cleanup." 2013-03-05 14:22:23 -08:00
Dmitry Kovalev
33efdfec3f Code cleanup.
Writing all #define guards using the same style. Inlining macro
VP8DX_BOOL_DECODER_FILL into vp8dx_bool_decoder_fill. Removing unnecessary
includes.

Change-Id: I483fa979ab34008bf7835b5f34c6471c44daf956
2013-03-04 16:53:00 -08:00
John Koleszar
7d8fc26c9c vpxdec: support scaling output
Adds an option, --scale, that will rescale any frames produced by
the decoder that don't match the resolution of the first frame to
that resolution. This is useful for playback of files that use
spatial resampling.

Change-Id: I867adc650d535df7ec5b107549359712ea3aaaa0
2013-03-04 13:21:54 -08:00
John Koleszar
406ec6b62e Fix rollover and pass 1 time estimate
Fixes a rollover of the cx_time variable for encodes that take
over ~4200 seconds. Also enable the time estimate in first pass.

Change-Id: Ib5a98ee71bccd79a804d709cec7260651d0b7141
2013-03-04 13:21:54 -08:00
John Koleszar
7dfec96059 vpxenc: support scaling prior to encoding
Scales the input of the encoder using libyuv's "box filter". Each stream
may have a different width and height specified. If the width (or
height) parameter is missing (or is explicitly set to 0) then the value
will be calculated based on the specified height (or width) and the
input file's dimensions, preserving its aspect ratio. Leaving the height
unspecified behaves similarly.

Change-Id: I700ef89ce54fb87588420a71c39c0e3e73b1a40e
2013-03-04 13:21:47 -08:00
Ronald S. Bultje
2d13e7b33e Don't exit on decode errors in vpxenc.
Allows the user to specify whether decode errors should be fatal or not.
Also makes mismatches optionally fatal.

Change-Id: I58cff4a82f3d42f5653b91cf348a7f669377e632
2013-03-04 13:19:09 -08:00
John Koleszar
60d8c50514 Add estimated completion time to vpxenc
Make the progress line more useful by providing per-frame updates of
processing frame rate and estimated time remaining.

Fixes issue #534.

Change-Id: Ic91551878ff4b2f5db1cedaafb588add220cfa52
2013-03-04 13:18:55 -08:00
James Zern
a5762191d7 Merge "vp8_init: fix NULL dereference on allocation error" 2013-03-04 11:10:06 -08:00
James Zern
798c5b148d vp8_init: fix NULL dereference on allocation error
Change-Id: I15a6cd014fce8090cdb0441723bd1a90b562579c
2013-03-02 14:46:06 -08:00
James Zern
08348d9cab prefix vp8 asm_{com,dec,enc}_offsets files
make them symmetrical with the generated output and their vp9
counterparts

Change-Id: I72cc97c4d33d713dff620a6d7cc25955266216fc
2013-03-02 14:45:40 -08:00
Johann
403145032d Merge "Use intrinsics for sse2 regular quantize" 2013-03-01 17:20:26 -08:00
Johann
eca59cad0b Use intrinsics for sse2 regular quantize
Remove dependency of this function on asm_offsets. ssse3/sse4 next.

Change quant_shift calculation so it be done using SIMD. Pre-calculate
as much as possible to simplify EOB selection.

Take advantage of qcoeff being zero'd by tying the if statements
together.

Speed parity with previous implementation with gcc x86_64 linux

Change-Id: Ife97556a1eca3a74b09def1a3d04084974dff1fb
2013-02-28 18:06:15 -08:00
James Zern
a07bed2b2b firstpass.c: correct casting around gf_group_bits
gf_group_bits is int64_t remove casts to int.

Change-Id: I3b4225905041fac9af9fdfcbcb6f1c357ea4b593
2013-02-28 15:45:29 -08:00
Johann
67978d1380 Merge "vp8 fast quantizer with intrinsics" 2013-02-28 11:32:03 -08:00
James Zern
3b79000122 Merge "vp8/encoder/mcomp.c: remove an unused variable" 2013-02-27 11:33:18 -08:00
John Koleszar
d711f1091d Merge "add vp8 variance test" 2013-02-27 11:22:46 -08:00
John Koleszar
09be534f13 Merge "give vp9 variance struct a unique name" 2013-02-27 11:22:36 -08:00
John Koleszar
1a1cacfdb0 Merge "rtcd: make include guard unique" 2013-02-27 11:22:26 -08:00
Jan Kratochvil
82ed3f9a41 Fix --as=nasm compatibility for new asm code.
s/movd/movq/

Change-Id: Id1a56de91551f8dc796f14f1056c565dfc1ba626
2013-02-27 09:55:38 -08:00
Johann
ef887974aa vp8 fast quantizer with intrinsics
Reduce dependency on offsets file by using intrinsics. Disassembly shows
improvements over previous assembly specifically in register management,
preloading, and {pro,epi}log. Speed change is within margin of error.

Change-Id: I8131b4b4d62bc092407fe847bfaa8f2c0e1384ff
2013-02-26 10:48:24 -08:00
James Zern
1711cf2dbb add vp8 variance test
Change-Id: I4e94ee2c4e2360d6a11a454c323f2899c1bb6f72
2013-02-22 16:25:14 -08:00
James Zern
e5fb6321a1 give vp9 variance struct a unique name
variance_vtable clashed with vp8/common/variance.h

Change-Id: I09c1de44d5519f1bd13f58c01144c0de4706de6f
2013-02-22 16:25:13 -08:00
James Zern
50771d41f2 rtcd: make include guard unique
prior numbers were removed resulting in the same include guard for
vp[89]_rtcd

Change-Id: If2741e5b0cbdda7390c20e865e9f05992caff93e
2013-02-22 16:05:00 -08:00
James Zern
ca64f6c14f vp8/encoder/mcomp.c: remove an unused variable
Change-Id: I980da3c70f7cee1b723ede0ed2ae527ac7cd6a51
2013-02-22 15:38:45 -08:00
James Zern
e4ef850823 Merge "Fix variance (signed integer) overflow" 2013-02-22 15:33:20 -08:00
James Zern
c21226b638 Merge "vp8: make gf_group_bits 64-bit" 2013-02-22 15:31:28 -08:00
James Zern
5e0724abad Merge "vp8_first_pass(): avoid floating point div by 0" 2013-02-22 15:30:14 -08:00
James Zern
4e00060d29 vp8: make gf_group_bits 64-bit
avoids signed integer overflow; matches kf_group_bits

Change-Id: I193145cdc4fa53e70fba0a1731a03eb1a574931d
2013-02-22 12:45:28 -08:00
James Zern
fba9772dd2 vp8_first_pass(): avoid floating point div by 0
Change-Id: Id1e6a12db6b0c1d3f64ead8fd8834aadc30fbed2
2013-02-22 12:41:59 -08:00
James Zern
cc894a184f Fix variance (signed integer) overflow
based on change made in experimental:
  9847344 Fix variance (signed integer) overflow

Change-Id: I36f4ba5700f6f4615057daf7e70868f68a86669f
2013-02-22 12:40:08 -08:00
James Zern
6639b25782 Merge "Fixed the buffer overflow issue" 2013-02-22 12:36:32 -08:00
James Zern
27bce6c5dc Merge "sixtap_predict_test: fix sizes passed to memset" 2013-02-22 12:32:07 -08:00
Jingning Han
936aa281b5 Fixed the buffer overflow issue
The issue that potentially broke the encoding process was due to the fact
that the length of token link is calculated from the total number of tokens
coded, while it is possible, in high bit-rate setting, this length is
greater than the buffer length initially assigned to the cpi->tok.

This patch increases the initially allocated buffer length assigned to
cpi->tok from
(mb_rows * mb_cols * 24 * 16) to (mb_rows * mb_cols * (1 + 24 * 16)).

It resolves the buffer overflow problem.

Change-Id: I8661a8d39ea0a3c24303e3f71a170787a1d5b1df
2013-02-22 12:30:35 -08:00
James Zern
540997afba sixtap_predict_test: fix sizes passed to memset
src_/dst_/dst_c_ are heap allocated, use the allocation size rather than
sizeof(var)

Change-Id: I3335ad487dc9b154cdf212891d1d74c812eff060
2013-02-22 11:29:47 -08:00
John Koleszar
f356b740ff Merge "Remove 'local' variables in rtcd.sh" 2013-02-22 08:22:33 -08:00
KO Myung-Hun
a344456cb4 Append .exe to the executable on OS/2
Change-Id: I1c3b17450b08d2fdfacb7b94055da29d4d20f9c8
2013-02-22 12:38:07 +09:00
John Koleszar
43cec44bbf Remove 'local' variables in rtcd.sh
These aren't required to be supported by sh.

Change-Id: I54d641a2377531e0b320676d29d4ecdeee82288a
2013-02-21 11:11:13 -08:00
KO Myung-Hun
0ef72720d0 Use dq instead of ddq with NASM
Change-Id: Iffb7cd44b449dc10fa5c24405be909d051b7abb5
2013-02-17 17:30:34 +09:00
KO Myung-Hun
7f5e4fd7bd Use smartalign for long nops with NASM
'CPU amdnop' is supported by YASM only.

Change-Id: Ia3f7c2ba6d3bdf2889b62f5c6127fd515d7c7394
2013-02-03 21:51:05 +09:00
KO Myung-Hun
dd8d0134e0 Disable USE_POSIX_MAP on OS/2
Change-Id: Ib88ab619fa4e1593e85ca325555f2c4648ac9bc7
2013-02-03 21:50:58 +09:00
John Koleszar
226c57e4fa Merge "Add support for x64 and win64 yasm flags." 2013-01-31 17:05:33 -08:00