summaryrefslogtreecommitdiff
path: root/vpx
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-27Add a new control of golden frame boost in CBR modeYaowu Xu
0 means that golden boost is off, and uses average frame target rate, a non-zero number means the percentage of boost over average frame bitrate is given initially to golden frames in CBR mode. Change-Id: If4334fe2cc424b65ae0cce27f71b5561bf1e577d
2014-10-24Add a new control of max bitrate for inter frameYaowu Xu
Change-Id: I205de3611622cff7f751ea8baf9f82784581730a
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-16Merge "fix CONFIG_SPATIAL_SVC warning"James Zern
2014-10-15fix CONFIG_SPATIAL_SVC warningJames Zern
this change checks that CONFIG_SPATIAL_SVC is defined and adds a TODO to ensure this is changed in the future as the release headers can't depend on vpx_config.h. vpx/vpx_encoder.h:164:5: warning: "CONFIG_SPATIAL_SVC" is not defined [-Wundef] Change-Id: I797a0150e5f56caf048e7ee00b282fbc9c5ede19
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-30vpx_integer.h: define __STDC_LIMIT_MACROSJames Zern
fixes --enable-coefficient-range-checking --enable-debug vp9_idct.h has references to INT16_MIN/MAX; this header is included in c++ source so needs to request the macros Change-Id: I2e643eb973c2d84729fa3cf2f4c4d8bf65cfdff0
2014-09-30Revert "Fix compiling error in vp9_idct.h"James Zern
This reverts commit eafc8c9c40d712aabe234bed5269a02c62fa0bfc. tran_low_t/tran_high_t don't belong in a public header, they're private. Similarly the public headers shouldn't rely on config defines, vpx_config.h isn't installed. Change-Id: I194ec273598da418df8dd727b6c0e78a556740ad
2014-09-30Merge "Misc. high-bit-depth fixes"Deb Mukherjee
2014-09-30Misc. high-bit-depth fixesDeb Mukherjee
Change-Id: Ie9fb6a4078eb6a3fb7c4ff1453831ab9afe23121
2014-09-30Fix compiling error in vp9_idct.hJingning Han
This commit fixes a compiling error in vp9_idct.h, where the codec checks that the intermediate steps of transformation fit within 16-bit length. The issue was due to broken file dependency. Change-Id: Ib22bba13a1e6df28489cb23d6774c561969f1fdc
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-16Merge "Remove memset of every external frame buffer."Frank Galligan
2014-09-15Remove memset of every external frame buffer.Frank Galligan
Libvpx was memseting every external frame buffer before decode. This was to work around a valgrind issue in our C loop filter. Most of the time this was not needed and we have noticed some significant performance loss on some platforms. Now we require the application to zero out the buffers if it is using external frame buffers. Change-Id: I7330d00a315e65137ed30edd5f813e8929b76242
2014-09-12Merge "Change the control function of VP9 denoiser."JackyChen
2014-09-12Change the control function of VP9 denoiser.JackyChen
Change from VP8E_SET_NOISE_SENSITIVITY to VP9E_SET_NOISE_SENSITIVITY Change-Id: Ia210a7029b26924e30973f0f9798a338e0412407
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-08Merge "[spatial svc]Add layer bitrates options and clean up parsing options ↵Minghai Shang
from string"
2014-09-05[spatial svc]Add layer bitrates options and clean up parsing options from stringMinghai Shang
Change-Id: I6e8d3f08c8a8ce3555a498feba471ba9fec411c6
2014-09-04Removing sz member from vpx_codec_priv. Dmitry Kovalev
Change-Id: I811526a9ee9f237604f72abe7fc677e39e0f457f
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-22Replacing 'struct vpx_fixed_buf' with 'vpx_fixed_buf_t’.Dmitry Kovalev
Change-Id: Ibbbc5b39429d4b753f0a966b9d84d1d7bf823650
2014-08-21Merge "Replacing NOT_IMPLMENTED with NULL."Dmitry Kovalev
2014-08-20Replacing NOT_IMPLMENTED with NULL.Dmitry Kovalev
We don’t need to introduce new macro for the null value. Change-Id: I59dbae25feeebb4e8359095801aecc8bb17d7764
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-19Merge "Using functions from vpx_mem.h inside vpx_image.c."Dmitry Kovalev
2014-08-19Using functions from vpx_mem.h inside vpx_image.c.Dmitry Kovalev
Change-Id: Idfd606bf9d23c898bcdfb98fb90a23a5fdace960
2014-08-19Removing unused tbd struct member.Dmitry Kovalev
Change-Id: I07f7aea60ef7b9904f67e12eb5b2bfeb7348a454
2014-08-13vpx_codec_internal.h : clean out unused function warningJim Bankoski
Change-Id: I53659e3ff8ba1b70d89d152e0580ac7a412b89b2
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-12Merge "inline vpx functions in headers to avoid unused function warning"James Zern