Browse Source

demux: adaptive: add new buffering control options

pull/104/head
Francois Cartegnie 6 years ago
parent
commit
2f3dab4ce5
  1. 12
      modules/demux/adaptive/PlaylistManager.cpp
  2. 18
      modules/demux/adaptive/adaptive.cpp

12
modules/demux/adaptive/PlaylistManager.cpp

@ -833,5 +833,15 @@ AbstractAdaptationLogic *PlaylistManager::createLogic(AbstractAdaptationLogic::L
AbstractBufferingLogic *PlaylistManager::createBufferingLogic() const
{
return new DefaultBufferingLogic();
DefaultBufferingLogic *bl = new DefaultBufferingLogic();
if(bl)
{
unsigned v = var_InheritInteger(p_demux, "adaptive-livedelay");
if(v)
bl->setUserLiveDelay(VLC_TICK_FROM_MS(v));
v = var_InheritInteger(p_demux, "adaptive-maxbuffer");
if(v)
bl->setUserMinBuffering(VLC_TICK_FROM_MS(v));
}
return bl;
}

18
modules/demux/adaptive/adaptive.cpp

@ -71,11 +71,19 @@ static void Close (vlc_object_t *);
#define ADAPT_BW_TEXT N_("Fixed Bandwidth in KiB/s")
#define ADAPT_BW_LONGTEXT N_("Preferred bandwidth for non adaptive streams")
#define ADAPT_BUFFER_TEXT N_("Live Playback delay (ms)")
#define ADAPT_BUFFER_LONGTEXT N_("Tradeoff between stability and real time")
#define ADAPT_MAXBUFFER_TEXT N_("Max buffering (ms)")
#define ADAPT_LOGIC_TEXT N_("Adaptive Logic")
#define ADAPT_ACCESS_TEXT N_("Use regular HTTP modules")
#define ADAPT_ACCESS_LONGTEXT N_("Connect using HTTP access instead of custom HTTP code")
#define ADAPT_LOWLATENCY_TEXT N_("Low latency")
#define ADAPT_LOWLATENCY_LONGTEXT N_("Overrides low latency parameters")
static const AbstractAdaptationLogic::LogicType pi_logics[] = {
AbstractAdaptationLogic::Default,
AbstractAdaptationLogic::Predictive,
@ -108,6 +116,12 @@ static_assert( ARRAY_SIZE( pi_logics ) == ARRAY_SIZE( ppsz_logics ),
static_assert( ARRAY_SIZE( pi_logics ) == ARRAY_SIZE( ppsz_logics_values ),
"pi_logics and ppsz_logics_values shall have the same number of elements" );
static const int rgi_latency[] = { -1, 1, 0 };
static const char *const ppsz_latency[] = { N_("Auto"),
N_("Force"),
N_("Disable") };
vlc_module_begin ()
set_shortname( N_("Adaptive"))
set_description( N_("Unified adaptive streaming for DASH/HLS") )
@ -122,6 +136,10 @@ vlc_module_begin ()
ADAPT_HEIGHT_TEXT, ADAPT_HEIGHT_TEXT, false )
add_integer( "adaptive-bw", 250, ADAPT_BW_TEXT, ADAPT_BW_LONGTEXT, false )
add_bool ( "adaptive-use-access", false, ADAPT_ACCESS_TEXT, ADAPT_ACCESS_LONGTEXT, true );
add_integer( "adaptive-livedelay", 0, ADAPT_BUFFER_TEXT, ADAPT_BUFFER_LONGTEXT, true );
add_integer( "adaptive-maxbuffer", 0, ADAPT_MAXBUFFER_TEXT, NULL, true );
add_integer( "adaptive-lowlatency", -1, ADAPT_LOWLATENCY_TEXT, ADAPT_LOWLATENCY_LONGTEXT, true );
change_integer_list(rgi_latency, ppsz_latency)
set_callbacks( Open, Close )
vlc_module_end ()

Loading…
Cancel
Save