From 1af7ca5f01989565fefe3bbfb4e5a387f0558602 Mon Sep 17 00:00:00 2001 From: Christopher Rosell Date: Thu, 4 Oct 2012 14:11:17 +0200 Subject: Add support for AkamaiHD's HTTP streaming protocol. --- src/livestreamer/packages/flashmedia/util.py | 57 ++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/livestreamer/packages/flashmedia/util.py (limited to 'src/livestreamer/packages/flashmedia/util.py') diff --git a/src/livestreamer/packages/flashmedia/util.py b/src/livestreamer/packages/flashmedia/util.py new file mode 100644 index 0000000..237cf74 --- /dev/null +++ b/src/livestreamer/packages/flashmedia/util.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +from .compat import bytes, is_py2 + +def isstring(val): + if is_py2: + return isinstance(val, str) or isinstance(val, unicode) + else: + return isinstance(val, str) + +def byte(ordinal): + if isstring(ordinal): + ordinal = ord(ordinal) + + return bytes((ordinal,)) + +class flagproperty(object): + def __init__(self, flags, attr, boolean=False): + self.flags = flags + self.attr = attr + self.boolean = boolean + + def __get__(self, obj, cls): + flags = getattr(obj, self.flags) + val = getattr(flags.bit, self.attr) + + if self.boolean: + val = bool(val) + + return val + + def __set__(self, obj, val): + flags = getattr(obj, self.flags) + setattr(flags.bit, self.attr, int(val)) + +def lang_to_iso639(lang): + res = [0, 0, 0] + + for i in reversed(range(3)): + res[i] = chr(0x60 + (lang & 0x1f)) + lang = lang >> 5 + + return "".join(res) + + +def iso639_to_lang(iso639): + res = 0 + + for i in range(3): + c = ord(iso639[i]) - 0x60 + res = res << 5 + res = res | c + + return res + +__all__ = ["byte", "isstring", "flagproperty", "lang_to_iso639", "iso639_to_lang"] + -- cgit v1.2.3