]> granicus.if.org Git - libvpx/commitdiff
Merge "Fail early when android target does not include --sdk-path"
authorJohann Koenig <johannkoenig@google.com>
Thu, 23 Jun 2016 19:04:51 +0000 (19:04 +0000)
committerGerrit Code Review <noreply-gerritcodereview@google.com>
Thu, 23 Jun 2016 19:04:52 +0000 (19:04 +0000)
12 files changed:
build/make/configure.sh
configure
vp8/common/generic/systemdependent.c
vp8/decoder/decodeframe.c
vp8/decoder/error_concealment.c
vp8/decoder/error_concealment.h
vp8/decoder/threading.c
vp8/vp8_cx_iface.c
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_encodemb.c
vp9/encoder/vp9_pickmode.c
vpx_dsp/x86/loopfilter_sse2.c

index e5ce21a92fea354addf44c76d4d7001697660b38..f8383da270e7066c18d3e37eee2c50c089a8da0d 100644 (file)
@@ -945,6 +945,9 @@ EOF
               check_add_cflags -mfpu=neon #-ftree-vectorize
               check_add_asflags -mfpu=neon
             fi
+          elif [ ${tgt_isa} = "arm64" ] || [ ${tgt_isa} = "armv8" ]; then
+            check_add_cflags -march=armv8-a
+            check_add_asflags -march=armv8-a
           else
             check_add_cflags -march=${tgt_isa}
             check_add_asflags -march=${tgt_isa}
index d078596673080b474b1703afe7a9a20982653269..f82ee046b6773e50479ddcd0998c1e3e7d6738d8 100755 (executable)
--- a/configure
+++ b/configure
@@ -97,11 +97,11 @@ EOF
 
 # all_platforms is a list of all supported target platforms. Maintain
 # alphabetically by architecture, generic-gnu last.
+all_platforms="${all_platforms} arm64-darwin-gcc"
+all_platforms="${all_platforms} arm64-linux-gcc"
 all_platforms="${all_platforms} armv6-linux-rvct"
 all_platforms="${all_platforms} armv6-linux-gcc"
 all_platforms="${all_platforms} armv6-none-rvct"
-all_platforms="${all_platforms} arm64-darwin-gcc"
-all_platforms="${all_platforms} arm64-linux-gcc"
 all_platforms="${all_platforms} armv7-android-gcc"   #neon Cortex-A8
 all_platforms="${all_platforms} armv7-darwin-gcc"    #neon Cortex-A8
 all_platforms="${all_platforms} armv7-linux-rvct"    #neon Cortex-A8
@@ -111,6 +111,7 @@ all_platforms="${all_platforms} armv7-win32-vs11"
 all_platforms="${all_platforms} armv7-win32-vs12"
 all_platforms="${all_platforms} armv7-win32-vs14"
 all_platforms="${all_platforms} armv7s-darwin-gcc"
+all_platforms="${all_platforms} armv8-linux-gcc"
 all_platforms="${all_platforms} mips32-linux-gcc"
 all_platforms="${all_platforms} mips64-linux-gcc"
 all_platforms="${all_platforms} sparc-solaris-gcc"
index 28dc262ae5a2c1c935a213c3f2977de80b679892..6d5f302d7a4766b262658c61bf91e35ed3c555c7 100644 (file)
@@ -94,6 +94,8 @@ void vp8_machine_specific_config(VP8_COMMON *ctx)
 {
 #if CONFIG_MULTITHREAD
     ctx->processor_core_count = get_cpu_count();
+#else
+    (void)ctx;
 #endif /* CONFIG_MULTITHREAD */
 
 #if ARCH_ARM
index 566972ea7257cb86c534bf80d16fee6d104c7783..51acdbb9c8a0bdc0a47a1d749ee89605e1be740a 100644 (file)
@@ -144,8 +144,6 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
              */
             pbi->frame_corrupt_residual = 1;
             memset(xd->qcoeff, 0, sizeof(xd->qcoeff));
-            vp8_conceal_corrupt_mb(xd);
-
 
             corruption_detected = 1;
 
@@ -625,8 +623,7 @@ static void decode_mb_rows(VP8D_COMP *pbi)
                      */
                     vp8_interpolate_motion(xd,
                                            mb_row, mb_col,
-                                           pc->mb_rows, pc->mb_cols,
-                                           pc->mode_info_stride);
+                                           pc->mb_rows, pc->mb_cols);
                 }
             }
 #endif
index fbfae61e78dfa4874c3bf827a5fc131d58e3c833..a73813fc072ca9883f95012ce7d2cd2a6ecf2873 100644 (file)
@@ -558,8 +558,7 @@ static void interpolate_mvs(MACROBLOCKD *mb,
 
 void vp8_interpolate_motion(MACROBLOCKD *mb,
                         int mb_row, int mb_col,
-                        int mb_rows, int mb_cols,
-                        int mi_stride)
+                        int mb_rows, int mb_cols)
 {
     /* Find relevant neighboring blocks */
     EC_BLOCK neighbors[NUM_NEIGHBORS];
@@ -585,13 +584,3 @@ void vp8_interpolate_motion(MACROBLOCKD *mb,
     mb->mode_info_context->mbmi.partitioning = 3;
     mb->mode_info_context->mbmi.segment_id = 0;
 }
-
-void vp8_conceal_corrupt_mb(MACROBLOCKD *xd)
-{
-    /* This macroblock has corrupt residual, use the motion compensated
-       image (predictor) for concealment */
-
-    /* The build predictor functions now output directly into the dst buffer,
-     * so the copies are no longer necessary */
-
-}
index 9a1e024865d99c69aa4c04eb05d6a96f2fab6187..b6b49725b017d310ae095ae3db12457718a311f2 100644 (file)
@@ -34,13 +34,7 @@ void vp8_estimate_missing_mvs(VP8D_COMP *pbi);
  * (mb_row, mb_col). */
 void vp8_interpolate_motion(MACROBLOCKD *mb,
                             int mb_row, int mb_col,
-                            int mb_rows, int mb_cols,
-                            int mi_stride);
-
-/* Conceal a macroblock with corrupt residual.
- * Copies the prediction signal to the reconstructed image.
- */
-void vp8_conceal_corrupt_mb(MACROBLOCKD *xd);
+                            int mb_rows, int mb_cols);
 
 #ifdef __cplusplus
 }  // extern "C"
index 97979e3b2fd005aab0975d70227715f858fa60d8..3c1b8387ec943f65618b1398f541d1422b248765 100644 (file)
@@ -136,8 +136,6 @@ static void mt_decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
              */
             pbi->frame_corrupt_residual = 1;
             memset(xd->qcoeff, 0, sizeof(xd->qcoeff));
-            vp8_conceal_corrupt_mb(xd);
-
 
             corruption_detected = 1;
 
@@ -447,8 +445,7 @@ static void mt_decode_mb_rows(VP8D_COMP *pbi, MACROBLOCKD *xd, int start_mb_row)
                     */
                    vp8_interpolate_motion(xd,
                                           mb_row, mb_col,
-                                          pc->mb_rows, pc->mb_cols,
-                                          pc->mode_info_stride);
+                                          pc->mb_rows, pc->mb_cols);
                }
            }
     #endif
index b19ab7a233b114e99c9700e025cea9171d028b59..22a82b73469c43ff1107436ea6cf6e4d88040245 100644 (file)
@@ -783,6 +783,7 @@ static void pick_quickcompress_mode(vpx_codec_alg_priv_t  *ctx,
     }
 
 #else
+    (void)duration;
     new_qc = MODE_REALTIME;
 #endif
 
index 984f98a91d4eed16c23330e4b5ec16bf5ea1a416..f55804c976dfa7231332d5edfb96661fef0bb9cd 100644 (file)
@@ -1299,11 +1299,8 @@ static void set_mode_info_seg_skip(MACROBLOCK *x, TX_MODE tx_mode,
   MODE_INFO *const mi = xd->mi[0];
   INTERP_FILTER filter_ref;
 
-  if (xd->above_mi)
-    filter_ref = xd->above_mi->interp_filter;
-  else if (xd->left_mi)
-    filter_ref = xd->left_mi->interp_filter;
-  else
+  filter_ref = vp9_get_pred_context_switchable_interp(xd);
+  if (filter_ref == SWITCHABLE_FILTERS)
     filter_ref = EIGHTTAP;
 
   mi->sb_type = bsize;
index fdf403eb3c89a1503a408e475e632a2c69af59a0..169943c10c6c940960e226c069a186811c768c0c 100644 (file)
@@ -50,11 +50,10 @@ void vp9_subtract_plane(MACROBLOCK *x, BLOCK_SIZE bsize, int plane) {
                      pd->dst.buf, pd->dst.stride);
 }
 
-// TODO(aconverse): Re-pack this structure.
 typedef struct vp9_token_state {
-  int           rate;
   int64_t       error;
-  int           next;
+  int           rate;
+  int16_t       next;
   int16_t       token;
   tran_low_t    qc;
   tran_low_t    dqc;
index c13f24fb02990a1e90fe6ae552e124b3d7fe9ff7..f1fbd69aba2e609292144e0380742e4df80c4db3 100644 (file)
@@ -1410,9 +1410,13 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
   x->skip_encode = cpi->sf.skip_encode_frame && x->q_index < QIDX_SKIP_THRESH;
   x->skip = 0;
 
-  if (xd->above_mi)
+  // Instead of using vp9_get_pred_context_switchable_interp(xd) to assign
+  // filter_ref, we use a less strict condition on assigning filter_ref.
+  // This is to reduce the probabily of entering the flow of not assigning
+  // filter_ref and then skip filter search.
+  if (xd->above_mi && is_inter_block(xd->above_mi))
     filter_ref = xd->above_mi->interp_filter;
-  else if (xd->left_mi)
+  else if (xd->left_mi && is_inter_block(xd->left_mi))
     filter_ref = xd->left_mi->interp_filter;
   else
     filter_ref = cm->interp_filter;
@@ -1723,7 +1727,7 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
       vp9_build_inter_predictors_sby(xd, mi_row, mi_col, bsize);
 
       // For large partition blocks, extra testing is done.
-      if (cpi->oxcf.rc_mode == VPX_CBR && bsize > BLOCK_32X32 &&
+      if (cpi->oxcf.rc_mode == VPX_CBR && bsize >= BLOCK_32X32 &&
         !cyclic_refresh_segment_id_boosted(xd->mi[0]->segment_id) &&
         cm->base_qindex) {
         model_rd_for_sb_y_large(cpi, bsize, x, xd, &this_rdc.rate,
@@ -1977,6 +1981,10 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
   mi->ref_frame[0] = best_ref_frame;
   x->skip_txfm[0] = best_mode_skip_txfm;
 
+  if (!is_inter_block(mi)) {
+    mi->interp_filter = SWITCHABLE_FILTERS;
+  }
+
   if (reuse_inter_pred && best_pred != NULL) {
     if (best_pred->data != orig_dst.buf && is_inter_mode(mi->mode)) {
 #if CONFIG_VP9_HIGHBITDEPTH
index 39a6ae3a854e7b06fd9abeb565f1f5a4cd345a5a..739adf31d067912d2c8c047f744800e7927ac70b 100644 (file)
@@ -111,7 +111,6 @@ void vpx_lpf_horizontal_4_sse2(uint8_t *s, int p /* pitch */,
   __m128i q1p1, q0p0, p3p2, p2p1, p1p0, q3q2, q2q1, q1q0, ps1ps0, qs1qs0;
   __m128i mask, hev;
 
-  p3p2 = _mm_loadl_epi64((__m128i *)(s - 3 * p));
   p3p2 = _mm_unpacklo_epi64(_mm_loadl_epi64((__m128i *)(s - 3 * p)),
                             _mm_loadl_epi64((__m128i *)(s - 4 * p)));
   q1p1 = _mm_unpacklo_epi64(_mm_loadl_epi64((__m128i *)(s - 2 * p)),