summaryrefslogtreecommitdiff
path: root/vpx/src
AgeCommit message (Collapse)Author
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-10-01Adds support of 440 content.Deb Mukherjee
Adds enums and corresponding vpx level code. Change-Id: Ia402d47490a4466988d7edc6b7e3e5163f20a381
2014-10-01High-bitdepth bugfixesDeb Mukherjee
Miscellaneous bug-fixes for high bitdepth functionality. With this patch, high bit-depth profiles become mostly functional, except for an intermittent assert failure issue that is being tracked. Change-Id: I6a7fcbdcf1e5b09842e88535f8442d2e1230748c
2014-09-30Misc. high-bit-depth fixesDeb Mukherjee
Change-Id: Ie9fb6a4078eb6a3fb7c4ff1453831ab9afe23121
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-03Merge "[svc] Temporal svc with two pass rate control"Minghai Shang
2014-09-02Removing legacy compatibility layer.Dmitry Kovalev
Change-Id: I6fdcea0e0faf42386dd2b8f972a3b3fb2c21b2c7
2014-09-02Adds config opt for highbitdepth + misc. vpxDeb Mukherjee
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles. Also includes most vpx level high bit-depth functions. However encode/decode in the highbitdepth profiles will not work until the rest of the code is in place. Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
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-28Removing alg_priv from vpx_codec_priv struct.Dmitry Kovalev
In order to understand memory layout consider the declaration of the following structs. The first one is a part of our API: struct vpx_codec_ctx { // ... struct vpx_codec_priv *priv; }; The second one is defined in vpx_codec_internal.h: struct vpx_codec_priv { // ... }; The following struct is defined 4 times for encoder/decoder VP8/VP9: struct vpx_codec_alg_priv { struct vpx_codec_priv base; // ... }; Private data allocation for the given ctx: struct vpx_codec_ctx *ctx = <get> struct vpx_codec_alg_priv *alg_priv = <allocate> ctx->priv = (struct vpx_codec_priv *)alg_priv; The cast works because vpx_codec_alg_priv has a vpx_codec_priv instance as a first member 'base'. Change-Id: I10d1afc8c9a7dfda50baade8c7b0296678bdb0d0
2014-08-25Merge "Passing const cfg pointer to vpx_codec_{dec,enc}_init_ver()."Dmitry Kovalev
2014-08-25Merge "[spatial svc]Multiple frame context feature"Minghai Shang
2014-08-25Passing const cfg pointer to vpx_codec_{dec,enc}_init_ver().Dmitry Kovalev
Change-Id: I3e319f581215ccb814afca247c1d911be231a4ac
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-20Removing iface pointer from vpx_codec_priv.Dmitry Kovalev
The iface pointer is already in vpx_codec_ctx struct. Change-Id: I9fffe27c613a7c94476f185a1e5a53ff6d99f1c6
2014-08-19Using functions from vpx_mem.h inside vpx_image.c.Dmitry Kovalev
Change-Id: Idfd606bf9d23c898bcdfb98fb90a23a5fdace960
2014-08-13vpx_internal_error -> fix -Wunused-function issuesJim Bankoski
Moved to global function to avoid unused function warnings... Change-Id: I4e9002dcb20748f6d8d84cbbe6ef2de0bd9a8018
2014-08-12Merge "vpx_codec_decode: check data size"James Zern
2014-08-11remove remaining references to XMAJames Zern
the bulk of the functionality was removed in: a42b5c2 Removing legacy XMA features from libvpx. BUG=840 Change-Id: I8ca51d6aa76028f36d0eb1a15d2f2e3161e12ea4
2014-08-11vpx_codec_decode: check data sizeJames Zern
When a valid data pointer is given make sure the size is greater than zero. A previous check for vp9 was incorrectly removed in: 7050074 Make the api behavior conform to api spec. No semantics for valid pointers + 0-sized frames are defined for VPx codecs, so move the check to vpx_codec_decode(). This avoids an assert in vp9. + add some basic invalid param testing for decoder init/decode/destroy Change-Id: I99f9cef6076d15874fd72ac973f2685d8a2353c3
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-08-05Removing legacy XMA features from libvpx.Dmitry Kovalev
Change-Id: I60ffee7cf78e748792fa6d109322ec32f92e40a9
2014-07-31Changes interface to avoid uninitialized warnings in vp9_cx_iface.c.Jim Bankoski
Change-Id: I1092239e21c1cde188ee2dcb765f4c6fc8c5cdec
2014-07-17allow config options to limit max size of decodeJim Bankoski
This is a practical concern to allow us to fail in a decoder instance if the size of a file is bigger than we can reasonably handle. Change-Id: I0446b5502b1f8a48408107648ff2a8d187dca393
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-07-05Adds support for reading and writing 10/12-bit y4mDeb Mukherjee
The y4m extension used is the same as the one used in ffmpeg/x264. The patch is adapted from the highbitdepth branch. Also adds unit tests for y4m header parsing and md5 check of the raw frame data, as well as y4m writing. [build fix for Mac/VS by not using tuples with strings] Change-Id: I40897ee37d289e4b6cea6fedc67047d692b8cb46
2014-07-02Reverting "Adds support for reading and writing 10/12-bit y4m" for now ↵Dmitry Kovalev
because of Mac Build Failure. This reverts commit 82dc1332af4b16d3e4ad3c4358498820637b7add Change-Id: I824bf42bf47c7df6985c79e451d6af913030d374
2014-07-02Adds support for reading and writing 10/12-bit y4mDeb Mukherjee
The y4m extension used is the same as the one used in ffmpeg/x264. The patch is adapted from the highbitdepth branch. Also adds unit tests for y4m header parsing and md5 check of the raw frame data, as well as y4m writing. Change-Id: Ie2794daf6dbafd2f128464f9b9da520fc54c0dd6
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-27Removing ctrl_id parameter from vpx_codec_control_fn_t.Dmitry Kovalev
Change-Id: I2b61c8c17ded1074dea92b4f6ad9be84d128b52a
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
2014-05-12svc_encodeframe.c: change to use correct typeYaowu Xu
Change-Id: I2e97a1d3935944573d027a8020fe1aa391a6f27a
2014-05-02[spatial svc] Fix one extra frame count during flushMinghai Shang
Change-Id: Ia096aafa8aca4f9e58450c4b861393d8f0a15afe