[vlc-commits] demux: adaptive: change logic var to string

Francois Cartegnie git at videolan.org
Wed Oct 12 11:37:59 CEST 2016


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed Oct 12 11:24:01 2016 +0200| [92646bf1f2625151a5f6e73b4ea739bc9c2b0511] | committer: Francois Cartegnie

demux: adaptive: change logic var to string

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

 modules/demux/adaptive/adaptive.cpp | 33 +++++++++++++++++++++++++++------
 1 file changed, 27 insertions(+), 6 deletions(-)

diff --git a/modules/demux/adaptive/adaptive.cpp b/modules/demux/adaptive/adaptive.cpp
index 0ec02d0..ca3a994 100644
--- a/modules/demux/adaptive/adaptive.cpp
+++ b/modules/demux/adaptive/adaptive.cpp
@@ -75,13 +75,22 @@ static void Close   (vlc_object_t *);
 #define ADAPT_ACCESS_TEXT N_("Use regular HTTP modules")
 #define ADAPT_ACCESS_LONGTEXT N_("Connect using http access instead of custom http code")
 
-static const int pi_logics[] = {AbstractAdaptationLogic::Default,
+static const AbstractAdaptationLogic::LogicType pi_logics[] = {
+                                AbstractAdaptationLogic::Default,
                                 AbstractAdaptationLogic::Predictive,
                                 AbstractAdaptationLogic::RateBased,
                                 AbstractAdaptationLogic::FixedRate,
                                 AbstractAdaptationLogic::AlwaysLowest,
                                 AbstractAdaptationLogic::AlwaysBest};
 
+static const char *const ppsz_logics_values[] = {
+                                "",
+                                "predictive",
+                                "rate",
+                                "fixedrate",
+                                "lowest",
+                                "highest"};
+
 static const char *const ppsz_logics[] = { N_("Default"),
                                            N_("Predictive"),
                                            N_("Bandwidth Adaptive"),
@@ -95,9 +104,8 @@ vlc_module_begin ()
         set_capability( "demux", 12 )
         set_category( CAT_INPUT )
         set_subcategory( SUBCAT_INPUT_DEMUX )
-        add_integer( "adaptive-logic",  AbstractAdaptationLogic::Default,
-                                          ADAPT_LOGIC_TEXT, NULL, false )
-            change_integer_list( pi_logics, ppsz_logics )
+        add_string( "adaptive-logic",  "", ADAPT_LOGIC_TEXT, NULL, false )
+            change_string_list( ppsz_logics_values, ppsz_logics )
         add_integer( "adaptive-width",  0, ADAPT_WIDTH_TEXT,  ADAPT_WIDTH_TEXT,  true )
         add_integer( "adaptive-height", 0, ADAPT_HEIGHT_TEXT, ADAPT_HEIGHT_TEXT, true )
         add_integer( "adaptive-bw",     250, ADAPT_BW_TEXT,     ADAPT_BW_LONGTEXT,     false )
@@ -130,8 +138,21 @@ static int Open(vlc_object_t *p_obj)
     }
 
     PlaylistManager *p_manager = NULL;
-    AbstractAdaptationLogic::LogicType logic =
-            static_cast<AbstractAdaptationLogic::LogicType>(var_InheritInteger(p_obj, "adaptive-logic"));
+
+    char *psz_logic = var_InheritString(p_obj, "adaptive-logic");
+    AbstractAdaptationLogic::LogicType logic = AbstractAdaptationLogic::Default;
+    if( psz_logic )
+    {
+        for(size_t i=0;i<ARRAY_SIZE(pi_logics); i++)
+        {
+            if(!strcmp(psz_logic, ppsz_logics_values[i]))
+            {
+                logic = pi_logics[i];
+                break;
+            }
+        }
+        free( psz_logic );
+    }
 
     std::string playlisturl(p_demux->s->psz_url);
 



More information about the vlc-commits mailing list