]> granicus.if.org Git - libvpx/commitdiff
vp9: Sample encoder vpx_temporal_svc_encoder: enable row-mt
authorMarco <marpan@google.com>
Fri, 10 Mar 2017 16:46:23 +0000 (08:46 -0800)
committerMarco <marpan@google.com>
Fri, 10 Mar 2017 18:11:39 +0000 (10:11 -0800)
Enable row-mt in the sample encoder vpx_temporal_svc_encoder.c,
under certain condiitons.

Change-Id: Ic103ee81a9d80be5bf6e5778cc21fc3199db909d

examples/vpx_temporal_svc_encoder.c

index 67225cf621da15dc2e0c9f244678e33640cb1fed..c34673b05ece0ac70a8260acbd4074cbf2efc1ec 100644 (file)
@@ -722,7 +722,12 @@ int main(int argc, char **argv) {
     vpx_codec_control(&codec, VP8E_SET_STATIC_THRESHOLD, 1);
     vpx_codec_control(&codec, VP9E_SET_TUNE_CONTENT, 0);
     vpx_codec_control(&codec, VP9E_SET_TILE_COLUMNS, (cfg.g_threads >> 1));
-    vpx_codec_control(&codec, VP9E_SET_ROW_MT, 0);
+    // TODO(marpan/jianj): There is an issue with row-mt for low resolutons at
+    // high speed settings, disable its use for those cases for now.
+    if (cfg.g_threads > 1 && ((cfg.g_w > 320 && cfg.g_h > 240) || speed < 7))
+      vpx_codec_control(&codec, VP9E_SET_ROW_MT, 1);
+    else
+      vpx_codec_control(&codec, VP9E_SET_ROW_MT, 0);
     if (vpx_codec_control(&codec, VP9E_SET_SVC, layering_mode > 0 ? 1 : 0))
       die_codec(&codec, "Failed to set SVC");
     for (i = 0; i < cfg.ts_number_layers; ++i) {