summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Koleszar <jkoleszar@google.com>2013-03-27 11:22:20 -0700
committerJohn Koleszar <jkoleszar@google.com>2013-03-27 11:22:20 -0700
commit672b75a10322dca58976517f5e59178cce72092c (patch)
treef14b39fff357462c31c226681754743126d8425a
parent81708cc326d256296026b70ae89468410a84ed41 (diff)
downloadlibvpx-672b75a10322dca58976517f5e59178cce72092c.tar
libvpx-672b75a10322dca58976517f5e59178cce72092c.tar.gz
libvpx-672b75a10322dca58976517f5e59178cce72092c.tar.bz2
libvpx-672b75a10322dca58976517f5e59178cce72092c.zip
Convert inv_tile_order to control interface
Restore ABI compatibility with the master branch. Change-Id: Ie9f6fdf536662bd87dfcf114d16f003422670763
-rw-r--r--test/tile_independence_test.cc3
-rw-r--r--vp9/vp9_dx_iface.c11
-rw-r--r--vpx/vp8dx.h4
-rw-r--r--vpx/vpx_decoder.h1
4 files changed, 15 insertions, 4 deletions
diff --git a/test/tile_independence_test.cc b/test/tile_independence_test.cc
index acff0fdfb..711d0bd45 100644
--- a/test/tile_independence_test.cc
+++ b/test/tile_independence_test.cc
@@ -32,10 +32,9 @@ class TileIndependenceTest : public ::libvpx_test::EncoderTest,
cfg.w = 704;
cfg.h = 144;
cfg.threads = 1;
- cfg.inv_tile_order = 0;
fw_dec_ = codec_->CreateDecoder(cfg, 0);
- cfg.inv_tile_order = 1;
inv_dec_ = codec_->CreateDecoder(cfg, 0);
+ inv_dec_->Control(VP9_INVERT_TILE_DECODE_ORDER, 1);
}
virtual ~TileIndependenceTest() {
diff --git a/vp9/vp9_dx_iface.c b/vp9/vp9_dx_iface.c
index 66c89b5a9..d0c23f07a 100644
--- a/vp9/vp9_dx_iface.c
+++ b/vp9/vp9_dx_iface.c
@@ -64,6 +64,7 @@ struct vpx_codec_alg_priv {
vpx_image_t img;
int img_setup;
int img_avail;
+ int invert_tile_order;
};
static unsigned long vp8_priv_sz(const vpx_codec_dec_cfg_t *si,
@@ -333,7 +334,7 @@ static vpx_codec_err_t decode_one(vpx_codec_alg_priv_t *ctx,
oxcf.Version = 9;
oxcf.postprocess = 0;
oxcf.max_threads = ctx->cfg.threads;
- oxcf.inv_tile_order = ctx->cfg.inv_tile_order;
+ oxcf.inv_tile_order = ctx->invert_tile_order;
optr = vp9_create_decompressor(&oxcf);
/* If postprocessing was enabled by the application and a
@@ -726,6 +727,13 @@ static vpx_codec_err_t vp8_get_frame_corrupted(vpx_codec_alg_priv_t *ctx,
}
+static vpx_codec_err_t set_invert_tile_order(vpx_codec_alg_priv_t *ctx,
+ int ctr_id,
+ va_list args) {
+ ctx->invert_tile_order = va_arg(args, int);
+ return VPX_CODEC_OK;
+}
+
static vpx_codec_ctrl_fn_map_t ctf_maps[] = {
{VP8_SET_REFERENCE, vp9_set_reference},
{VP8_COPY_REFERENCE, vp9_copy_reference},
@@ -737,6 +745,7 @@ static vpx_codec_ctrl_fn_map_t ctf_maps[] = {
{VP8D_GET_LAST_REF_UPDATES, vp8_get_last_ref_updates},
{VP8D_GET_FRAME_CORRUPTED, vp8_get_frame_corrupted},
{VP9_GET_REFERENCE, get_reference},
+ {VP9_INVERT_TILE_DECODE_ORDER, set_invert_tile_order},
{ -1, NULL},
};
diff --git a/vpx/vp8dx.h b/vpx/vp8dx.h
index ca3d63c8f..201df88fe 100644
--- a/vpx/vp8dx.h
+++ b/vpx/vp8dx.h
@@ -69,6 +69,9 @@ enum vp8_dec_control_id {
*/
VP8_SET_DECRYPT_KEY,
+ /** For testing. */
+ VP9_INVERT_TILE_DECODE_ORDER,
+
VP8_DECODER_CTRL_ID_MAX
};
@@ -85,6 +88,7 @@ VPX_CTRL_USE_TYPE(VP8D_GET_LAST_REF_UPDATES, int *)
VPX_CTRL_USE_TYPE(VP8D_GET_FRAME_CORRUPTED, int *)
VPX_CTRL_USE_TYPE(VP8D_GET_LAST_REF_USED, int *)
VPX_CTRL_USE_TYPE(VP8_SET_DECRYPT_KEY, const unsigned char *)
+VPX_CTRL_USE_TYPE(VP9_INVERT_TILE_DECODE_ORDER, int)
/*! @} - end defgroup vp8_decoder */
diff --git a/vpx/vpx_decoder.h b/vpx/vpx_decoder.h
index ddbc0a6d6..e7701e512 100644
--- a/vpx/vpx_decoder.h
+++ b/vpx/vpx_decoder.h
@@ -106,7 +106,6 @@ extern "C" {
unsigned int threads; /**< Maximum number of threads to use, default 1 */
unsigned int w; /**< Width */
unsigned int h; /**< Height */
- int inv_tile_order; /**< Invert tile decoding order, default 0 */
} vpx_codec_dec_cfg_t; /**< alias for struct vpx_codec_dec_cfg */