shithub: libvpx

Download patch

ref: 672b75a10322dca58976517f5e59178cce72092c
parent: 81708cc326d256296026b70ae89468410a84ed41
author: John Koleszar <jkoleszar@google.com>
date: Wed Mar 27 07:22:20 EDT 2013

Convert inv_tile_order to control interface

Restore ABI compatibility with the master branch.

Change-Id: Ie9f6fdf536662bd87dfcf114d16f003422670763

--- a/test/tile_independence_test.cc
+++ b/test/tile_independence_test.cc
@@ -32,10 +32,9 @@
     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() {
--- a/vp9/vp9_dx_iface.c
+++ b/vp9/vp9_dx_iface.c
@@ -64,6 +64,7 @@
   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 @@
       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 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 @@
   {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},
 };
 
--- a/vpx/vp8dx.h
+++ b/vpx/vp8dx.h
@@ -69,6 +69,9 @@
    */
   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_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 */
 
--- a/vpx/vpx_decoder.h
+++ b/vpx/vpx_decoder.h
@@ -106,7 +106,6 @@
     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 */