[vlc-commits] stream_filter/httplive.c: Various bandwidth fixes
Hugo Beauzée-Luyssen
git at videolan.org
Wed Jan 18 17:37:42 CET 2012
vlc | branch: master | Hugo Beauzée-Luyssen <chouquette at videolan.org> | Wed Jan 18 17:22:08 2012 +0100| [be906d5275337481ac30469a839a10fa72f39786] | committer: Jean-Paul Saman
stream_filter/httplive.c: Various bandwidth fixes
- Bandwidth is an unsigned int in hls_New(), so initiliaze it to 0 iso -1.
- Do not calculate StreamSIze if bandwidth is not known, yet.
Signed-off-by: Jean-Paul Saman <jean-paul.saman at m2x.nl>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=be906d5275337481ac30469a839a10fa72f39786
---
modules/stream_filter/httplive.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/modules/stream_filter/httplive.c b/modules/stream_filter/httplive.c
index 8038e36..cb660ef 100644
--- a/modules/stream_filter/httplive.c
+++ b/modules/stream_filter/httplive.c
@@ -314,6 +314,12 @@ static uint64_t hls_GetStreamSize(hls_stream_t *hls)
* then the deviation from exact byte size will be big and the seek/
* progressbar will not behave entirely as one expects. */
uint64_t size = 0UL;
+
+ /* If there is no valid bandwidth yet, then there is no point in
+ * computing stream size. */
+ if (hls->bandwidth == 0)
+ return size;
+
int count = vlc_array_count(hls->segments);
for (int n = 0; n < count; n++)
{
@@ -968,7 +974,7 @@ static int parse_M3U8(stream_t *s, vlc_array_t *streams, uint8_t *buffer, const
else
{
/* No Meta playlist used */
- hls = hls_New(streams, 0, -1, NULL);
+ hls = hls_New(streams, 0, 0, NULL);
if (hls)
{
/* Get TARGET-DURATION first */
@@ -2119,6 +2125,8 @@ static uint64_t GetStreamSize(stream_t *s)
if (hls == NULL) return 0;
vlc_mutex_lock(&hls->lock);
+ if (hls->size == 0)
+ hls->size = hls_GetStreamSize(hls);
uint64_t size = hls->size;
vlc_mutex_unlock(&hls->lock);
More information about the vlc-commits
mailing list