[vlc-commits] aom: encoder: add row-mt option, if available

Tristan Matthews git at videolan.org
Mon Jan 14 21:53:03 CET 2019


vlc | branch: master | Tristan Matthews <tmatth at videolan.org> | Tue Jan  8 16:35:52 2019 -0500| [3dbeb66bc60a2ce77e6c924af29950658be67909] | committer: Tristan Matthews

aom: encoder: add row-mt option, if available

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3dbeb66bc60a2ce77e6c924af29950658be67909
---

 modules/codec/aom.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/modules/codec/aom.c b/modules/codec/aom.c
index 32271ed81b..e4f26c3916 100644
--- a/modules/codec/aom.c
+++ b/modules/codec/aom.c
@@ -84,6 +84,9 @@ vlc_module_begin ()
             change_integer_range( 0, 6 ) /* 1 << 6 == MAX_TILE_ROWS */
         add_integer( SOUT_CFG_PREFIX "tile-columns", 0, "Tile Columns (in log2 units)", NULL, true )
             change_integer_range( 0, 6 ) /* 1 << 6 == MAX_TILE_COLS */
+#ifdef AOM_CTRL_AV1E_SET_ROW_MT
+        add_bool( SOUT_CFG_PREFIX "row-mt", false, "Row Multithreading", NULL, true )
+#endif
 #endif
 vlc_module_end ()
 
@@ -434,6 +437,9 @@ static int OpenEncoder(vlc_object_t *p_this)
     int i_bit_depth = var_InheritInteger( p_enc, SOUT_CFG_PREFIX "bitdepth" );
     int i_tile_rows = var_InheritInteger( p_enc, SOUT_CFG_PREFIX "tile-rows" );
     int i_tile_columns = var_InheritInteger( p_enc, SOUT_CFG_PREFIX "tile-columns" );
+#ifdef AOM_CTRL_AV1E_SET_ROW_MT
+    bool b_row_mt = var_GetBool( p_enc, SOUT_CFG_PREFIX "row-mt" );
+#endif
 
     /* TODO: implement higher profiles, bit depths and other pixformats. */
     switch( i_profile )
@@ -500,6 +506,17 @@ static int OpenEncoder(vlc_object_t *p_this)
         return VLC_EGENERIC;
     }
 
+#ifdef AOM_CTRL_AV1E_SET_ROW_MT
+    if (b_row_mt &&
+        aom_codec_control(ctx, AV1E_SET_ROW_MT, b_row_mt))
+    {
+        AOM_ERR(p_this, ctx, "Failed to set row-multithreading");
+        destroy_context(p_this, ctx);
+        free(p_sys);
+        return VLC_EGENERIC;
+    }
+#endif
+
     p_enc->pf_encode_video = Encode;
 
     return VLC_SUCCESS;



More information about the vlc-commits mailing list