summaryrefslogtreecommitdiff
path: root/vpx
AgeCommit message (Collapse)Author
2016-03-08vp9-svc: Change default spatial bitrate allocation.Marco
Only affects 1 pass cbr svc. Change-Id: I8387219e35e516d9ce890557ee1855f2af8f636a
2016-01-20Vidyo patch: Changes to the scalability code.Marco
Changes to mode selection for 1 pass SVC mode: use base layer motion vector, changes to intra-prediction. Change-Id: I3e883aa04db521cfa026a0b12c9478ea35a344c9
2016-01-04Update IMAGE_ABI_VERSION which wasn't updated after color_range enum was ↵Sasi Inguva
introduced. Change-Id: I83703851f65f93573ebf7d2c0d0f056ba879c07a
2015-12-01Fix a spatial svc test crashDebargha Mukherjee
Fixes crash in 2pass spatial svc test that was introduced in: https://chromium-review.googlesource.com/#/c/313571/6 Change-Id: Iab3e8225a8d159cd33f5849dffe6802e25038047
2015-11-23vp9-svc: Fix to allow setting qp-max/min per spatial and temporal layer.Marco
Change-Id: Ic0ec32c1d7f7c08c9f956592dccbfd9060b1f624
2015-10-27VP9-SVC: Allow frame dropping due to overshoot for spatial layers.Marco
For 1 pass CBR mode. Change-Id: I8bceb489a850ec26f05382eecb5c0c32a1bb8883
2015-10-20Merge "vp8cx: remove deprecated reference/entropy controls"James Zern
2015-10-16vp8cx: remove deprecated reference/entropy controlsJames Zern
VP8E_UPD_ENTROPY, VP8E_UPD_REFERENCE and VP8E_USE_REFERENCE have been deprecated since the initial public release Change-Id: Ied16b441eec13434d85f1ab115d49ccaf5f2f7b0
2015-10-16Add a new enum type vpx_color_range_tYaowu Xu
to make meaning of color_range obvious. Change-Id: I303582e448b82b3203b497e27b22601cc718dfff
2015-10-16vpx/*.h: add VPX_CTRL_* preproc definesJames Zern
allows controls to be tested for at compile-time Change-Id: I1cd01287dc144392956c82e6dbac003f37703039
2015-10-09vpx/*.h, cosmetics: fix some typosJames Zern
Change-Id: Ie9ead2c665c6c065a6b922ab66bae9be63483272
2015-09-25vp9/10: improve support for render_width/height.Ronald S. Bultje
In the decoder, map this to the output variable vpx_image_t.r_w/h. This is intended as an improved version of VP9D_GET_DISPLAY_SIZE, which doesn't work with parallel frame decoding. In the encoder, map this to a codec control func (VP9E_SET_RENDER_SIZE) that takes a w/h pair argument in a int[2] (identical to VP9D_GET_DISPLAY_SIZE). Also add render_size to the encoder_param_get_to_decoder unit test. See issue 1030. Change-Id: I12124c13602d832bf4c44090db08c1009c94c7e8
2015-09-17Add SVC codec control to set frame flags and buffer indices.Marco
Add SVC codec control to set the frame flags and buffer indices for each spatial layer of the current (super)frame to be encoded. This allows the application to set (and change on the fly) the reference frame configuration for spatial layers. Added an example layer pattern (spatial and temporal layers) in vp9_spatial_svc_encoder for the bypass_mode using new control. Change-Id: I05f941897cae13fb9275b939d11f93941cb73bee
2015-09-16Add support for color-range.Ronald S. Bultje
In decoder, export (eventually) into vpx_image_t.range field. In encoder, use oxcf->color_range to set it (same way as for color_space). See issue 1059. Change-Id: Ieabbb2a785fa58cc4044bd54eee66f328f3906ce
2015-09-15Add cyclic refresh parameters to svc-layer context.Marco
For 1 pass CBR spatial-SVC: Add cyclic refresh parameters to the svc-layer context. This allows cyclic refresh (aq-mode=3) to be applied to the whole super-frame (all spatial layers). This gives a performance improvement for spatial layer encoding. Addd the aq_mode mode on/off setting as command line option. Change-Id: Ib9c3b5ba3cb7851bfb8c37d4f911664bef38e165
2015-09-09SVC sample encoder: Change some settings/update.Marco
Change settings for 1 pass CBR. And only use SET_SVC control(s) if there is at least 1 layer (spatial or temporal). This allows sample encoder to also work for 1 layer case. Change-Id: I5b0a33c25afb2f24a3a8aa4ec8ade9afc87cd702
2015-08-11Fork VP9 and VP10 codebaseJingning Han
This commit folks the VP9 and VP10 codebase and makes libvpx support VP8, VP9, and VP10. Change-Id: I81782e0b809acb3c9844bee8c8ec8f4d5e8fa356
2015-08-07clang/win: Make libvpx build with -Wunused-function.Nico Weber
BUG=chromium:505316 Change-Id: I1c951eb99fd0487e1bc70ebb2852b981fd69ed8a
2015-07-22Added TODOs for two unused #definesYaowu Xu
Change-Id: I70407e9350147d6585667f157d9cfe78c6251d26
2015-07-06Adds macros for new encoder controlsDebargha Mukherjee
To aid version management for integration with ffmpeg by use of: #ifdef VPX_CTRL_<CTRL_ID> ... #endif Change-Id: If550e06de4d3aa3685881f312ce6a86fa9de083b
2015-07-06Expose params min-gf-interval/max-gf-intervalDebargha Mukherjee
Adds two new vp9 parameters --min-gf-interval and --max-gf-interval to enable testing based on frequency of alt-ref frames. Also adds a unit-test to test enforcement of min-gf-interval. For both these parameters the default value is 0, which indicates they are picked by the encoder, based on resolution and framerate considerations. If they are greater than zero, the specified parameter is honored. (Additional note by paulwilkins) Note that there is a slight oddity in that key frames are also GFs and considered part of GF only group. However they are treated as not being part of an arf group because for arf groups the previous GF is assumed to be the terminal or overlay frame for the previous group. (end note) Change-Id: Ibf0c30b72074b3f71918ab278ccccc02a95a70a0
2015-06-05Add control to skip loop filter in VP9 decoder.Frank Galligan
This control allows the application to skip the loop filter in the decoder. This is an advanced control that should only be used in extreme circumstances as it may introduce and accumulate decode artifacts. Change-Id: I278c65c60826f84c9141ebe06c6eeed3c2335fa8
2015-06-03Remove ABI check for 1 pass CBR SVC.Marco
Remove the ABI check for the controls needed for SVC 1 pass CBR mode. Bump up the ABI version. Change-Id: I35b79ee010e14af83c6d1e801d574deaaa2fc7eb
2015-06-03Merge "Support building shared libraries on OS/2"James Zern
2015-06-03Support building shared libraries on OS/2KO Myung-Hun
Change-Id: I5750db0504cb69ead52f9f44bf583e693bffbb7e
2015-06-02Vidyo patch: Rate control for SVC, 1 pass CBR mode.Marco
-Make Rate control work for SVC 1 pass CBR mode. -Added temporal layering mode. -Fixed bug in non-rd variance partition. -Modified/updated the sample encoders (vp9_spatial_svc_encoder, vpx_temporal_svc_encoder). -Added datarate unittest(s) for 1 pass CBR SVC. Change-Id: Ie94b1b68a56ea1267b5087c625e5df04def2ee48
2015-05-19VP8: For high overshoot, force drop frame and max-out QP.Marco
This allows rate control to react to content of current frame being encoded. Enabling this feature via the setting: screen_content_mode = 2. Change-Id: Ib2c6670551d96f4907495d5b7b76bb8c49e673db
2015-05-14Remove the BUILD_LIBVPX variable from the build system.Tom Finegan
Replace it with it's value (yes), which is constant. Change-Id: Ifb0c0408a53ecadf81156da6a64fa583b2ada746
2015-03-31Merge "VP9E_GET_ACTIVE_MAP API function."Alex Converse
2015-03-24Merge "fix static analysis warnings related to CHECK_MEM_ERROR"James Zern
2015-03-24VP9E_GET_ACTIVE_MAP API function.Alex Converse
This is useful when aq mode 3 (cyclic refresh) reactivates segments for refresh. Change-Id: I3ad1d9410b899ede393d82bb8db14e2da4d84eca
2015-03-23vp8cx.h: vpx/vpx_encoder.h -> ./vpx_encoder.hJames Zern
this matches the other includes and simplifies include paths in builds from source Change-Id: I344902c84f688ef93c9f3a53e7c06c30db49d8d3
2015-03-19put spatial svc behind an ABI checkJames Zern
this removes the CONFIG_* checks from public headers, but means '--enable-experimental --enable-spatial-svc' builds will fail without a local change to the ABI in vpx_encoder.h. this should be all right for testing this experiment. Change-Id: Ief55e7b9d1e8332cfce990275e04c29b30af0c4a
2015-03-18vpx/vpx_codec.h: bump ABI versionJames Zern
missed in updates for high bitdepth, xma removal, others Change-Id: I42fa121b3bb080e8275f555b923cd9cb418db8a1
2015-03-18vpx/vpx_encoder.h: bump ABI versionJames Zern
missed in updates for high bitdepth, others Change-Id: Id30076ce09beb361b5e1ff0ac99e3ae1ad4f987e
2015-03-18fix static analysis warnings related to CHECK_MEM_ERRORJames Zern
mark vpx_internal_error as noreturn under the analyzer Change-Id: If214a0e740aab9b82cc04f4492eb77a7a07ef7ab
2015-03-13Fix comments for vpx_codec_enc_config_default()Yaowu Xu
This makes clear that for end-usage, only 0 is supported currently. Change-Id: I99795807c20df1d71b3c803e8d5f3b36583dcc85
2015-03-13Provide information on codec controlsYaowu Xu
The commit updates the comments in vp8cx.h to make it clear which codec support each of codec control functions. Change-Id: Ibf876e289d4325bbb61ce19311da60d384624c2f
2015-03-12Added comment for vp9 only codec controlsYaowu Xu
Comments are updated to reflect that these controls apply to VP9 only, thereby, to insure the document produced by doxygent to reflect the same fact too. Change-Id: Ic54c88ec066aa0ec4552d43dd4a7016e1f810f42
2015-03-12Rename a vp9 only control with vp9e prefixYaowu Xu
Also updated comments and doc to make it clear that the control is supported in VP9 only. Change-Id: I6f120b65135fc1185695e9e3dc29fbe0d430824b
2015-02-13Add VP9 decoder control to get frame sizeAdrian Grange
Adds a control function that allows the caller to get the size of the current frame. Change-Id: Iddfdedc0f3aa9aa46119f87d294681c82f275c9f
2015-02-09Add two constant definitionsYaowu Xu
This fixes compiler errors for vs 2008. Change-Id: Ifaabb1c5e74fe6ede6dacf66ec3f634fecb556fd
2015-01-30Try again to merge branch 'frame-parallel' into master branch.hkuang
In frame parallel decode, libvpx decoder decodes several frames on all cpus in parallel fashion. If not being flushed, it will only return frame when all the cpus are busy. If getting flushed, it will return all the frames in the decoder. Compare with current serial decode mode in which libvpx decoder is idle between decode calls, libvpx decoder is busy between decode calls. Current frame parallel decode will only speed up the decoding for frame parallel encoded videos. For non frame parallel encoded videos, frame parallel decode is slower than serial decode due to lack of loopfilter worker thread. There are still some known issues that need to be addressed. For example: decode frame parallel videos with segmentation enabled is not right sometimes. * frame-parallel: Add error handling for frame parallel decode and unit test for that. Fix a bug in frame parallel decode and add a unit test for that. Add two test vectors to test frame parallel decode. Add key frame seeking to webmdec and webm_video_source. Implement frame parallel decode for VP9. Increase the thread test range to cover 5, 6, 7, 8 threads. Fix a bug in adding frame parallel unit test. Add VP9 frame-parallel unit test. Manually pick "Make the api behavior conform to api spec." from master branch. Move vp9_dec_build_inter_predictors_* to decoder folder. Add segmentation map array for current and last frame segmentation. Include the right header for VP9 worker thread. Move vp9_thread.* to common. ctrl_get_reference does not need user_priv. Seperate the frame buffers from VP9 encoder/decoder structure. Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:""" Conflicts: test/codec_factory.h test/decode_test_driver.cc test/decode_test_driver.h test/invalid_file_test.cc test/test-data.sha1 test/test.mk test/test_vectors.cc vp8/vp8_dx_iface.c vp9/common/vp9_alloccommon.c vp9/common/vp9_entropymode.c vp9/common/vp9_loopfilter_thread.c vp9/common/vp9_loopfilter_thread.h vp9/common/vp9_mvref_common.c vp9/common/vp9_onyxc_int.h vp9/common/vp9_reconinter.c vp9/decoder/vp9_decodeframe.c vp9/decoder/vp9_decodeframe.h vp9/decoder/vp9_decodemv.c vp9/decoder/vp9_decoder.c vp9/decoder/vp9_decoder.h vp9/encoder/vp9_encoder.c vp9/encoder/vp9_pickmode.c vp9/encoder/vp9_rdopt.c vp9/vp9_cx_iface.c vp9/vp9_dx_iface.c This reverts commit a18da9760a74d9ce6fb9f875706dc639c95402f5. Change-Id: I361442ffec1586d036ea2e0ee97ce4f077585f02
2015-01-23Revert "Merge branch 'frame-parallel' to enable frame parallel decode in ↵Johann
master branch." This reverts commit bde04ce5039cbcf86c8b34bdb4127e18d7e1d0c7 Change-Id: I053dae04c761b04a36dc239558503905a14d2470
2015-01-22Merge branch 'frame-parallel' to enable frame parallel decode in master branch.hkuang
In frame parallel decode, libvpx decoder decodes several frames on all cpus in parallel fashion. If not being flushed, it will only return frame when all the cpus are busy. If getting flushed, it will return all the frames in the decoder. Compare with current serial decode mode in which libvpx decoder is idle between decode calls, libvpx decoder is busy between decode calls. VP9 frame parallel decode is >30% faster than serial decode with tile parallel threading which will makes devices play 1080P VP9 videos more easily. * frame-parallel: Add error handling for frame parallel decode and unit test for that. Fix a bug in frame parallel decode and add a unit test for that. Add two test vectors to test frame parallel decode. Add key frame seeking to webmdec and webm_video_source. Implement frame parallel decode for VP9. Increase the thread test range to cover 5, 6, 7, 8 threads. Fix a bug in adding frame parallel unit test. Add VP9 frame-parallel unit test. Manually pick "Make the api behavior conform to api spec." from master branch. Move vp9_dec_build_inter_predictors_* to decoder folder. Add segmentation map array for current and last frame segmentation. Include the right header for VP9 worker thread. Move vp9_thread.* to common. ctrl_get_reference does not need user_priv. Seperate the frame buffers from VP9 encoder/decoder structure. Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:""" Conflicts: test/codec_factory.h test/decode_test_driver.cc test/decode_test_driver.h test/invalid_file_test.cc test/test-data.sha1 test/test.mk test/test_vectors.cc vp8/vp8_dx_iface.c vp9/common/vp9_alloccommon.c vp9/common/vp9_entropymode.c vp9/common/vp9_loopfilter_thread.c vp9/common/vp9_loopfilter_thread.h vp9/common/vp9_mvref_common.c vp9/common/vp9_onyxc_int.h vp9/common/vp9_reconinter.c vp9/decoder/vp9_decodeframe.c vp9/decoder/vp9_decodeframe.h vp9/decoder/vp9_decodemv.c vp9/decoder/vp9_decoder.c vp9/decoder/vp9_decoder.h vp9/encoder/vp9_encoder.c vp9/encoder/vp9_pickmode.c vp9/encoder/vp9_rdopt.c vp9/vp9_cx_iface.c vp9/vp9_dx_iface.c Change-Id: Ib92eb35851c172d0624970e312ed515054e5ca64
2015-01-15Fix obvious misses in doxygen mainpageYaowu Xu
Change-Id: I0537769904f0853c9299b36a91391f289acf442c
2015-01-15Fix color_space enum comments for doxygenYaowu Xu
Change-Id: I14f1708908a0b68b7f4c8e039dbec138c14c5ae4
2015-01-15Merge "Fix comments for doxygen"Yaowu Xu
2015-01-15Fix comments for doxygenYaowu Xu
Change-Id: Iaad3dc3cdd25275939b475706eb7d136a5a10174
2015-01-14Merge "Clarify purpose of VP9_INVERT_TILE_DECODE_ORDER"Yaowu Xu