Age | Commit message (Collapse) | Author |
|
Change-Id: I6e8d3f08c8a8ce3555a498feba471ba9fec411c6
|
|
|
|
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
|
|
It's built based on current spatial svc code.
We only support one spatial two temporal layers at this time.
Change-Id: I1fdc8584354b910331e626bfae60473b3b701ba1
|
|
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
|
|
|
|
|
|
Change-Id: I3e319f581215ccb814afca247c1d911be231a4ac
|
|
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
|
|
The iface pointer is already in vpx_codec_ctx struct.
Change-Id: I9fffe27c613a7c94476f185a1e5a53ff6d99f1c6
|
|
Change-Id: Idfd606bf9d23c898bcdfb98fb90a23a5fdace960
|
|
Moved to global function to avoid unused function warnings...
Change-Id: I4e9002dcb20748f6d8d84cbbe6ef2de0bd9a8018
|
|
|
|
the bulk of the functionality was removed in:
a42b5c2 Removing legacy XMA features from libvpx.
BUG=840
Change-Id: I8ca51d6aa76028f36d0eb1a15d2f2e3161e12ea4
|
|
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
|
|
Adds a couple of CONFIG_SPATIAL_SVC macros to allow compilation
when spatial-svc is disabled.
Change-Id: I67f84406d1d3fa26f225d9c6518161a0841f2d29
|
|
Change-Id: I60ffee7cf78e748792fa6d109322ec32f92e40a9
|
|
Change-Id: I1092239e21c1cde188ee2dcb765f4c6fc8c5cdec
|
|
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
|
|
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
|
|
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
|
|
because of Mac Build Failure.
This reverts commit 82dc1332af4b16d3e4ad3c4358498820637b7add
Change-Id: I824bf42bf47c7df6985c79e451d6af913030d374
|
|
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
|
|
this time."
|
|
Change-Id: I1b6ed2e82a7e3e8a9e790bf29d667a3f856a9518
|
|
by rate control
Change-Id: I7eda0f5e678034f0e9c2ab481c517d2e9b280eb5
|
|
Change-Id: I930dced169c9d53f8044d2754a04332138347409
|
|
Change-Id: I2b61c8c17ded1074dea92b4f6ad9be84d128b52a
|
|
|
|
Change-Id: I2a41c1fe08261065dd21fe631b2b5937acfbfb51
|
|
Change-Id: Ifb09502ddf62664b3bfc62172de46bc36fde8efb
|
|
Change-Id: I76a48b03388a8c5cc74b871deb836cd92263b306
|
|
Change-Id: I2e97a1d3935944573d027a8020fe1aa391a6f27a
|
|
Change-Id: Ia096aafa8aca4f9e58450c4b861393d8f0a15afe
|
|
Root cause is number of spatial layers is set through
parse_options() when running from ffmpeg.
Change-Id: Icd79cd13fd76e8712150d803838a33fee9117dcb
|
|
Change-Id: I67ea45119f23659279d24aa67eb823c751ac86fc
|
|
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
|
|
si->layers is validated prior to assignment; add an assertion prior to
first use as a loop bound
Change-Id: I727d4e24be3c352c3e5320d92e89d3f787944812
|
|
Change-Id: I224e49955ad6c833d204feb8efc4056e37d206be
|
|
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
|
|
out of bounds for type" compiler warings"
|
|
|
|
"index 5 out of bounds for type" compiler warings
Change-Id: I414d39198cb02d1b8e2330002ed5fe062aaea95e
|
|
|
|
|
|
|
|
Removing all copies of identical vp8_mse2psnr/vp9_mse2psnr functions.
Using vpx_sse_to_psnr() instead in all places.
Change-Id: I15beef9834d43d8fc8a8a7a2d1fc5de3d658fed8
|
|
Change-Id: I0b4fa1f8104b7fa5780d4e99e5401c14271a992d
|
|
Change-Id: Ia7677fb436667bc4f76db71f65e4784f433f7826
|
|
Change-Id: I4dcabb60cb1185eb9a2efa18b50f17af272d2cd6
|