Commit d20cd478 authored by Jean-Paul Saman's avatar Jean-Paul Saman

stream_filter/httplive.c: select stream with lowest bandwidth to start playback.

Start playback with the lowest bandwidth stream.
parent ccaec9e6
...@@ -232,6 +232,29 @@ static hls_stream_t *hls_GetLast(vlc_array_t *hls_stream) ...@@ -232,6 +232,29 @@ static hls_stream_t *hls_GetLast(vlc_array_t *hls_stream)
return (hls_stream_t *) hls_Get(hls_stream, count); return (hls_stream_t *) hls_Get(hls_stream, count);
} }
static int hls_LowestBandwidthStream(vlc_array_t *hls_stream)
{
int count = vlc_array_count(hls_stream);
int i_lowest = 0;
uint64_t lowest = 0;
for (int i = 0; i < count; i++)
{
hls_stream_t *hls = (hls_stream_t *) vlc_array_item_at_index(hls_stream, i);
if (lowest == 0)
{
lowest = hls->bandwidth;
i_lowest = i;
}
else if (hls->bandwidth < lowest)
{
lowest = hls->bandwidth;
i_lowest = i;
}
}
return i_lowest;
}
/* Segment */ /* Segment */
static segment_t *segment_New(hls_stream_t* hls, int duration, char *uri) static segment_t *segment_New(hls_stream_t* hls, int duration, char *uri)
{ {
...@@ -1158,7 +1181,7 @@ static int Open(vlc_object_t *p_this) ...@@ -1158,7 +1181,7 @@ static int Open(vlc_object_t *p_this)
} }
/* */ /* */
int current = p_sys->current = 0; int current = p_sys->current = hls_LowestBandwidthStream(p_sys->hls_stream);
p_sys->segment = 0; p_sys->segment = 0;
if (Prefetch(s, &current) != VLC_SUCCESS) if (Prefetch(s, &current) != VLC_SUCCESS)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment