summaryrefslogtreecommitdiff
path: root/vpx/src
AgeCommit message (Collapse)Author
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-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
2014-03-27[svc] Fix issue for setting layers through ffmpegMinghai Shang
Root cause is number of spatial layers is set through parse_options() when running from ffmpeg. Change-Id: Icd79cd13fd76e8712150d803838a33fee9117dcb
2014-03-21[svc] Add min/max q and min/max bitrate in svc test appMinghai Shang
Change-Id: I67ea45119f23659279d24aa67eb823c751ac86fc
2014-03-19[svc] Finalize spatial svc first pass rate controlMinghai Shang
1. Save stats for each spatial layer 2. Add frame buffer management for svc first pass rc 3. Set default spatial layer to 1 4. Flush encoder at the end of stream in test app This only supports spatial svc. Change-Id: Ia89cfa87bb6394e6c0405b921d86c426d0a0c9ae
2014-03-14svc_encodeframe: quiet -Warray-bounds warningsJames Zern
si->layers is validated prior to assignment; add an assertion prior to first use as a loop bound Change-Id: I727d4e24be3c352c3e5320d92e89d3f787944812
2014-03-10Adding type casts to remove C++ compiler errors.Dmitry Kovalev
Change-Id: I224e49955ad6c833d204feb8efc4056e37d206be
2014-02-28[svc] 1. Add two pass RC options in vp9_spatial_scalable_encoder.Minghai Shang
2. Add read/write for RC stats file The two pass RC for svc does not work yet. This is just the first step. We need further development to make it working. Change-Id: I8ef0e177dff0b5ed3c97a916beea5123717cc6f2
2014-02-28Merge "[svc] Fix "possible loss of data", "division by zero" and "index 5 ↵Minghai Shang
out of bounds for type" compiler warings"
2014-02-28Merge "Cleaning up vpx_codec_get_cx_data() function."Dmitry Kovalev
2014-02-28[svc] Fix "possible loss of data", "division by zero" andMinghai Shang
"index 5 out of bounds for type" compiler warings Change-Id: I414d39198cb02d1b8e2330002ed5fe062aaea95e
2014-02-27Merge "[svc] Add target bitrate settings for each layers."Minghai Shang
2014-02-27Merge "Change for adding QP settings for key frames"Minghai Shang
2014-02-26Merge "Adding vpx_sse_to_psnr() function."Dmitry Kovalev
2014-02-26Adding vpx_sse_to_psnr() function.Dmitry Kovalev
Removing all copies of identical vp8_mse2psnr/vp9_mse2psnr functions. Using vpx_sse_to_psnr() instead in all places. Change-Id: I15beef9834d43d8fc8a8a7a2d1fc5de3d658fed8
2014-02-26log overall psnr, average psnr, and overall mseIvan Maltz
Change-Id: I0b4fa1f8104b7fa5780d4e99e5401c14271a992d
2014-02-26[svc] Add target bitrate settings for each layers.Minghai Shang
Change-Id: Ia7677fb436667bc4f76db71f65e4784f433f7826
2014-02-26Change for adding QP settings for key framesMinghai Shang
Change-Id: I4dcabb60cb1185eb9a2efa18b50f17af272d2cd6