vlc | branch: master | Jean-Paul Saman <[email protected]> | Fri Nov 26 15:34:14 2010 +0100| [d20cd47813b732bba92eb3d2663f13aa89108576] | committer: Jean-Paul Saman
stream_filter/httplive.c: select stream with lowest bandwidth to start playback. Start playback with the lowest bandwidth stream. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d20cd47813b732bba92eb3d2663f13aa89108576 --- modules/stream_filter/httplive.c | 25 ++++++++++++++++++++++++- 1 files changed, 24 insertions(+), 1 deletions(-) diff --git a/modules/stream_filter/httplive.c b/modules/stream_filter/httplive.c index 39d9fc2..0ff5ede 100644 --- a/modules/stream_filter/httplive.c +++ b/modules/stream_filter/httplive.c @@ -232,6 +232,29 @@ static hls_stream_t *hls_GetLast(vlc_array_t *hls_stream) 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 */ 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) } /* */ - int current = p_sys->current = 0; + int current = p_sys->current = hls_LowestBandwidthStream(p_sys->hls_stream); p_sys->segment = 0; if (Prefetch(s, ¤t) != VLC_SUCCESS) _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
