summaryrefslogtreecommitdiff
path: root/vpx
AgeCommit message (Collapse)Author
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
2015-01-14Merge "Add comments for two SVC related controls"Yaowu Xu
2015-01-14Merge "Add comments for two SVC related controls"Yaowu Xu
2015-01-14Merge "Add comments for control VP9E_SET_TUNE_CONTENT"Yaowu Xu
2015-01-14Merge "Add comments for VP9E_SET_FRAME_PERIODIC_BOOST"Yaowu Xu
2015-01-14Clarify purpose of VP9_INVERT_TILE_DECODE_ORDERYaowu Xu
Change-Id: I1eb98f4576994c5c9fa5ba748d85cd186910ee4f
2015-01-14Merge "Fix comments for encoder controls"Yaowu Xu
2015-01-14Add comments for two SVC related controlsYaowu Xu
VP9E_SET_SVC VP9E_SET_SVC_PARAMETERS Change-Id: Ie32ffad48b6b53c5a2c44c42ec655bfedf8d2903
2015-01-14Add comments for two SVC related controlsYaowu Xu
VP9E_GET_SVC_LAYER_ID VP9E_REGISTER_CX_CALLBACK Change-Id: I92060bde1a4830268c8e07190d4ee4c37bc05334
2015-01-14Add comments for control VP9E_SET_TUNE_CONTENTYaowu Xu
Change-Id: If1fb5d9f1545cb9753eeda22e699b1ab778452b4
2015-01-14Add comments for VP9E_SET_FRAME_PERIODIC_BOOSTYaowu Xu
Change-Id: Id6decd0024b87da82d85d62ec2f4bdff416faa39
2015-01-14Fix comments for encoder controlsYaowu Xu
This commit added coments for the following encoder controls: VP9E_SET_LOSSLESS VP9E_SET_TILE_COLUMNS VP9E_SET_TILE_ROWS VP9E_SET_FRAME_PARALLEL_DECODING VP9E_SET_AQ_MODE Change-Id: I2f75afd9cce01394f202b8e25f36bf763be0ddeb