summaryrefslogtreecommitdiff
path: root/vpx/src/svc_encodeframe.c
AgeCommit message (Collapse)Author
2018-08-16Refactor: move svc example files to from vpx/ to examples/Jerome Jiang
svc_encodeframe.c and svc_context.h are only used by the example encoder. Change-Id: Idb41a5a9d6a229a0bc7d2bc8dbe6575a74efc54c
2018-08-15svc: Force the quantizer to be same as that in encoder config.Jerome Jiang
Change-Id: I0377ca2ebf63792d7a27de4b8e7e08b38659ecde
2018-07-04vp9-svc: add more command line options to test app.Sergey Silkin
This adds the following command line options to vp9_spatial_svc_encoder test app: --drop-frame=<arg> Temporal resampling threshold (buf %) --tune-content=<arg> Tune content type default, screen, film --inter-layer-pred=<arg> 0 - 3: On, Off, Key-frames, Constrained Change-Id: I653d1924fb6e525edb2d1e84739be0b88e773e1c
2018-03-14remove spatial svc experimentJohann
Change-Id: Ifda11caaf992d10f2d93d6cd1d07b79b6047be05
2018-03-13spatial svc: remove vpx_svc_get_messageJohann
Print error messages as they are encountered. This was the default behavior. Removes a static analysis warning regarding the use of strncat: Null pointer argument in call to string length function As this is the only use of strncat in the library, remove it and the associated public function. Change-Id: Id55305c5a4d65f11da88c3a2203ff824200f526f
2017-11-30decouple spatial-svc from encoder abiJames Zern
this is only meant for testing. along with --enable-experimental --enable-spatial-svc require VPX_TEST_SPATIAL_SVC to be defined rather than bumping the encoder ABI. Change-Id: I7f34d9f60300fa31ccf22e1a4aa619392c391b2e
2017-11-17vp9 svc: fix a few compile warnings.Jerome Jiang
Change-Id: I4cb878600038066513ab73f3658990d1245ff2fb
2017-11-13vp9 svc: Change conditions on VPX_ENCODER_ABI_VERSION.Jerome Jiang
VPX_ENCODER_ABI_VERSION was bumped up in 93e83f. Change-Id: Id5707f9f9db56fa96549bc8f54e1cfa04e7fa4cd
2017-05-10vp9: SVC: Fix setting in sample encoder.Marco
For 1 spatial layer case, scaling_num/den was not set properly. Change-Id: I139bf70c6dffde89eed24e435bcb5d98d2029bcd
2016-11-28svc_test: fix two warningsJim Bankoski
Use of possibly uninitialized variable and missing test initializer. Change-Id: I2192c81c39ef4239cc11a309850c0ee8781ef17e
2016-10-31vp9-svc: Add checks to layer bitrates in vp9_spatial_svc_encoder.Marco
Add some checks to the layer bitrates passed in through the command line. Change-Id: I16f270035a6034d63313fe3019aa90dca9a3eefb
2016-10-28vp9: Updates to SVC sample encoder.Marco
Allow for passing in the layer bitrates at command line. Fix to allow passing in bitrate for each spatial-temporal layer. Change to some default values for 1 pass cbr mode: spatial scale and qp-max/min. Small fixes to some build warnings. Change-Id: I3f9a776262712480a6570bb863a835b2fc49935a
2016-07-25vp9 svc: Enable different speed setting for each spatial layer.jackychen
This change only affects 1 pass cbr svc mode. Change-Id: If0da87bb200f7e7762755340c40c8157cc7a16ca
2016-07-21vpx/: apply clang-formatclang-format
Change-Id: I95922a64568bf289863c1564212b6be5beec36df
2016-06-24vp9-svc: Remove some unneeded code/comment.Marco
Change-Id: I710707296042d8586109760544ef68e40ae486c3
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
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-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-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-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-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
2014-11-18Changes SvcContext_t to SvcContextDeb Mukherjee
Fixes a borg build. Change-Id: I8cb510577e8d8bbc7a2e64f9e1bdfe883f49cb61
2014-11-10Vidyo: Support for one-pass rc-enabled SVC encoderDeb Mukherjee
Adds support for one-pass rc-enabled SVC encoder with callbacks for getting per-layer packets. - the callback function registration is implemented as an encoder control function. - if the callback function is not registered, the old way of aggregating packets with superframe will take effect. - one more control function “VP9E_GET_SVC_LAYER_ID” has been implemented to get the temporal/spatial id from the encoder within the callback. This can be used to get the ids to put on RTP packet. Change-Id: I1a90e00135dde65da128b758e6c00b57299a111a
2014-10-16[spatial svc]Another workaround to avoid using prev_miMinghai Shang
We encode a empty invisible frame in front of the base layer frame to avoid using prev_mi. Since there's a restriction for reference frame scaling factor, we have to make it smaller and smaller gradually until its size is 16x16. Change remerged. Change-Id: I9efab38bba7da86e056fbe8f663e711c5df38449
2014-10-16Revert "[spatial svc]Another workaround to avoid using prev_mi"Paul Wilkins
This reverts commit c113457af9880b8e15a36cdaabfd414d1c245693. Temporary revert to allow clean revert of another commit. Change-Id: Ia9b7b755e6c48e1b6e383329f121fef175a24b27
2014-10-14[spatial svc]Another workaround to avoid using prev_miMinghai Shang
We encode a empty invisible frame in front of the base layer frame to avoid using prev_mi. Since there's a restriction for reference frame scaling factor, we have to make it smaller and smaller gradually until its size is 16x16. Change-Id: I60b680314e33a60b4093cafc296465ee18169c19
2014-09-18[spatial svc] Remove vpx_svc_parameters_t and the loop that sets it for each ↵Minghai Shang
layer vpx_svc_parameters_t contains id, resolution and min/max qp for each spatial layer. In this change we will use extra config to send min/max qp and scaling factors, then calculate layer resolution inside encoder. Change-Id: Ib673303266605fe803c3b067284aae5f7a25514a
2014-09-18[spatial svc]Remove quantizers option. Use max/min quantizers for each layer.Minghai Shang
Change-Id: I214bc4169f6c5eaee4957cd308a74d309e999005
2014-09-17[spatial svc] Use string for quantizers and scale-factors option in the test appMinghai Shang
1. This is to align with the ffmpeg implementation 2. Remove APIs for setting quantizers and scale-factors Change-Id: I6e238d71db790a9fb3254baaeb61e2a5aac58f48
2014-09-12[spatial svc] Remove useless APIs and variablesMinghai Shang
Change-Id: If8cd3879aa2a498a2b1b97cedb88b2b3bd97f0ba
2014-09-11[spatial svc] Output psnr for all layers in one packet.Minghai Shang
Change-Id: I97d0cf095e9cfefdfa0f65eb5e96d6848cc9ffca
2014-09-11[spatial svc] Remove handling frame and stats packets in the codecMinghai Shang
1. svc_encodeframe.c will not handle frame or stats packets anymore. The app will process them. 2. Remove APIs that related to these packets. Change-Id: Id0d7f8b458dc09c6f77064c0878fd4e572db001b
2014-09-09Merge "Removing legacy compatibility layer."Dmitry Kovalev
2014-09-05[spatial svc]Add layer bitrates options and clean up parsing options from stringMinghai Shang
Change-Id: I6e8d3f08c8a8ce3555a498feba471ba9fec411c6
2014-09-02Removing legacy compatibility layer.Dmitry Kovalev
Change-Id: I6fdcea0e0faf42386dd2b8f972a3b3fb2c21b2c7
2014-09-02[svc] Temporal svc with two pass rate controlMinghai Shang
It's built based on current spatial svc code. We only support one spatial two temporal layers at this time. Change-Id: I1fdc8584354b910331e626bfae60473b3b701ba1
2014-08-25[spatial svc]Multiple frame context featureMinghai Shang
We can use one frame context for each layer so that we don't have to reset the probs every frame. But we can't use prev_mi since we may drop enhancement layers. So we have to generate a non vp9 compatible bitstream and modify it in the player. 1. We need to code all frames as invisible frame to let prev_mi not to be used. But in the bitstream we need to code the show_frame flag to 1 so that the publisher will know it's supposed to be a visible frame. 2. In the player we need to change the show_frame flag to 0 for all frames. Then add an one byte frame into the super frame to tell the decoder which layer we want to show. Change-Id: I75b7304cf31f0ab952f043e33c034495e88f01f3
2014-08-08Adds spatial-svc macros to code to allow disablingDeb Mukherjee
Adds a couple of CONFIG_SPATIAL_SVC macros to allow compilation when spatial-svc is disabled. Change-Id: I67f84406d1d3fa26f225d9c6518161a0841f2d29
2014-07-14[spatial svc]Implement alt reference framesMinghai Shang
All changes are for spatial svc only. 1. Enable encoding hidden frames in each layer and use alt reference idex to reference the hidden frame in each layer 2. Use golden reference idx for spatial reference 3. For those layers that don't have hidden frames (caused by lack of frame buffers), reference a hidden frame in lower layers 4. Add "auto-alt-refs" in svc options Change-Id: Idf27d1fd2fb5f3ffd9e86d2119235e3dad36c178
2014-06-27Merge "[spatial svc] Remove encoding modes since we only need one mode at ↵Minghai Shang
this time."
2014-06-25[spatial svc] Remove encoding modes since we only need one mode at this time.Minghai Shang
Change-Id: I1b6ed2e82a7e3e8a9e790bf29d667a3f856a9518
2014-06-25[spatial svc]Remove key frame quantizer settings since key frame is decided ↵Minghai Shang
by rate control Change-Id: I7eda0f5e678034f0e9c2ab481c517d2e9b280eb5
2014-06-24[spatial svc]Implement lag in frames for spatial svcMinghai Shang
Change-Id: I930dced169c9d53f8044d2754a04332138347409
2014-05-22Merge "[spatial svc] Remove hard coded rc_end_usage setting"Minghai Shang
2014-05-21[spatial svc] Disable auto alt referenceMinghai Shang
Change-Id: I2a41c1fe08261065dd21fe631b2b5937acfbfb51
2014-05-21[spatial svc] Remove hard coded rc_end_usage settingMinghai Shang
Change-Id: Ifb09502ddf62664b3bfc62172de46bc36fde8efb
2014-05-20[spatial svc] Remove some restrictions that are needed to improve the qualityMinghai Shang
Change-Id: I76a48b03388a8c5cc74b871deb836cd92263b306