Jerome Jiang [Mon, 13 Jul 2020 19:24:11 +0000 (19:24 +0000)]
Merge "Cap target bitrate to raw rate internally"
Jerome Jiang [Wed, 8 Jul 2020 00:44:13 +0000 (17:44 -0700)]
Cap target bitrate to raw rate internally
BUG=webm:1685
Change-Id: Ida72fe854fadb19c3745724e74b67d88087eb83c
James Zern [Fri, 10 Jul 2020 02:35:32 +0000 (02:35 +0000)]
Merge "test/*: rename *TestCase to TestSuite"
James Zern [Thu, 9 Jul 2020 23:38:00 +0000 (16:38 -0700)]
test/*: rename *TestCase to TestSuite
similar to the TEST_CASE -> TEST_SUITE changes in:
83769e3d2 update googletest to v1.10.0
BUG=webm:1695
Change-Id: Ib2bdb6bc0e4ed02d61523f8a8315b017b8ad6dad
jinbo [Wed, 1 Jul 2020 00:56:25 +0000 (08:56 +0800)]
vp8,vpx_dsp:[loongson] fix bugs reported by clang
1. Adjust variable type to match clang compiler.
Clang is more strict on the type of asm operands, float or double
type variable should use constraint 'f', integer variable should
use constraint 'r'.
2. Fix prob of using r-value in output operands.
clang report error: 'invalid use of a cast in a inline asm context
requiring an l-value: remove the cast or build with -fheinous-gnu-extensions'.
Change-Id: Iae9e08f55f249059066c391534013e320812463e
Marco Paniconi [Mon, 6 Jul 2020 21:04:57 +0000 (14:04 -0700)]
vp9: Update last_q for dropped frames
last_q is used in resize logic, should
always be last Q selected for previous
frame, encoded or dropped.
Change-Id: Ie9019ccf5a9e3acc8456a2e70cc2aa8d1c90236e
Marco Paniconi [Mon, 6 Jul 2020 18:28:56 +0000 (11:28 -0700)]
vp9: Fix to use last_q for resize check
For temporal layers resize is only checked
on the base/TL0 frames. So rc->last_q should be used,
which because rc is in the layer context, rc->last_q
will correspond to the qindex on last TL0 frame.
In the previous code cm->base_qindex was used, which
would correspond to qindex on last encoded frame, which
is not TL0 when temporal_layers > 1.
Change-Id: Iaf86f7156d2d48ae99a1b34ad576d453d490e746
Sreerenj Balachandran [Wed, 1 Jul 2020 02:46:17 +0000 (19:46 -0700)]
vp9-svc: Fix the bitrate control for spatial svc
Make sure to initialize the layer context for spatial-svc
which has a single temporal layer.
Change-Id: I026ecec483555658e09d6d8893e56ab62ee6914b
James Zern [Tue, 30 Jun 2020 02:43:18 +0000 (19:43 -0700)]
add CONTRIBUTING.md
serves as a brief introduction and adds a link to the gerrit
instructions on webmproject.org.
Bug: webm:1669
Change-Id: If1d483eb48e2edcda8c51e66bdd1a86b7c35b986
jinbo [Wed, 24 Jun 2020 09:10:20 +0000 (17:10 +0800)]
vp8,vpx_dsp:[loongson] fix specification of instruction name
1.'xor,or,and' to 'pxor,por,pand'. In the case of operating FPR,
gcc supports both of them, clang only supports the second type.
2.'dsrl,srl' to 'ssrld,ssrlw'. In the case of operating FPR, gcc
supports both of them, clang only supports the second type.
Change-Id: I93b47348e7c6580d99f57dc11165b4645236533c
Marco Paniconi [Fri, 26 Jun 2020 22:34:35 +0000 (15:34 -0700)]
vp9-svc: Fix to setting frame size for dynamic resize
For svc with dynamic resize (only for single_layer_svc mode),
add flag to indicate resized width/height has already been set,
otherwise on the resized/trigger frame (resize_pending=1), the
wrong resolution may be set if oxcf->width/height is different
than layer width/height in single_layer_svc mode.
Change-Id: I24403ee93fc96b830a9bf7c66d763a48762cdcb4
Marco Paniconi [Wed, 24 Jun 2020 02:20:01 +0000 (19:20 -0700)]
vp9-svc: Allow scale_references for single layer svc
This is needed to allow for newmv search in nonrd_pickmode
for resize/scaled frame, and for int_pro_motion_estimation
on resized/scaled frame.
Change-Id: I5e2fdbc4706a10813c1b00f6194e2442f648905a
James Zern [Fri, 19 Jun 2020 18:15:00 +0000 (18:15 +0000)]
Merge "tools/lint-hunks.py: skip third_party files"
James Zern [Fri, 19 Jun 2020 02:52:58 +0000 (02:52 +0000)]
Merge changes I07f2c208,I79762df8
* changes:
update googletest to v1.10.0
vp9_skip_loopfilter_test: make Init() return a bool
James Zern [Fri, 19 Jun 2020 01:34:55 +0000 (18:34 -0700)]
tools/lint-hunks.py: skip third_party files
Change-Id: I2fda3119c08b5755f1a9b2fad1125090b0d86850
Marco Paniconi [Thu, 18 Jun 2020 18:24:28 +0000 (11:24 -0700)]
vp9-rtc: Fix to resetting drop_spatial_layer
The reset happens on the base spatial layer, before
encoding. But it should be reset on the
first_spatial_layer_to_encode, which may not be 0.
Change-Id: I38ef686b4459ca7433062adbfe32ef2134e1ad60
James Zern [Wed, 17 Jun 2020 19:16:51 +0000 (12:16 -0700)]
update googletest to v1.10.0
this moves the framework to c++11 and changes *_TEST_CASE* to
_TEST_SUITE
BUG=webm:1695
Change-Id: I07f2c20850312a9c7e381b38353d2f9f45889cb1
James Zern [Thu, 18 Jun 2020 17:54:23 +0000 (10:54 -0700)]
vp9_skip_loopfilter_test: make Init() return a bool
ASSERT's in the function only force a return, not termination. this
fixes a static analyzer issue with using a null decoder object in
following calls.
BUG=webm:1695
Change-Id: I79762df8076d029c5c8fef4d5e06ed655719de62
Marco Paniconi [Wed, 17 Jun 2020 17:27:39 +0000 (10:27 -0700)]
vp9-rtc: Fixes to resizer for real-time
Reduce the time before sampling begins (after key)
and reduce averaging window, to make resize act
faster.
Reset RC paramaters for temporal layers on resize.
Add per-frame-bandwidth thresholds to force
downsize for extreme case, for HD input.
Change-Id: I8e08580b2216a2e6981502552025370703cd206c
Marco Paniconi [Tue, 16 Jun 2020 18:41:00 +0000 (11:41 -0700)]
vp9-svc: Add svc test for denoiser and dynamic resize
This catches the assert/crash fixed in 5174eb5.
Also fix to only check for dynamic resize in SVC mode
for base temporal layer.
Change-Id: Ie6eb7d233cc43eafb1b78cec4aeb94fb4d7fe11a
Marco Paniconi [Tue, 16 Jun 2020 02:11:53 +0000 (19:11 -0700)]
vp9-svc: Fix to dynamic resize for svc denoising
Fix the logic to allow denoiser reset on resize for SVC mode,
as dynamic resize is allowed for SVC under single_layer mode.
Change-Id: I7776c68dadff2ccbce9b0b4a7f0d12624c2ccf90
angiebird [Thu, 11 Jun 2020 22:10:38 +0000 (15:10 -0700)]
Let SetExternalGroupOfPicturesMap use c-style arr
Change-Id: Ic92ce5a3cc5bb74120eb32fc6219e43b1b861f14
angiebird [Mon, 8 Jun 2020 23:46:15 +0000 (16:46 -0700)]
Fix assertion error in simple_encode.cc
Change-Id: I271d11cc35d34d5450a8b56fabcedaf2bb7c6565
Angie Chiang [Wed, 3 Jun 2020 23:31:45 +0000 (23:31 +0000)]
Merge "Refactor simple_encode_test.cc"
Jerome Jiang [Tue, 2 Jun 2020 22:28:57 +0000 (22:28 +0000)]
Merge "Add NV12 support"
angiebird [Fri, 29 May 2020 23:26:57 +0000 (16:26 -0700)]
Refactor simple_encode_test.cc
1) Avoid using global variables.
2) Add comments to EncodeConsistencyTest.
3) Check frame_type and show_idx in EncodeConsistencyTest.
Change-Id: I2261a0bd65189beb70432d62c077ef618a2712ab
Jerome Jiang [Wed, 27 May 2020 20:57:50 +0000 (13:57 -0700)]
Add NV12 support
Change-Id: Ia2a8221a156e0882079c5a252f59bc84d8f516b1
angiebird [Wed, 27 May 2020 07:30:11 +0000 (00:30 -0700)]
Add extra check / unit test to SetExternalGroupOfPicturesMap()
Let SetExternalGroupOfPicturesMap() modify the gop_map_ to satisfy
the following constraints.
1) Each key frame position should be at the start of a gop.
2) The last gop should not use an alt ref.
Add unit test for SetExternalGroupOfPicturesMap()
Change-Id: Iee9bd238ad0fc5c2ccbf2fbd065a280c854cd718
Angie Chiang [Thu, 28 May 2020 05:40:26 +0000 (05:40 +0000)]
Merge "Refactor decode_api_test and realtime_test"
angiebird [Wed, 27 May 2020 02:02:33 +0000 (19:02 -0700)]
Add functions to compute/observe key frame map
Change-Id: I2fc0efb2ac35e64af3350bddaa802a206d1aa13c
angiebird [Tue, 26 May 2020 21:44:10 +0000 (14:44 -0700)]
Init static_scene_max_gf_interval in vp9_rc_init()
Change-Id: I2cad885fac2fd5f3e84d02b905a2ce59eb66760e
angiebird [Tue, 26 May 2020 19:00:36 +0000 (12:00 -0700)]
Make SetExternalGroupOfPicture support no arf mode
Rename external_arf_indexes by gop_map
Use kGopMapFlagStart to indicate the start of a gop in the gop_map.
Use kGopMapFlagUseAltRef to indicate whether to use altref in the
gop_map.
Change-Id: I743e3199a24b9ae1abd5acd290da1a1f8660e6ac
angiebird [Sat, 23 May 2020 23:28:40 +0000 (16:28 -0700)]
Add GOP_COMMAND
Send GOP_COMMAND to vp9 for setting gop decisions on the fly.
GOP_COMMAND has three members.
use: use this command to set gop or use vp9's gop decision.
show_frame_count: number of show frames in this gop.
use_alt_ref: use alt ref frame or not.
Move the logic of processing external_arf_indexes_ from
get_gop_coding_frame_num() to GetGopCommand() and
GetCodingFrameNumFromGopMap().
Change-Id: Ic1942c7a4cf6eecdf3507864577688350c7ef0cf
angiebird [Tue, 19 May 2020 02:33:05 +0000 (19:33 -0700)]
Refactor decode_api_test and realtime_test
Replace NULL by nullptr.
Use override specifier over virtual specifier.
Change-Id: Iac2c97f997abd6ed9a5cd3991e052e79996f40f4
James Zern [Tue, 19 May 2020 23:41:54 +0000 (16:41 -0700)]
vp9_decoder: free postproc_state.prev_mip
this fixes a leak when using MFQE
BUG=webm:1692
Change-Id: I19fb2f07155769f59924e0843989b3d3f8899bf6
Marco Paniconi [Fri, 15 May 2020 21:02:00 +0000 (14:02 -0700)]
vp9-svc: Fix key frame update refresh simulcast flexible svc
For flexible svc in simulcast mode: don't allow refresh
of all reference slots on key frame. Which slots to update
should be based on the user flags.
Change-Id: I3597c61ebcdfed2055bbdffec7ce701fad892744
Yunqing Wang [Fri, 15 May 2020 16:17:52 +0000 (16:17 +0000)]
Merge "vp9_firstpass.c: limit mv_limits with MV_MAX in motion_search"
Marco Paniconi [Wed, 13 May 2020 22:08:15 +0000 (15:08 -0700)]
vp9-rtc: Increase thresh for scene detection
For CBR screen content mode. Makes it more
robust to false detections.
Change-Id: Icad89adb6f79b530b589bba2c71ba88ee5088d37
Jerome Jiang [Tue, 12 May 2020 16:54:29 +0000 (16:54 +0000)]
Merge "Don't collect stats if they won't be used"
James Zern [Tue, 12 May 2020 00:32:03 +0000 (00:32 +0000)]
Merge "Temporarily convert to 64 bits to avoid overflows"
Jorge E. Moreira [Fri, 8 May 2020 22:23:48 +0000 (15:23 -0700)]
Temporarily convert to 64 bits to avoid overflows
In the vp8_cost_branch function a couple of unsigned int are being
multiplied by integer coefficients and added to later be divided by
256. While the end result most likely fits an unsigned int, the
intermediary result of multiplying and adding sometimes doesn't (I was
able to reproduce it by leaving the encoder running at 60 fps for a
while). To avoid the multiplication overflow (which is undefined
behavior and causes a wrong result anyways) the calculation is
performed using unsigned long long instead and cast to unsigned int
for return.
Bug: b/
154172422
Test: run cuttlefish with webrtc enabled for an hour
Change-Id: If7ebbda38b2450a59ed3c99ffbb59dc62431a324
James Zern [Mon, 11 May 2020 17:25:36 +0000 (17:25 +0000)]
Merge changes Ib55d46e9,I4a4feeab
* changes:
decode_api_test: add negative test for vpx_codec_error_detail
examples: use die() on dec/enc_init() failure
Jerome Jiang [Sat, 9 May 2020 01:46:42 +0000 (01:46 +0000)]
Merge "Fix mac build with vp9 ratectrl interface"
Jorge E. Moreira [Fri, 8 May 2020 22:14:48 +0000 (15:14 -0700)]
Don't collect stats if they won't be used
When the encoder is run continuously for a few minutes at 60 fps, the
total_target_vs_actual field overflows. Since this field is a signed
integer that's considered undefined behavior in C++, which causes an
abort when used in an android binary (those run with ubsan enabled)
Bug: b/
154172422
Test: run cuttelfish with webrtc enabled for an hour
Change-Id: I8f7d9d0884311a6338bdcdec76348b8cc3ce8c69
James Zern [Fri, 8 May 2020 21:56:25 +0000 (21:56 +0000)]
Merge "vpx_dec_fuzzer: add coverage for VP9D_SET_LOOP_FILTER_OPT"
Jerome Jiang [Fri, 8 May 2020 21:22:25 +0000 (14:22 -0700)]
Fix mac build with vp9 ratectrl interface
Add -std=c++11 for darwin build.
Change-Id: I760d4f7096bc33520c02b2cd7000fed9ac6cdd90
James Zern [Fri, 8 May 2020 00:18:20 +0000 (17:18 -0700)]
decode_api_test: add negative test for vpx_codec_error_detail
Change-Id: Ib55d46e9290d2bd36345ff4a9737e227664c2a5b
James Zern [Wed, 6 May 2020 20:01:57 +0000 (13:01 -0700)]
examples: use die() on dec/enc_init() failure
rather than die_codec(). calling any api functions with an uninitialized
codec context is undefined. this avoids a crash in a call to
vpx_codec_error_detail().
BUG=webm:1688
Change-Id: I4a4feeabc1cafa44c8d2f24587fad79e313dba6d
James Zern [Thu, 7 May 2020 19:54:39 +0000 (19:54 +0000)]
Merge "libs.mk,msvc: add missing vp9rc project"
James Zern [Thu, 30 Apr 2020 17:28:43 +0000 (10:28 -0700)]
libs.mk,msvc: add missing vp9rc project
+ fix some test_rc_interface issues:
add a space before $^ in the vcproj rule to add sources to the target,
one between the -I's, and make the guid unique; fixes build / link
errors.
Change-Id: Ia9c99f6a4482a001d993affbc3b3903c2a4e366a
James Zern [Wed, 6 May 2020 20:42:43 +0000 (13:42 -0700)]
vpx_dec_fuzzer: add coverage for VP9D_SET_LOOP_FILTER_OPT
BUG=chromium:1076203
Change-Id: Ib3339a9fd7d940b69a5ef89b3fbf7f4fdeaac006
James Zern [Mon, 4 May 2020 23:37:39 +0000 (23:37 +0000)]
Merge "vp8_dx_iface.c: make vp8_ctf_maps[] static"
James Zern [Mon, 4 May 2020 22:27:53 +0000 (15:27 -0700)]
vp8_dx_iface.c: make vp8_ctf_maps[] static
Change-Id: I6c19745a392681733c6deaaacc7e3540bc72fd4d
Wan-Teh Chang [Mon, 4 May 2020 18:18:22 +0000 (11:18 -0700)]
Remove unneeded null check for entry in for loop
In vpx_codec_control_(), before we enter the for loop, we have already
checked if ctx->iface->ctrl_maps is null and handle that as an error. So
the for loop can assume ctx->iface->ctrl_maps is not null, which implies
'entry' is not null (both initially and after entry++).
Change-Id: Ieafe464d4111fdb77f0586ecfa1835d1cfd44d94
James Zern [Wed, 29 Apr 2020 01:51:01 +0000 (18:51 -0700)]
test/*.sh: add explicit error checks/returns
there was an assumption that function calls would terminate early with
an error given 'set -e' was being used. this is true, but only when the
function is part of a simple command otherwise it won't inherit the
behavior. many of the call sites use 'func || return 1' syntax meaning
the function would continue to completion return with the status of the
last command executed. this hid errors with e.g., eval statements. inner
calls within the functions are now explicitly tested for failure.
BUG=aomedia:2669
Change-Id: Ie33a5ac4023dcc800bd302cb8cc54c6c3f2282f5
Wan-Teh Chang [Mon, 27 Apr 2020 18:53:33 +0000 (11:53 -0700)]
Update a comment on nonexistent vpx_codec_init
Update a comment on the nonexistent vpx_codec_init() function. Replace it
with vpx_codec_dec_init() and vpx_codec_enc_init().
I missed this comment in the last commit.
Change-Id: I1d3614b3bb3aa4330ac6bd49e4d2e1f4e627b6b0
James Zern [Mon, 27 Apr 2020 18:38:37 +0000 (18:38 +0000)]
Merge "Update comments on nonexistent vpx_codec_init"
Neil Birkbeck [Sat, 25 Apr 2020 15:28:24 +0000 (08:28 -0700)]
vp9_firstpass.c: limit mv_limits with MV_MAX in motion_search
Currently, in rare cases on big videos (> 5K), best_mv may differ from ref_mv by more than the allowable MV_MAX. Intersect mv_limits with those bound by MV_MAX before diamond search.
We could use vp9_set_mv_search_range, but that seems a bit more constrained than the bug I encountered (e.g., MAX_FULL_PEL_VAL < MV_MAX / 8).
Change-Id: I2c6563c05039d6ee05edf642665faaccf51787d4
Marco Paniconi [Sat, 25 Apr 2020 00:20:42 +0000 (00:20 +0000)]
Merge "vp9-rtc: Some speedups to speed 5 real-time mode"
James Zern [Fri, 24 Apr 2020 22:59:25 +0000 (15:59 -0700)]
Update comments on nonexistent vpx_codec_init
Update comments on the nonexistent vpx_codec_init() function. Replace it
with vpx_codec_dec_init() and vpx_codec_enc_init().
based on the change in libaom:
b1b8c68e8 Update comments on nonexistent aom_codec_init
Change-Id: I63d3f6c87706a98f631457b5f6ce51e8b0c5cfb1
Jerome Jiang [Fri, 24 Apr 2020 22:09:21 +0000 (22:09 +0000)]
Merge "Revert "Revert "Remove RD code for CONFIG_REALTIME_ONLY in vp9."""
Marco Paniconi [Fri, 24 Apr 2020 18:16:15 +0000 (11:16 -0700)]
vp9-rtc: Some speedups to speed 5 real-time mode
Disable checking rectangular partitions in
nonrd_pick_partition, and enable use_source_sad.
~3-4% speedup for HD clip on x86.
bdrate loss of ~0.2% on rtc set.
Change-Id: Ibef8f100f1f623482d47510cb4ec9278ba777d7c
Jerome Jiang [Fri, 24 Apr 2020 17:36:39 +0000 (10:36 -0700)]
Revert "Revert "Remove RD code for CONFIG_REALTIME_ONLY in vp9.""
Under CONFIG_REALTIME_ONLY flag, map speed < 5 to speed 5.
Bug: webm:1684
This reverts commit
85cb983682fe9ca14fd302b50d27d762da05d665.
Change-Id: I67b7ed37e8b74417db310ea0c817d3c5a5de9e44
Marco Paniconi [Fri, 24 Apr 2020 17:07:02 +0000 (10:07 -0700)]
vp9-rtc: Allow simulcast mode for flexible/bypass mode
Change-Id: I0252d06c4f21d7c700c81d387bef89646229a63c
Jerome Jiang [Thu, 23 Apr 2020 21:28:03 +0000 (21:28 +0000)]
Merge "Move index check before array access"
Jerome Jiang [Thu, 23 Apr 2020 20:02:32 +0000 (20:02 +0000)]
Merge "Revert "vp9-rtc: Some speedups to speed 5 real-time mode""
Marco Paniconi [Thu, 23 Apr 2020 18:57:31 +0000 (18:57 +0000)]
Revert "vp9-rtc: Some speedups to speed 5 real-time mode"
This reverts commit
62af22b5e57ed1e382ef0994183824a03f698797.
Reason for revert: causes crash in chromium test
Change-Id: I27792e05ece84c79739638b8cce634ffeaef3ba1
James Zern [Tue, 21 Apr 2020 22:15:31 +0000 (22:15 +0000)]
Merge "realtime_test: add IntegerOverflow test"
James Zern [Tue, 21 Apr 2020 02:30:24 +0000 (19:30 -0700)]
realtime_test: add IntegerOverflow test
use an extreme bitrate to cover rate control calculations.
this is disabled by default as there are a mix of
-fsanitize=undefined/integer warnings for vp9 and -fsanitize=integer
warnings for vp8.
this is a follow-up to:
5e065cf9d vp8/{ratectrl,onyx_if}: fix some signed integer overflows
5eab093a7 vp9_ratectrl: fix some signed integer overflows
BUG=webm:1685
Change-Id: I24d223e33471217528a79b0088965ba51d0399ba
Jerome Jiang [Mon, 20 Apr 2020 23:45:22 +0000 (16:45 -0700)]
Revert "Remove RD code for CONFIG_REALTIME_ONLY in vp9."
This reverts commit
da24d35132e80422dc2c33e7c92462f4db7cd83d.
BUG=webm:1684
Change-Id: I552c37c7bdc844610879a65cc02038d76a5d32b1
Marco Paniconi [Fri, 17 Apr 2020 18:58:01 +0000 (11:58 -0700)]
vp9-rtc: Some speedups to speed 5 real-time mode
Enable use_source_sad at speed 5 and use it to
condition min_partition_size in nonrd_select_partition.
Also disable checking rectangular partitions in
nonrd_pick_partition for speed >= 5.
~5-8% speedup for HD clip on x86.
bdrate loss of ~1% on rtc set.
Change-Id: Ia643b34a51191e3929a443de77e271561e7c877d
Vitaly Buka [Fri, 17 Apr 2020 05:17:23 +0000 (22:17 -0700)]
Move index check before array access
This lets us run code with -fsanitize=bounds.
Bug: b/
15471229
Change-Id: I5961ef43d21f04a0dc9e8bf7280dc27eb0a62094
Johann [Mon, 30 Mar 2020 23:38:30 +0000 (08:38 +0900)]
simplify x86_abi_support.asm symbol declaration
Define LIBVPX_{ELF,MACHO} to simplify blocks.
Create new globalsym macro and include logic for PRIVATE.
BUG=webm:1679
Change-Id: I303ba1492a2813f685de51155ccef7e4831e1881
James Zern [Fri, 10 Apr 2020 17:10:35 +0000 (17:10 +0000)]
Merge "transpose_sse2.h,cosmetics: fix some comments"
Marco Paniconi [Thu, 9 Apr 2020 18:35:55 +0000 (11:35 -0700)]
vp9-rtc: Fix to disable_16x16part speed feature
Condition on current_video_frame count, as the
avg_frame_qindex needs some time to settle.
Fixes psnr test failures.
Change-Id: I462c45250becb55b72b6ffe2b7087094d6d58a01
Marco Paniconi [Thu, 9 Apr 2020 03:30:39 +0000 (03:30 +0000)]
Merge "vp9-rtc: Disable nonrd_keyframe for SVC, speed >=8"
Marco Paniconi [Thu, 9 Apr 2020 01:39:41 +0000 (18:39 -0700)]
vp9-rtc: Disable nonrd_keyframe for SVC, speed >=8
For speed >= 8: disable nonrd_keyframe SVC with
spatial_layers > 1. In this case having base
spatial layer key frame with higher quality
(hybrid mode search) is beneficial, without too
much cpu cost (since its on lowest spatial layer).
Change-Id: Iff7c43aed4e808603d8abdedb6eb5d2c9c8ecb8d
Marco Paniconi [Thu, 9 Apr 2020 01:23:45 +0000 (18:23 -0700)]
vp9-rtc: Set disable_16x16part for low-resoln high Q
Only affects variance partition at low-resoln,
speed 6,7 real-time mode. At very high Q better to
save bits from the split to 8x8.
bdrate gain ~3% on rtc_derf at very low bitrates
Change-Id: I94ee58e67d5ba6277cbab8f8dd9ea45b035c82b5
Jerome Jiang [Tue, 7 Apr 2020 00:27:08 +0000 (00:27 +0000)]
Merge "vp9: add rate control interface for RTC"
Jerome Jiang [Tue, 24 Mar 2020 22:13:59 +0000 (15:13 -0700)]
vp9: add rate control interface for RTC
Add vp9 RTC rate control without creating encoder,
to allow external codecs to use vp9 rate control.
A new library (libvp9rc.a) will be built. Applications using this
interface must be linked with the library.
BUG=1060775
Change-Id: Ib3e597256725a37d2d104e1e1a1733c469991b03
Johann [Mon, 6 Apr 2020 07:06:45 +0000 (16:06 +0900)]
x86_abi_support: do not decorate coff functions
:private_extern only applies to macho. Match x86inc.asm logic:
%if FORMAT_ELF
global %2:function hidden
%elif FORMAT_MACHO
global %2:private_extern
%else
global %2
%endif
May fix a build issue on windows:
vp8/encoder/x86/block_error_sse2.asm:18: error:
COFF format does not support any special symbol types
BUG=webm:1679
Change-Id: I7e1f4043b064a04752d1cedd030cbe7f5461fe40
Johann Koenig [Mon, 6 Apr 2020 00:09:56 +0000 (00:09 +0000)]
Merge changes I24997420,Ie4ca7435,I36011727,Ibb01b09c,Ifb17acbe, ...
* changes:
x86inc.asm: update to
3e5aed95c
x86inc.asm: namespace ARCH_* defines
x86inc.asm: only set visibility for chromium builds
x86inc.asm: do not align .text for aout
x86inc.asm: use .text on march32
x86inc.asm: copy PIC macros from x86_abi_support.asm
x86inc.asm: set PREFIX from libvpx defines
x86inc.asm: pull settings from libvpx
x86inc.asm: update to
3e5aed95
James Zern [Fri, 3 Apr 2020 20:50:40 +0000 (13:50 -0700)]
transpose_sse2.h,cosmetics: fix some comments
Change-Id: Idae90838012c78605f20f1d7a3125b71683f6f44
Wan-Teh Chang [Fri, 3 Apr 2020 03:49:47 +0000 (20:49 -0700)]
Return VPX_CODEC_INCAPABLE on capability failure
All decoder functions should return the VPX_CODEC_INCAPABLE error code
if the algorithm does not have the requested capability.
Move the definitions of VPX_CODEC_CAP_FRAME_THREADING and
VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER to the VPX_CODEC_CAP_* section.
Change "PUT_SLICE and PUT_FRAME events are posted" to "put_slice and
put_frame callbacks are invoked".
Also fix some other minor comment errors.
This carries back to libvpx the following libaom CL:
https://aomedia-review.googlesource.com/c/aom/+/108405
Change-Id: If67a271c9abbb3eebc2359719cc7d9f235b690d2
Johann [Thu, 2 Apr 2020 02:07:47 +0000 (11:07 +0900)]
x86inc.asm: update to
3e5aed95c
BUG=webm:1679
Change-Id: I24997420b7b43cac3c674300c667eb493794893e
Johann [Thu, 2 Apr 2020 02:04:37 +0000 (11:04 +0900)]
x86inc.asm: namespace ARCH_* defines
Reapply
fad865c54 to prevent redefinition warnings.
BUG=webm:1679
Change-Id: Ie4ca7435b1f84711d0231e7957129580b05b3918
Johann [Thu, 2 Apr 2020 01:59:01 +0000 (10:59 +0900)]
x86inc.asm: only set visibility for chromium builds
Reapply and update
a4b47b89f. This restores the previous version's
behavior avoiding issues with builds that may split sources on
directory boundaries; protected visibility may work in this case.
BUG=webm:1679
Change-Id: I36011727485847dd11f06782bc6beddedc39019c
Johann [Thu, 2 Apr 2020 01:49:19 +0000 (10:49 +0900)]
x86inc.asm: do not align .text for aout
Reapply
a97c83f7a. Only use .text sections for aout and do not specify
an alignment.
BUG=webm:1679
Change-Id: Ibb01b09c205f9e0ecd4bfa0241e3d5e01ae5a55e
Johann [Thu, 2 Apr 2020 01:47:30 +0000 (10:47 +0900)]
x86inc.asm: use .text on march32
Reapply
9679be4bc. The read only sections are getting stripped on some
OS X builds. As a result, random data is used in place of the intended
tables.
BUG=webm:1679
Change-Id: Ifb17acbed73df4b9949a8badae2d9305a3073b83
Johann [Thu, 2 Apr 2020 01:41:24 +0000 (10:41 +0900)]
x86inc.asm: copy PIC macros from x86_abi_support.asm
Reapply
7e065cd57. x86inc.asm always defines PIC for x86_64. We undefine
it for x32.
Incorporate
e56f96394 as well to ensure GET_GOT_DEFINED is defined.
BUG=webm:1679
Change-Id: I1535d57bcb4223327ca63b4fd11bffcda1009332
Johann [Thu, 2 Apr 2020 01:14:38 +0000 (10:14 +0900)]
x86inc.asm: set PREFIX from libvpx defines
Reapply
4de9641f1
BUG=webm:1679
Change-Id: I70b2224121f8f997fcd04c38a07a8126c2855ec6
Johann [Thu, 2 Apr 2020 01:06:43 +0000 (10:06 +0900)]
x86inc.asm: pull settings from libvpx
Reapply
1be46ef6b. Include vpx_config.asm and prefix functions with vpx.
BUG=webm:1679
Change-Id: I5fba3154203822a829bc88ad0e302adf2ce3bbee
Johann [Thu, 2 Apr 2020 01:00:23 +0000 (10:00 +0900)]
x86inc.asm: update to
3e5aed95
Pull a clean copy in and name it _new. Will apply the libvpx
patches and then move it over.
BUG=webm:1679
Change-Id: I48d3d4ab7911340c0997dd79a0dbadccf5697682
Johann [Mon, 30 Mar 2020 23:49:15 +0000 (08:49 +0900)]
x86_abi_support: use correct hidden syntax
Chromium needs :function hidden and the space between the symbol and the
colon removed, at least for nasm. This matches x86inc.asm.
BUG=webm:1679
Change-Id: Ie47bb75d44d3130791639cbf4e2ebe019e2d686e
Johann Koenig [Tue, 31 Mar 2020 23:41:42 +0000 (23:41 +0000)]
Merge "nasm: require 2.14 with -DCHROMIUM"
Johann Koenig [Tue, 31 Mar 2020 23:41:26 +0000 (23:41 +0000)]
Merge "auto-detect darwin19"
Marco Paniconi [Tue, 31 Mar 2020 17:31:32 +0000 (10:31 -0700)]
vp9-rtc: Refactor postencode for 1 pass
Move some code for 1 pass, that is not
directly related to rate control, out of
the postencode.
This avoids the need of extra flag for the
RC interface in:
https://chromium-review.googlesource.com/c/webm/libvpx/+/2118915
Change-Id: I3992ea8255196a762c1174c35dd7dcc9b01d317e
Johann [Tue, 31 Mar 2020 06:52:30 +0000 (15:52 +0900)]
auto-detect darwin19
Change-Id: I3912c79d0f0f7a65fc753ae29bb10cdcac76878a
Johann [Tue, 31 Mar 2020 06:35:24 +0000 (15:35 +0900)]
nasm: require 2.14 with -DCHROMIUM
BUG=webm:1679
Change-Id: I75b1f860d111febf0aabe38b89d845ef296728a4
Marco Paniconi [Mon, 30 Mar 2020 16:16:09 +0000 (09:16 -0700)]
rtc: Increase resize limit resoln for rtc
Increase resize limit to avoid resized frame
from going below 320x180.
Change-Id: If736ac3fac4731b47844e4d8c771ecf5c66550de