]> granicus.if.org Git - libvpx/commitdiff
Initially add frame_parallel_decode flag.
authorhkuang <hkuang@google.com>
Wed, 11 Jun 2014 23:06:50 +0000 (16:06 -0700)
committerhkuang <hkuang@google.com>
Thu, 12 Jun 2014 00:29:29 +0000 (17:29 -0700)
Stub flag temporarily set to 0 until frame parallel
decoding implementations are finished.

Change-Id: I8ab768138e8f8f8eb809875703b2502ea0fe7cea

vp9/decoder/vp9_decoder.h
vp9/vp9_dx_iface.c

index a6edf0cbd7a255483f95bb4f1e7640d1255cb1b4..ab4f9a2c375935dca3e9a2b7e2716d87f03ddb31 100644 (file)
@@ -43,6 +43,8 @@ typedef struct VP9Decoder {
 
   int refresh_frame_flags;
 
+  int frame_parallel_decode;  // frame-based threading.
+
   VP9Worker lf_worker;
   VP9Worker *tile_workers;
   int num_tile_workers;
index 48110b4147b6f5ac1eb38836a63e9ecb86768933..98faa7f65762a43c6b314bde185e447880273c7e 100644 (file)
@@ -39,6 +39,7 @@ struct vpx_codec_alg_priv {
   void                   *decrypt_state;
   vpx_image_t             img;
   int                     invert_tile_order;
+  int                     frame_parallel_decode;  // frame-based threading.
 
   // External frame buffer info to save for VP9 common.
   void *ext_priv;  // Private data associated with the external frame buffers.
@@ -66,6 +67,11 @@ static vpx_codec_err_t decoder_init(vpx_codec_ctx_t *ctx,
     ctx->priv->alg_priv = alg_priv;
     ctx->priv->alg_priv->si.sz = sizeof(ctx->priv->alg_priv->si);
     ctx->priv->init_flags = ctx->init_flags;
+    ctx->priv->alg_priv->frame_parallel_decode =
+        (ctx->init_flags & VPX_CODEC_USE_FRAME_THREADING);
+
+    // Disable frame parallel decoding for now.
+    ctx->priv->alg_priv->frame_parallel_decode = 0;
 
     if (ctx->config.dec) {
       // Update the reference to the config structure to an internal copy.
@@ -231,6 +237,7 @@ static void init_decoder(vpx_codec_alg_priv_t *ctx) {
 
   ctx->pbi->max_threads = ctx->cfg.threads;
   ctx->pbi->inv_tile_order = ctx->invert_tile_order;
+  ctx->pbi->frame_parallel_decode = ctx->frame_parallel_decode;
 
   // If postprocessing was enabled by the application and a
   // configuration has not been provided, default it.