SYMBOL INDEX (1007 symbols across 53 files) FILE: dashlivesim/cc_inserter/cc_inserter.py function generate_data (line 51) | def generate_data(scc_data, field=1): class CCInsertFilter (line 96) | class CCInsertFilter(MP4Filter): method __init__ (line 98) | def __init__(self, segmentFile, scc_data, time_scale, tfdt, field): method process_trun (line 109) | def process_trun(self, data): method process_mdat (line 189) | def process_mdat(self, data): method get_scc_data (line 228) | def get_scc_data(self, start_time, end_time): function make_time_stamp (line 238) | def make_time_stamp(tim): function make_duration_from_seconds (line 243) | def make_duration_from_seconds(nr_seconds): function transform_time (line 248) | def transform_time(tim): function transform_time_to_ms (line 265) | def transform_time_to_ms(tim): function convert_time (line 278) | def convert_time(tim): function chunks (line 283) | def chunks(data, num): class CCInserterError (line 289) | class CCInserterError(Exception): function get_segment_range (line 294) | def get_segment_range(rep_data): class CCInserter (line 317) | class CCInserter(object): method __init__ (line 322) | def __init__(self, mpd_filepath, scc_filepath, out_path, max_nr_segmen... method analyze (line 347) | def analyze(self): method init_media (line 353) | def init_media(self): method get_scc_data (line 389) | def get_scc_data(self, start_time, end_time): method check_and_update_media_data (line 397) | def check_and_update_media_data(self): class SCCParser (line 490) | class SCCParser(object): method __init__ (line 493) | def __init__(self, scc_path, timescale): method parse (line 498) | def parse(self): function main (line 514) | def main(): FILE: dashlivesim/cc_inserter/mpdprocessor.py class MpdElementError (line 42) | class MpdElementError(Exception): class MpdElement (line 46) | class MpdElement(object): method __init__ (line 49) | def __init__(self, node): method parse (line 54) | def parse(self): method make_live (line 59) | def make_live(self, data): method tag_and_namespace (line 64) | def tag_and_namespace(self, full_tag): method compare_tag (line 71) | def compare_tag(self, full_tag, string): method check_and_add_attributes (line 76) | def check_and_add_attributes(self, node, attribs): method set_value (line 85) | def set_value(self, element, key, data): class Mpd (line 91) | class Mpd(MpdElement): method __init__ (line 94) | def __init__(self, node): method parse (line 98) | def parse(self): method make_live (line 108) | def make_live(self, data): class Period (line 117) | class Period(MpdElement): method __init__ (line 120) | def __init__(self, node): method parse (line 124) | def parse(self): method make_live (line 133) | def make_live(self, data): class AdaptationSet (line 140) | class AdaptationSet(MpdElement): method __init__ (line 143) | def __init__(self, node): method content_type (line 149) | def content_type(self): method media_pattern (line 154) | def media_pattern(self): method initialization_pattern (line 159) | def initialization_pattern(self): method start_number (line 164) | def start_number(self): method timescale (line 169) | def timescale(self): method duration (line 174) | def duration(self): method parse (line 178) | def parse(self): method make_live (line 190) | def make_live(self, data): class Representation (line 197) | class Representation(MpdElement): method __init__ (line 200) | def __init__(self, adaptation_set, node): method initialization_path (line 205) | def initialization_path(self): method rep_id (line 210) | def rep_id(self): method parse (line 214) | def parse(self): method get_initialization_path (line 218) | def get_initialization_path(self): method get_media_path (line 226) | def get_media_path(self, segNr="%d"): class MpdProcessor (line 236) | class MpdProcessor(MpdElement): method __init__ (line 239) | def __init__(self, infile): method parse (line 250) | def parse(self): method get_adaptation_sets (line 267) | def get_adaptation_sets(self): method getMuxedRep (line 270) | def getMuxedRep(self): method getMuxedInitPath (line 273) | def getMuxedInitPath(self): method getMuxedMediaPath (line 281) | def getMuxedMediaPath(self): method process (line 288) | def process(self, mpdData={}): method makeLiveMpd (line 292) | def makeLiveMpd(self, data): method makeLiveMultiplexedMpd (line 306) | def makeLiveMultiplexedMpd(self, data, mediaData): method makeContentComponent (line 344) | def makeContentComponent(self, contentType, trackID): method getCleanString (line 352) | def getCleanString(self, clean=True, targetMpdNameSpace=None): FILE: dashlivesim/dashlib/bitreader.py class bitreader (line 10) | class bitreader: method __init__ (line 14) | def __init__(self, buffer): method get_bits (line 21) | def get_bits(self, num_bits): method step_bytes (line 49) | def step_bytes(self, bytes): method tell (line 58) | def tell(self): method tell_bits (line 64) | def tell_bits(self): method remaining_bits (line 68) | def remaining_bits(self): function read_bits (line 73) | def read_bits(reader, num_bits, text, display, to_hex=False): function ue (line 87) | def ue(reader): FILE: dashlivesim/dashlib/bitwriter.py class Bitwriter (line 7) | class Bitwriter: method __init__ (line 11) | def __init__(self): method __len__ (line 16) | def __len__(self): method __getitem__ (line 19) | def __getitem__(self, sliced): method add_bits (line 22) | def add_bits(self, data, nr_bits): method add_bytes (line 44) | def add_bytes(self, byte_list): method get_bytes (line 47) | def get_bytes(self): FILE: dashlivesim/dashlib/boxes.py function serialize_u8 (line 22) | def serialize_u8(x): function serialize_u16 (line 28) | def serialize_u16(x): function serialize_u32 (line 34) | def serialize_u32(x): function serialize_u64 (line 40) | def serialize_u64(x): function serialize_name (line 46) | def serialize_name(x): function serialize_string (line 52) | def serialize_string(x): function serialize_bytes (line 58) | def serialize_bytes(x, n): class Sample (line 89) | class Sample: method __init__ (line 91) | def __init__(self, data, time=0, duration=0, sync=True, time_offset=0): method size (line 99) | def size(self): class DataPlaceholder (line 103) | class DataPlaceholder: method __init__ (line 105) | def __init__(self, data_length): method __len__ (line 108) | def __len__(self): class Box (line 112) | class Box: method serialize (line 114) | def serialize(self): class BoxSequence (line 118) | class BoxSequence(Box): method __init__ (line 120) | def __init__(self, *boxes): method size (line 123) | def size(self): method __iter__ (line 126) | def __iter__(self): class BoxContainer (line 131) | class BoxContainer(Box): method __init__ (line 133) | def __init__(self, name, boxes=None): method add_box (line 137) | def add_box(self, box): method size (line 140) | def size(self): method __iter__ (line 143) | def __iter__(self): class FTYPBox (line 151) | class FTYPBox(Box): method __init__ (line 155) | def __init__(self, major_brand, minor_version, brands, styp=False): method __iter__ (line 161) | def __iter__(self): method size (line 169) | def size(self): class MOOVBox (line 173) | class MOOVBox(BoxContainer): method __init__ (line 178) | def __init__(self): class MVHDBox (line 182) | class MVHDBox(Box): method __init__ (line 186) | def __init__(self, timescale, duration, next_track_id): method __iter__ (line 191) | def __iter__(self): method size (line 224) | def size(self): class MVEXBox (line 228) | class MVEXBox(BoxContainer): method __init__ (line 232) | def __init__(self): class TRAKBox (line 236) | class TRAKBox(BoxContainer): method __init__ (line 240) | def __init__(self): class MDIABox (line 244) | class MDIABox(BoxContainer): method __init__ (line 248) | def __init__(self): class MINFBox (line 252) | class MINFBox(BoxContainer): method __init__ (line 256) | def __init__(self): class DINFBox (line 260) | class DINFBox(BoxContainer): method __init__ (line 264) | def __init__(self): class STBLBox (line 268) | class STBLBox(BoxContainer): method __init__ (line 272) | def __init__(self): class TREXBox (line 276) | class TREXBox(Box): method __init__ (line 280) | def __init__(self, track_id): method __iter__ (line 283) | def __iter__(self): method size (line 293) | def size(self): class TKHDBox (line 297) | class TKHDBox(Box): method __init__ (line 301) | def __init__(self, track_id, duration, volume, width, height): method __iter__ (line 308) | def __iter__(self): method size (line 340) | def size(self): class MDHDBox (line 344) | class MDHDBox(Box): method __init__ (line 350) | def __init__(self, timescale, duration, lang): method make_bits_from_lang_char (line 355) | def make_bits_from_lang_char(self, char): method __iter__ (line 362) | def __iter__(self): method size (line 386) | def size(self): class HDLRBox (line 390) | class HDLRBox(Box): method __init__ (line 394) | def __init__(self, handler_type, handler_name): method __iter__ (line 398) | def __iter__(self): method size (line 410) | def size(self): class URLBox (line 414) | class URLBox(Box): method __iter__ (line 415) | def __iter__(self): method size (line 420) | def size(self): class DREFBox (line 424) | class DREFBox(Box): method __init__ (line 428) | def __init__(self): method __iter__ (line 431) | def __iter__(self): method size (line 440) | def size(self): class VMHDBox (line 444) | class VMHDBox(Box): method __iter__ (line 448) | def __iter__(self): method size (line 460) | def size(self): class SMHDBox (line 464) | class SMHDBox(Box): method __iter__ (line 468) | def __iter__(self): method size (line 475) | def size(self): class NMHDBox (line 479) | class NMHDBox(Box): method __iter__ (line 483) | def __iter__(self): method size (line 488) | def size(self): class VisualSampleEntry (line 492) | class VisualSampleEntry(Box): method __init__ (line 494) | def __init__(self, coding, width, height, avcc, pasp): method __iter__ (line 501) | def __iter__(self): method size (line 529) | def size(self): class AudioSampleEntry (line 533) | class AudioSampleEntry(Box): method __init__ (line 535) | def __init__(self, coding, num_channels, sample_size, sample_rate, esds): method __iter__ (line 542) | def __iter__(self): method size (line 560) | def size(self): class WVTTSampleEntryBox (line 564) | class WVTTSampleEntryBox(Box): method __init__ (line 568) | def __init__(self): method __iter__ (line 571) | def __iter__(self): method size (line 579) | def size(self): class WVTTConfigBox (line 583) | class WVTTConfigBox(Box): method __init__ (line 586) | def __init__(self, config_string='WEBVTT'): method __iter__ (line 590) | def __iter__(self): method size (line 595) | def size(self): class VTTCBox (line 599) | class VTTCBox(BoxContainer): method __init__ (line 602) | def __init__(self, boxes=None): class VTTEBox (line 606) | class VTTEBox(Box): method __iter__ (line 609) | def __iter__(self): method size (line 613) | def size(self): class PAYLBox (line 617) | class PAYLBox(Box): method __init__ (line 620) | def __init__(self, cue_text='place_holder'): method __iter__ (line 623) | def __iter__(self): method size (line 628) | def size(self): class STSDBox (line 632) | class STSDBox(Box): method __init__ (line 636) | def __init__(self): method add_box (line 639) | def add_box(self, box): method __iter__ (line 642) | def __iter__(self): method size (line 652) | def size(self): class AVCCBox (line 656) | class AVCCBox(Box): method __init__ (line 660) | def __init__(self, profile_ind, profile_compat, level_ind, sps, pps): method __iter__ (line 667) | def __iter__(self): method size (line 688) | def size(self): class HVCCBox (line 692) | class HVCCBox(Box): method __init__ (line 696) | def __init__(self, hvcc_data, vps, sps, pps): method __iter__ (line 702) | def __iter__(self): method size (line 764) | def size(self): class ESDSBox (line 768) | class ESDSBox(Box): method __init__ (line 772) | def __init__(self, decoder_config): method __iter__ (line 775) | def __iter__(self): method size (line 811) | def size(self): class PASPBox (line 816) | class PASPBox(Box): method __iter__ (line 820) | def __iter__(self): method size (line 827) | def size(self): class STTSBox (line 831) | class STTSBox(Box): method __iter__ (line 835) | def __iter__(self): method size (line 841) | def size(self): class STSCBox (line 845) | class STSCBox(Box): method __iter__ (line 849) | def __iter__(self): method size (line 855) | def size(self): class STSZBox (line 859) | class STSZBox(Box): method __iter__ (line 863) | def __iter__(self): method size (line 870) | def size(self): class STCOBox (line 874) | class STCOBox(Box): method __iter__ (line 878) | def __iter__(self): method size (line 884) | def size(self): class MOOFBox (line 888) | class MOOFBox(BoxContainer): method __init__ (line 892) | def __init__(self): class TRAFBox (line 896) | class TRAFBox(BoxContainer): method __init__ (line 900) | def __init__(self): class TFHDBox (line 904) | class TFHDBox(Box): method __init__ (line 908) | def __init__(self, track_id): method __iter__ (line 911) | def __iter__(self): method size (line 919) | def size(self): class TFDTBox (line 923) | class TFDTBox(Box): method __init__ (line 928) | def __init__(self, decode_time): method __iter__ (line 931) | def __iter__(self): method size (line 939) | def size(self): class TRUNBox (line 943) | class TRUNBox(Box): method __init__ (line 947) | def __init__(self, data_offset): method add_sample (line 952) | def add_sample(self, duration, size, sync, offset): method set_data_offset (line 957) | def set_data_offset(self, data_offset): method __iter__ (line 960) | def __iter__(self): method size (line 997) | def size(self): class MFHDBox (line 1001) | class MFHDBox(Box): method __init__ (line 1005) | def __init__(self, seq_no): method __iter__ (line 1008) | def __iter__(self): method size (line 1014) | def size(self): class MDATBox (line 1018) | class MDATBox(Box): method __init__ (line 1022) | def __init__(self): method add_data (line 1025) | def add_data(self, data): method __iter__ (line 1028) | def __iter__(self): method size (line 1035) | def size(self): class SAIZBox (line 1039) | class SAIZBox(Box): method __init__ (line 1043) | def __init__(self, default_sample_info_size): method add_sample (line 1047) | def add_sample(self, sample_info_size): method __iter__ (line 1050) | def __iter__(self): method size (line 1061) | def size(self): class SAIOBox (line 1066) | class SAIOBox(Box): method __init__ (line 1070) | def __init__(self, offset): method __iter__ (line 1073) | def __iter__(self): method size (line 1080) | def size(self): class SBGPBox (line 1084) | class SBGPBox(Box): method __init__ (line 1088) | def __init__(self): method add_group (line 1091) | def add_group(self, sample_count, group_description_index): method __iter__ (line 1094) | def __iter__(self): method size (line 1104) | def size(self): class SGPDBox (line 1110) | class SGPDBox(Box): method __init__ (line 1114) | def __init__(self, grouping_type): method add_group (line 1118) | def add_group(self, is_encrypted, iv_size, kid): method __iter__ (line 1121) | def __iter__(self): method size (line 1135) | def size(self): class SENCBox (line 1141) | class SENCBox(Box): method __init__ (line 1147) | def __init__(self, iv_size): method add_sample (line 1156) | def add_sample(self, iv, subsamples): method __iter__ (line 1165) | def __iter__(self): method size (line 1180) | def size(self): class SIDXBox (line 1184) | class SIDXBox(Box): method __init__ (line 1188) | def __init__(self, reference_id, timescale, earliest_presentation_time, method add_reference (line 1198) | def add_reference(self, referenced_size, subsegment_duration, method __iter__ (line 1209) | def __iter__(self): method size (line 1234) | def size(self): function create_empty_sidx (line 1238) | def create_empty_sidx(track_id, timescale, no_segments): function create_stsd_h264 (line 1247) | def create_stsd_h264(media_type, width, height, avcc): function create_stsd_hevc (line 1259) | def create_stsd_hevc(media_type, width, height, hvcc): function create_stsd_mp4a (line 1271) | def create_stsd_mp4a(media_type, function create_stsd_ac3 (line 1291) | def create_stsd_ac3(media_type, function create_stsd_mp4s (line 1308) | def create_stsd_mp4s(): function create_minf_box (line 1316) | def create_minf_box(stsd, media_header_box): function create_box_mdia (line 1340) | def create_box_mdia(media_type, function create_box_trak_h264 (line 1365) | def create_box_trak_h264(h264_info): function create_box_trak_hevc (line 1404) | def create_box_trak_hevc(hevc_info): function create_box_trak_mp4a (line 1442) | def create_box_trak_mp4a(mp4a_info): function create_box_trak_ac3 (line 1474) | def create_box_trak_ac3(ac3_info): function create_box_trak_mp4s (line 1513) | def create_box_trak_mp4s(mp4s_info): class MediaInfo (line 1540) | class MediaInfo: method __init__ (line 1542) | def __init__(self, track_id, timescale, duration): class H264Info (line 1548) | class H264Info(MediaInfo): method __init__ (line 1550) | def __init__(self, track_id, timescale, duration, class HVCCData (line 1564) | class HVCCData: method __init__ (line 1566) | def __init__(self): class HEVCInfo (line 1583) | class HEVCInfo(MediaInfo): method __init__ (line 1585) | def __init__(self, track_id, timescale, duration, class MP4AInfo (line 1598) | class MP4AInfo(MediaInfo): method __init__ (line 1600) | def __init__(self, track_id, timescale, duration, class MP4SInfo (line 1612) | class MP4SInfo(MediaInfo): method __init__ (line 1614) | def __init__(self, track_id, timescale, duration, lang='und'): class AC3Info (line 1619) | class AC3Info(MediaInfo): method __init__ (line 1623) | def __init__(self, codec, track_id, timescale, duration, function create_moov_h264 (line 1635) | def create_moov_h264(h264_info): function create_moov_hevc (line 1658) | def create_moov_hevc(hevc_info): function create_moov_mp4a (line 1681) | def create_moov_mp4a(mp4a_info): function create_moov_ac3 (line 1704) | def create_moov_ac3(ac3_info): function create_moov_mp4s (line 1727) | def create_moov_mp4s(info): function create_moof (line 1754) | def create_moof(segment_no, track_id, samples, encryptor=None): function create_mdat (line 1809) | def create_mdat(samples): function create_ftyp (line 1816) | def create_ftyp(): function create_styp (line 1821) | def create_styp(): FILE: dashlivesim/dashlib/chunker.py function decode_fragment (line 38) | def decode_fragment(data, trex): function partition (line 69) | def partition(samples, duration): function encode_chunked (line 83) | def encode_chunked(seqno, track_id, samples, duration): function chunk (line 88) | def chunk(data, duration, trex_box): function simulate_continuous_production (line 107) | def simulate_continuous_production(segment, segment_start, chunk_duratio... FILE: dashlivesim/dashlib/configprocessor.py class ConfigProcessorError (line 50) | class ConfigProcessorError(Exception): function quantize (line 55) | def quantize(number, step): class Config (line 60) | class Config(object): method __init__ (line 64) | def __init__(self, vod_cfg_dir, base_url=None): method __str__ (line 117) | def __str__(self): method update_with_filedata (line 122) | def update_with_filedata(self, url_parts, url_pos): method update_with_reps (line 131) | def update_with_reps(self, vod_cfg, url_parts, url_pos): method update_with_vodcfg (line 142) | def update_with_vodcfg(self, vod_cfg): method update_for_tfdt32 (line 152) | def update_for_tfdt32(self, now_int): method update_for_cont_update (line 159) | def update_for_cont_update(self, now_int): method update_with_modulo_period (line 167) | def update_with_modulo_period(self, modulo_period, seg_dur): method update_with_aet (line 175) | def update_with_aet(self, now_int, availability_end_times, media_prese... method process_start_time (line 190) | def process_start_time(self, start_time, durations, now_int, stop_time): method do_add_location (line 214) | def do_add_location(self): method update_publish_time (line 218) | def update_publish_time(self, now_int): method set_timeoffset (line 227) | def set_timeoffset(self, new_offset): method adjusted_start_number (line 231) | def adjusted_start_number(self): method adjusted_pto (line 238) | def adjusted_pto(self, pto, timescale): method stop_number (line 246) | def stop_number(self): class VodConfig (line 253) | class VodConfig(object): method __init__ (line 256) | def __init__(self): method read_config (line 266) | def read_config(self, config_file): method write_config (line 305) | def write_config(self, config_file, data={}): method content_type_for_rep (line 328) | def content_type_for_rep(self, representation): class ConfigProcessor (line 337) | class ConfigProcessor(object): method __init__ (line 348) | def __init__(self, vod_cfg_dir, base_url): method getconfig (line 352) | def getconfig(self): method get_mpd_data (line 356) | def get_mpd_data(self): method process_url (line 384) | def process_url(self, url_parts, now_int=0): method interpret_start_nr (line 523) | def interpret_start_nr(self, value): FILE: dashlivesim/dashlib/dash_namespace.py function add_ns (line 37) | def add_ns(element): FILE: dashlivesim/dashlib/dash_proxy.py function createProvider (line 87) | def createProvider(host_name, url_parts, args, vod_conf_dir, content_dir... class DashProxyError (line 92) | class DashProxyError(Exception): class DashSegmentNotAvailableError (line 96) | class DashSegmentNotAvailableError(DashProxyError): class DashProvider (line 100) | class DashProvider(object): method __init__ (line 105) | def __init__(self, host_name, url_parts, url_args, vod_conf_dir, conte... function error_response (line 122) | def error_response(dashProv, msg): function get_init (line 129) | def get_init(dashProv): function get_media (line 141) | def get_media(dashProv, chunk=False): function process_init_segment (line 190) | def process_init_segment(dashProv): function process_media_segment (line 210) | def process_media_segment(dashProv, now_float, chunk): function get_trex_data (line 297) | def get_trex_data(dashProv, rel_path): function filter_media_segment (line 307) | def filter_media_segment(dashProv, rep, rel_path, vod_nr, seg_nr, seg_ex... function process_thumbnail (line 326) | def process_thumbnail(dashProv, now_float): FILE: dashlivesim/dashlib/emsg.py class Emsg (line 53) | class Emsg(object): method __init__ (line 56) | def __init__(self, scheme_id_uri="", value="", timescale=1, presentati... method get_box (line 66) | def get_box(self): method get_messagedata (line 82) | def get_messagedata(self): method __str__ (line 86) | def __str__(self): function create_emsg (line 91) | def create_emsg(scheme_id_uri="", value="", timescale=1, presentation_ti... function main (line 98) | def main(): FILE: dashlivesim/dashlib/initsegmentfilter.py class InitFilter (line 36) | class InitFilter(MP4Filter): method __init__ (line 39) | def __init__(self, filename=None, data=None): method process_hdlr (line 47) | def process_hdlr(self, data): method process_tkhd (line 52) | def process_tkhd(self, data): method process_mdhd (line 62) | def process_mdhd(self, data): method process_trex (line 67) | def process_trex(self, data): method track_timescale (line 76) | def track_timescale(self): method handler_type (line 81) | def handler_type(self): method track_id (line 86) | def track_id(self): class InitLiveFilter (line 91) | class InitLiveFilter(MP4Filter): method __init__ (line 96) | def __init__(self, file_name=None, data=None): method process_mvhd (line 102) | def process_mvhd(self, data): method process_tkhd (line 118) | def process_tkhd(self, data): method process_mdhd (line 132) | def process_mdhd(self, data): FILE: dashlivesim/dashlib/mediasegmentfilter.py class MediaSegmentFilterError (line 43) | class MediaSegmentFilterError(Exception): class MediaSegmentFilter (line 47) | class MediaSegmentFilter(MP4Filter): method __init__ (line 53) | def __init__(self, file_name, seg_nr=None, seg_duration=1, offset=0, l... method finalize (line 79) | def finalize(self): method process_styp (line 107) | def process_styp(self, data): method process_tfhd (line 130) | def process_tfhd(self, data): method process_mfhd (line 158) | def process_mfhd(self, data): method process_trun (line 165) | def process_trun(self, data): method process_saio (line 206) | def process_saio(self, data): method process_sidx (line 234) | def process_sidx(self, data): method create_sidx (line 264) | def create_sidx(self, seg_size): method process_tfdt_to_64bit (line 281) | def process_tfdt_to_64bit(self, data, output): method process_tfdt (line 302) | def process_tfdt(self, data): method get_tfdt_value (line 334) | def get_tfdt_value(self): method get_duration (line 338) | def get_duration(self): method create_scte35box (line 342) | def create_scte35box(self): method find_and_process_mdat (line 386) | def find_and_process_mdat(self, data): method update_ttml_mdat (line 400) | def update_ttml_mdat(self, data): method create_emsg (line 408) | def create_emsg(self): FILE: dashlivesim/dashlib/moduloperiod.py function quantize (line 45) | def quantize(number, step): class ModuloPeriod (line 50) | class ModuloPeriod(object): method __init__ (line 53) | def __init__(self, modulo_minutes, now): method availability_start_time (line 64) | def availability_start_time(self): method minimum_update_period (line 69) | def minimum_update_period(self): method media_presentation_duration (line 74) | def media_presentation_duration(self): method availability_end_time (line 79) | def availability_end_time(self): method calc_percent (line 83) | def calc_percent(self): method calc_availability_start_time (line 88) | def calc_availability_start_time(self): method calc_media_pres_dur (line 95) | def calc_media_pres_dur(self): method get_start_number (line 109) | def get_start_number(self, segment_duration): method compare_with_last_segment (line 113) | def compare_with_last_segment(self, segment_number, segment_duration): method calc_last_segment_number (line 121) | def calc_last_segment_number(self, segment_duration): FILE: dashlivesim/dashlib/mp4.py function parse_generator (line 84) | def parse_generator(data): function fomrated_parse_generator (line 94) | def fomrated_parse_generator(data, fmt=''): function match_attribute (line 103) | def match_attribute(obj, crit): function match_box (line 110) | def match_box(obj, criteria='xxxx'): class box (line 120) | class box: method __init__ (line 121) | def __init__(self, fmap, box_type, size, offset, parent=None): method endpos (line 130) | def endpos(self): method childpos (line 134) | def childpos(self): method raw_data (line 138) | def raw_data(self): method is_container (line 143) | def is_container(self): method is_unparsed (line 147) | def is_unparsed(self): method root (line 151) | def root(self): method path (line 158) | def path(self): method find_all (line 169) | def find_all(self, path): method find (line 172) | def find(self, path, return_first=True): method parse_children (line 222) | def parse_children(self, stops=None, recurse=True): method __str__ (line 276) | def __str__(self): class full_box (line 282) | class full_box(box): method __init__ (line 283) | def __init__(self, *args): class bridged_box (line 299) | class bridged_box: method __init__ (line 300) | def __init__(self, start, end): class mp4 (line 311) | class mp4(box): method __init__ (line 312) | def __init__(self, method get_video_info (line 332) | def get_video_info(self): method get_audio_info (line 340) | def get_audio_info(self): method get_timed_text_info (line 348) | def get_timed_text_info(self): method childpos (line 357) | def childpos(self): class moov_box (line 361) | class moov_box(box): method __init__ (line 362) | def __init__(self, fmap, box_type, size, offset, parent=None): class mvhd_box (line 366) | class mvhd_box(full_box): method __init__ (line 367) | def __init__(self, *args): class pssh_box (line 377) | class pssh_box(full_box): method __init__ (line 378) | def __init__(self, *args): method childpos (line 400) | def childpos(self): class saiz_box (line 404) | class saiz_box(full_box): method __init__ (line 405) | def __init__(self, *args): method default_sample_info_size (line 409) | def default_sample_info_size(self): method sample_count (line 418) | def sample_count(self): method sample_info_size (line 426) | def sample_info_size(self, index): class saio_box (line 440) | class saio_box(full_box): method __init__ (line 441) | def __init__(self, *args): method entry_count (line 445) | def entry_count(self): method entry_offset (line 453) | def entry_offset(self, index): class sbgp_box (line 466) | class sbgp_box(full_box): method __init__ (line 467) | def __init__(self, *args): method grouping_type (line 471) | def grouping_type(self): method entries (line 475) | def entries(self): method group_entry (line 479) | def group_entry(self, index): class sgpd_box (line 493) | class sgpd_box(full_box): method __init__ (line 494) | def __init__(self, *args): method grouping_type (line 498) | def grouping_type(self): method entries (line 502) | def entries(self): method entry (line 507) | def entry(self, index): method entry_data (line 523) | def entry_data(self, index): class senc_box (line 533) | class senc_box(full_box): method __init__ (line 534) | def __init__(self, *args): class genc_box (line 547) | class genc_box(full_box): method __init__ (line 548) | def __init__(self, *args): method _init_sample_map_from_sbgp (line 552) | def _init_sample_map_from_sbgp(self, tenc): method _init_sample_map (line 576) | def _init_sample_map(self): method sample_encrypted_info (line 598) | def sample_encrypted_info(self, index): method get_sibling (line 605) | def get_sibling(self, type_): method get_ancestor (line 612) | def get_ancestor(self, type_): method get_tenc_for_track_id (line 620) | def get_tenc_for_track_id(self, track_id): class SampleEntry (line 629) | class SampleEntry(box): method __init__ (line 630) | def __init__(self, *args): method data_reference_index (line 634) | def data_reference_index(self): function getDescriptorLen (line 639) | def getDescriptorLen(i): class esds_box (line 651) | class esds_box(box): method __init__ (line 652) | def __init__(self, *args): class mp4a_box (line 701) | class mp4a_box(SampleEntry): method __init__ (line 702) | def __init__(self, *args): method childpos (line 712) | def childpos(self): class ac_3_box (line 716) | class ac_3_box(SampleEntry): method __init__ (line 717) | def __init__(self, *args): method childpos (line 727) | def childpos(self): class ec_3_box (line 731) | class ec_3_box(SampleEntry): method __init__ (line 732) | def __init__(self, *args): method childpos (line 742) | def childpos(self): class dac3_box (line 746) | class dac3_box(SampleEntry): method __init__ (line 747) | def __init__(self, *args): class dec3_box (line 773) | class dec3_box(SampleEntry): method __init__ (line 774) | def __init__(self, *args): class enca_box (line 815) | class enca_box(mp4a_box): method __init__ (line 816) | def __init__(self, *args): class mp4v_box (line 820) | class mp4v_box(SampleEntry): method __init__ (line 821) | def __init__(self, *args): class avcx_box (line 829) | class avcx_box(SampleEntry): method __init__ (line 830) | def __init__(self, *args): method childpos (line 848) | def childpos(self): class avc1_box (line 852) | class avc1_box(avcx_box): method __init__ (line 853) | def __init__(self, *args): class avc3_box (line 857) | class avc3_box(avcx_box): method __init__ (line 858) | def __init__(self, *args): class hev1_box (line 862) | class hev1_box(avcx_box): method __init__ (line 863) | def __init__(self, *args): class hvc1_box (line 867) | class hvc1_box(avcx_box): method __init__ (line 868) | def __init__(self, *args): class encv_box (line 872) | class encv_box(avc1_box): method __init__ (line 873) | def __init__(self, *args): class avcC_box (line 879) | class avcC_box(box): method __init__ (line 882) | def __init__(self, *args): function read_hex (line 925) | def read_hex(reader, bytes): class hvcC_box (line 933) | class hvcC_box(box): method __init__ (line 934) | def __init__(self, *args): class stsd_box (line 997) | class stsd_box(full_box): method __init__ (line 998) | def __init__(self, *args): method entry_count (line 1002) | def entry_count(self): method childpos (line 1007) | def childpos(self): class sinf_box (line 1011) | class sinf_box(box): method __init__ (line 1012) | def __init__(self, *args): class frma_box (line 1016) | class frma_box(box): method __init__ (line 1017) | def __init__(self, *args): class schm_box (line 1021) | class schm_box(full_box): method __init__ (line 1022) | def __init__(self, *args): class schi_box (line 1031) | class schi_box(box): method __init__ (line 1032) | def __init__(self, *args): class tenc_box (line 1036) | class tenc_box(full_box): method __init__ (line 1037) | def __init__(self, *args): method is_encrypted (line 1041) | def is_encrypted(self): method iv_size (line 1046) | def iv_size(self): method key_id (line 1051) | def key_id(self): class tkhd_box (line 1055) | class tkhd_box(full_box): method __init__ (line 1056) | def __init__(self, *args): method track_id (line 1075) | def track_id(self): class mdhd_box (line 1079) | class mdhd_box(full_box): method __init__ (line 1080) | def __init__(self, *args): class hdlr_box (line 1096) | class hdlr_box(full_box): method __init__ (line 1097) | def __init__(self, *args): class moof_box (line 1119) | class moof_box(box): method __init__ (line 1120) | def __init__(self, fmap, box_type, size, offset, parent=None): method get_mdat (line 1123) | def get_mdat(self): class trex_box (line 1135) | class trex_box(full_box): method __init__ (line 1136) | def __init__(self, *args): class mfhd_box (line 1146) | class mfhd_box(box): method __init__ (line 1147) | def __init__(self, *args): method get_track_duration (line 1152) | def get_track_duration(self, track_id, timescale): method video_duration (line 1159) | def video_duration(self): method audio_duration (line 1164) | def audio_duration(self): method get_track_sample_count (line 1168) | def get_track_sample_count(self, track_id): method video_sample_count (line 1174) | def video_sample_count(self): method audio_sample_count (line 1179) | def audio_sample_count(self): class tfhd_box (line 1184) | class tfhd_box(full_box): method __init__ (line 1185) | def __init__(self, *args): method track_id (line 1233) | def track_id(self): class trun_box (line 1238) | class trun_box(full_box): method __init__ (line 1239) | def __init__(self, *args): method get_durations (line 1294) | def get_durations(self, default_sample_duration): method sample_count (line 1363) | def sample_count(self): method sample_entry (line 1367) | def sample_entry(self, i): class tfra_box (line 1392) | class tfra_box(full_box): method __init__ (line 1393) | def __init__(self, *args): method track_id (line 1399) | def track_id(self): method length_size_of_traf_num (line 1404) | def length_size_of_traf_num(self): method length_size_of_trun_num (line 1410) | def length_size_of_trun_num(self): method length_size_of_sample_num (line 1416) | def length_size_of_sample_num(self): method number_of_entry (line 1422) | def number_of_entry(self): method end_time (line 1427) | def end_time(self): method entry (line 1436) | def entry(self, index): method parse_random_access_table (line 1457) | def parse_random_access_table(self): method time_for_fragment (line 1476) | def time_for_fragment(self, fragment): method moof_offset_for_fragment (line 1485) | def moof_offset_for_fragment(self, fragment): method moof_offset_for_time (line 1500) | def moof_offset_for_time(self, seek_time): method time_for_moof_offset (line 1509) | def time_for_moof_offset(self, offset): method fragment_count (line 1517) | def fragment_count(self): class mfro_box (line 1524) | class mfro_box(full_box): method __init__ (line 1525) | def __init__(self, *args): class stbl_box (line 1535) | class stbl_box(box): method __init__ (line 1536) | def __init__(self, *args): class stts_box (line 1545) | class stts_box(full_box): method __init__ (line 1546) | def __init__(self, *args): method sample_time_and_duration (line 1575) | def sample_time_and_duration(self, sample_number): class ctts_box (line 1603) | class ctts_box(full_box): method __init__ (line 1604) | def __init__(self, *args): method sample_offset (line 1630) | def sample_offset(self, sample_number): class stss_box (line 1646) | class stss_box(full_box): method __init__ (line 1647) | def __init__(self, *args): method has_index (line 1657) | def has_index(self, index): class stsz_box (line 1661) | class stsz_box(full_box): method __init__ (line 1662) | def __init__(self, *args): method sample_size_and_offset (line 1689) | def sample_size_and_offset(self, sample_number, index_in_chunk, class stsc_box (line 1709) | class stsc_box(full_box): method __init__ (line 1711) | def __init__(self, *args): method chunk_and_index (line 1738) | def chunk_and_index(self, sample_number): class stco_box (line 1759) | class stco_box(full_box): method __init__ (line 1760) | def __init__(self, *args): method chunk_offset (line 1770) | def chunk_offset(self, chunk): class co64_box (line 1777) | class co64_box(full_box): method __init__ (line 1778) | def __init__(self, *args): method chunk_offset (line 1788) | def chunk_offset(self, chunk): class ftyp_box (line 1795) | class ftyp_box(box): method __init__ (line 1796) | def __init__(self, *args): class styp_box (line 1813) | class styp_box(box): method __init__ (line 1814) | def __init__(self, *args): class tfma_box (line 1831) | class tfma_box(full_box): method __init__ (line 1832) | def __init__(self, *args): class tfad_box (line 1852) | class tfad_box(box): method __init__ (line 1853) | def __init__(self, *args): class sidx_box (line 1857) | class sidx_box(full_box): method __init__ (line 1858) | def __init__(self, *args): class udta_box (line 1896) | class udta_box(box): method __init__ (line 1897) | def __init__(self, *args): class meta_box (line 1901) | class meta_box(box): method __init__ (line 1902) | def __init__(self, *args): class tfdt_box (line 1906) | class tfdt_box(full_box): method __init__ (line 1907) | def __init__(self, *args): class afra_box (line 1916) | class afra_box(full_box): method __init__ (line 1917) | def __init__(self, *args): class asrt_box (line 1954) | class asrt_box(full_box): method __init__ (line 1955) | def __init__(self, *args): class afrt_box (line 1974) | class afrt_box(full_box): method __init__ (line 1975) | def __init__(self, *args): function read_string (line 2019) | def read_string(parser): class abst_box (line 2028) | class abst_box(full_box): method __init__ (line 2029) | def __init__(self, *args): class mdat_box (line 2098) | class mdat_box(box): method __init__ (line 2099) | def __init__(self, *args): class payl_box (line 2103) | class payl_box(box): method __init__ (line 2104) | def __init__(self, *args): class tfxd_box (line 2109) | class tfxd_box: method __init__ (line 2110) | def __init__(self, data, version, flags): class tfrf_box (line 2122) | class tfrf_box: method __init__ (line 2123) | def __init__(self, data, version, flags): class sampleEncryption_box (line 2140) | class sampleEncryption_box: method __init__ (line 2141) | def __init__(self, data, version, flags, iv_size=8): class trackEncryption_box (line 2148) | class trackEncryption_box: method __init__ (line 2149) | def __init__(self, data, version, flags): class pssh_uuid_box (line 2155) | class pssh_uuid_box: method __init__ (line 2156) | def __init__(self, data, version, flags): class uuid_box (line 2169) | class uuid_box(full_box): method __init__ (line 2170) | def __init__(self, *args): class sdtp_box (line 2174) | class sdtp_box(full_box): method __init__ (line 2175) | def __init__(self, *args): method lead (line 2178) | def lead(self, il): method depends (line 2188) | def depends(self, v): method dependend (line 2198) | def dependend(self, v): method redundancy (line 2208) | def redundancy(self, v): class emsg_box (line 2219) | class emsg_box(full_box): method __init__ (line 2220) | def __init__(self, *args): method message (line 2255) | def message(self): FILE: dashlivesim/dashlib/mp4filter.py class MP4FilterError (line 38) | class MP4FilterError(BaseException): class MP4Filter (line 42) | class MP4Filter(object): method __init__ (line 49) | def __init__(self, filename=None, data=None): method check_box (line 65) | def check_box(self, data): method filter (line 71) | def filter(self): method filter_box (line 96) | def filter_box(self, boxtype, data, file_pos, path=b""): method finalize (line 129) | def finalize(self): FILE: dashlivesim/dashlib/mpd_proxy.py function get_mpd (line 10) | def get_mpd(dashProv): function generate_dynamic_mpd (line 62) | def generate_dynamic_mpd(dashProv, mpd_filename, in_data, now): function generate_response_with_xlink (line 118) | def generate_response_with_xlink(response, cfg, filename, nr_periods_per... function generate_period_data (line 199) | def generate_period_data(mpd_data, now, cfg): function insert_asset_identifier (line 294) | def insert_asset_identifier(response, start_pos_period): FILE: dashlivesim/dashlib/mpdprocessor.py function set_value_from_dict (line 50) | def set_value_from_dict(element, key, data): function set_values_from_dict (line 56) | def set_values_from_dict(element, keys, data): class MpdModifierError (line 63) | class MpdModifierError(Exception): class MpdProcessor (line 68) | class MpdProcessor(object): method __init__ (line 72) | def __init__(self, infile, mpd_proc_cfg, cfg=None, full_url=None): method process (line 88) | def process(self, mpd_data, period_data, ll_data={}): method process_mpd (line 96) | def process_mpd(self, mpd, mpd_data): method process_mpd_children (line 137) | def process_mpd_children(self, mpd, data, period_data, ll_data): method insert_baseurl (line 211) | def insert_baseurl(self, mpd, pos, new_baseurl, new_ato, new_atc): method modify_baseurl (line 224) | def modify_baseurl(self, baseurl_elem, new_baseurl): method insert_ato (line 228) | def insert_ato(self, baseurl_elem, new_ato): method insert_location (line 232) | def insert_location(self, mpd, pos, location_url): method insert_service_description (line 238) | def insert_service_description(self, mpd, pos): method insert_producer_reference (line 257) | def insert_producer_reference(self, ad_set, pos): method update_periods (line 270) | def update_periods(self, mpd, period_data, offset_at_period_level, ll_... method create_descriptor_elem (line 409) | def create_descriptor_elem(self, name, scheme_id_uri, value=None, elem... method insert_utc_timings (line 424) | def insert_utc_timings(self, mpd, start_pos): method get_full_xml (line 455) | def get_full_xml(self, clean=True): FILE: dashlivesim/dashlib/scte35.py function make_xml_bool (line 44) | def make_xml_bool(value): class Scte35Error (line 49) | class Scte35Error(Exception): function create_scte35_insert_message (line 53) | def create_scte35_insert_message(pts_adjustment, tier, splice_event_id, ... class Scte35Emsg (line 86) | class Scte35Emsg(emsg.Emsg): method __init__ (line 89) | def __init__(self, timescale, presentation_time_offset, presentation_t... function create_scte35_emsg (line 113) | def create_scte35_emsg(timescale, presentation_time_offset, presentation... FILE: dashlivesim/dashlib/segmentmuxer.py class InitSegmentStructure (line 37) | class InitSegmentStructure(MP4Filter): method __init__ (line 42) | def __init__(self, filename=None, data=None): method process_ftyp (line 51) | def process_ftyp(self, data): method process_mvhd (line 56) | def process_mvhd(self, data): method process_trex (line 61) | def process_trex(self, data): method process_trak (line 66) | def process_trak(self, data): method ftyp (line 72) | def ftyp(self): method trak (line 77) | def trak(self): method mvhd (line 82) | def mvhd(self): method trex (line 87) | def trex(self): class MultiplexInits (line 92) | class MultiplexInits(object): method __init__ (line 96) | def __init__(self, filename1=None, filename2=None, data1=None, data2=N... method construct_muxed (line 102) | def construct_muxed(self): class MediaSegmentStructure (line 123) | class MediaSegmentStructure(MP4Filter): method __init__ (line 127) | def __init__(self, filename=None, data=None): method parse_trun (line 139) | def parse_trun(self, data, pos): method filter_box (line 147) | def filter_box(self, boxtype, data, file_pos, path=b""): class MultiplexMediaSegments (line 179) | class MultiplexMediaSegments(object): method __init__ (line 184) | def __init__(self, filename1=None, filename2=None, data1=None, data2=N... method mux_on_fragment_level (line 190) | def mux_on_fragment_level(self): method mux_on_sample_level (line 200) | def mux_on_sample_level(self): FILE: dashlivesim/dashlib/segtimeline.py class SegmentTimeLineGeneratorError (line 41) | class SegmentTimeLineGeneratorError(Exception): class SegmentTimeLineGenerator (line 46) | class SegmentTimeLineGenerator(object): method __init__ (line 49) | def __init__(self, media_data, cfg): method create_segtimeline (line 70) | def create_segtimeline(self, start_time, end_time, use_closest=False): method get_seg_starttime (line 147) | def get_seg_starttime(self, nr_wraps, index, repeats): method get_seg_number (line 152) | def get_seg_number(self, nr_wraps, index, repeats): method get_seg_endtime (line 158) | def get_seg_endtime(self, nr_wraps, index, repeats): method find_latest_starting_before (line 163) | def find_latest_starting_before(self, act_time): method find_closest_start (line 177) | def find_closest_start(self, act_time): method find_closest_end (line 201) | def find_closest_end(self, act_time): method generate_s_elem (line 225) | def generate_s_elem(self, start_time, duration, repeat): FILE: dashlivesim/dashlib/sessionid.py function generate_session_id (line 8) | def generate_session_id(): FILE: dashlivesim/dashlib/stpp_generator/make_stpp_segments.py class SegmentCreator (line 59) | class SegmentCreator(object): method __init__ (line 61) | def __init__(self, number_of_segments, segment_duration, resolution, s... method create_segments (line 72) | def create_segments(self): method create_time_string (line 123) | def create_time_string(self, time_ms): function main (line 131) | def main(): FILE: dashlivesim/dashlib/stpp_generator/stpp_creator.py class StppSegmentCreatorError (line 111) | class StppSegmentCreatorError(Exception): class StppMediaFilter (line 115) | class StppMediaFilter(MP4Filter): method __init__ (line 118) | def __init__(self, track_id, sequence_nr, sample_duration, tfdt_time, ... method process_sidx (line 129) | def process_sidx(self, data): method process_mfhd (line 133) | def process_mfhd(self, data): method process_tfhd (line 137) | def process_tfhd(self, data): method process_tfdt (line 147) | def process_tfdt(self, data): method process_mdat (line 155) | def process_mdat(self, data): class StppInitFilter (line 161) | class StppInitFilter(MP4Filter): method __init__ (line 164) | def __init__(self, lang="eng", track_id=TRACK_ID, timescale=TIMESCALE,... method process_mvhd (line 176) | def process_mvhd(self, data): method process_tkhd (line 184) | def process_tkhd(self, data): method process_mdhd (line 211) | def process_mdhd(self, data): method process_hdlr (line 225) | def process_hdlr(self, data): method _insert_timing_data (line 237) | def _insert_timing_data(self, data): function create_media_segment (line 260) | def create_media_segment(track_id, sequence_nr, sample_duration, tfdt_ti... function create_init_segment (line 266) | def create_init_segment(lang="eng", track_id=TRACK_ID, timescale=TIMESCA... FILE: dashlivesim/dashlib/structops.py function str_to_uint32 (line 35) | def str_to_uint32(string4): function str_to_sint32 (line 40) | def str_to_sint32(string4): function str_to_uint64 (line 45) | def str_to_uint64(string8): function uint32_to_str (line 50) | def uint32_to_str(uint32): function sint32_to_str (line 55) | def sint32_to_str(sint32): function uint64_to_str (line 60) | def uint64_to_str(uint64): FILE: dashlivesim/dashlib/timeformatconversions.py class TimeFormatConversionError (line 38) | class TimeFormatConversionError(Exception): function iso_duration_to_seconds (line 42) | def iso_duration_to_seconds(duration): function seconds_to_iso_duration (line 57) | def seconds_to_iso_duration(nr_secs): function make_timestamp (line 75) | def make_timestamp(time_in_s): FILE: dashlivesim/dashlib/ttml_timing_offset.py function adjust_ttml_content (line 40) | def adjust_ttml_content(xml_str, offset_in_s, output_seg_nr): FILE: dashlivesim/mod_wsgi/mod_dashlivesim.py function start_reply (line 58) | def start_reply(status_code, response, length=-1, headers={}): function full_reply (line 82) | def full_reply(status_code, response, body=b"", headers={}): function application (line 89) | def application(environment, start_response): function get_mime_type (line 230) | def get_mime_type(ext): function handle_byte_range (line 242) | def handle_byte_range(payload, range_line): function main (line 274) | def main(): FILE: dashlivesim/tests/dash_test_util.py function rm_outfile (line 40) | def rm_outfile(filename): function write_data_to_outfile (line 47) | def write_data_to_outfile(data, filename): function findAllIndexes (line 56) | def findAllIndexes(needle, haystack): FILE: dashlivesim/tests/test_adinsertion.py class TestXlinkPeriod (line 38) | class TestXlinkPeriod(unittest.TestCase): method setUp (line 40) | def setUp(self): method tearDown (line 44) | def tearDown(self): method testMpdPeriodReplaced (line 47) | def testMpdPeriodReplaced(self): FILE: dashlivesim/tests/test_availabilitytimeoffset.py function isMediaSegment (line 37) | def isMediaSegment(data): class TestMPDwithATO (line 42) | class TestMPDwithATO(unittest.TestCase): method setUp (line 45) | def setUp(self): method tearDown (line 49) | def tearDown(self): method testMpdGeneration (line 52) | def testMpdGeneration(self): method testMpdGenerationHttps (line 62) | def testMpdGenerationHttps(self): method testMpdGenerationInf (line 70) | def testMpdGenerationInf(self): method testMpdAtoSettings (line 77) | def testMpdAtoSettings(self): method testCheckAvailabilityTime (line 86) | def testCheckAvailabilityTime(self): method testCheckAvailabilityTimeFractional (line 96) | def testCheckAvailabilityTimeFractional(self): method testCheckAvailabilityTimeInf (line 106) | def testCheckAvailabilityTimeInf(self): method testCheckAvailabilityTimeErrorMsg (line 116) | def testCheckAvailabilityTimeErrorMsg(self): FILE: dashlivesim/tests/test_cenc.py class TestSaioUpdate (line 37) | class TestSaioUpdate(unittest.TestCase): method testSaioInput (line 40) | def testSaioInput(self): method testSaioChanged (line 48) | def testSaioChanged(self): FILE: dashlivesim/tests/test_configprocessor.py class TestConfigProcessor (line 37) | class TestConfigProcessor(unittest.TestCase): method testReadVodConfigFile (line 39) | def testReadVodConfigFile(self): FILE: dashlivesim/tests/test_dash_proxy.py class TestMPDProcessing (line 40) | class TestMPDProcessing(unittest.TestCase): method setUp (line 43) | def setUp(self): method tearDown (line 47) | def tearDown(self): method testMPDhandling (line 50) | def testMPDhandling(self): method testMPDwithChangedAST (line 57) | def testMPDwithChangedAST(self): method testMPDwithStartandDur (line 69) | def testMPDwithStartandDur(self): method testMPDwithStartand2Durations (line 77) | def testMPDwithStartand2Durations(self): method testHttpsBaseURL (line 90) | def testHttpsBaseURL(self): method test_location_for_rel_times (line 100) | def test_location_for_rel_times(self): method test_location_for_rel_times_zero_offset (line 115) | def test_location_for_rel_times_zero_offset(self): method test_absolute_times (line 131) | def test_absolute_times(self): method test_absolute_times_after_stop (line 146) | def test_absolute_times_after_stop(self): class TestInitSegmentProcessing (line 160) | class TestInitSegmentProcessing(unittest.TestCase): method testInit (line 161) | def testInit(self): class TestMediaSegments (line 168) | class TestMediaSegments(unittest.TestCase): method testMediaSegmentForTfdt32 (line 170) | def testMediaSegmentForTfdt32(self): method testMediaSegmentTooEarly (line 181) | def testMediaSegmentTooEarly(self): method testMediaSegmentTooEarlyWithAST (line 187) | def testMediaSegmentTooEarlyWithAST(self): method testMediaSegmentBeforeTimeShiftBufferDepth (line 196) | def testMediaSegmentBeforeTimeShiftBufferDepth(self): method testLastMediaSegment (line 204) | def testLastMediaSegment(self): method testMultiPeriod (line 214) | def testMultiPeriod(self): method testContinuous (line 224) | def testContinuous(self): method testUtcTiming (line 234) | def testUtcTiming(self): method testMediaSegmentInIntervalWithoutOffset (line 244) | def testMediaSegmentInIntervalWithoutOffset(self): method testMediaSegmentInIntervalWithOffset (line 253) | def testMediaSegmentInIntervalWithOffset(self): method testMediaSegmentWithSidx (line 262) | def testMediaSegmentWithSidx(self): method testMediaIntervalWithOffset (line 272) | def testMediaIntervalWithOffset(self): class TestMorePathLevels (line 291) | class TestMorePathLevels(unittest.TestCase): method setUp (line 294) | def setUp(self): method tearDown (line 298) | def tearDown(self): method testMPDGet (line 301) | def testMPDGet(self): method testInit (line 308) | def testInit(self): method testMediaSegment (line 314) | def testMediaSegment(self): class TestTfdt (line 325) | class TestTfdt(unittest.TestCase): method testMediaSegment (line 328) | def testMediaSegment(self): method testTfdtValueFromZero (line 338) | def testTfdtValueFromZero(self): method testThatNoPresentationTimeOffsetForTfdt32 (line 358) | def testThatNoPresentationTimeOffsetForTfdt32(self): class TestInitMux (line 367) | class TestInitMux(unittest.TestCase): method testInitMux (line 369) | def testInitMux(self): method testMediaMux (line 378) | def testMediaMux(self): class TestScte35Manifest (line 389) | class TestScte35Manifest(unittest.TestCase): method setUp (line 391) | def setUp(self): method test_scte35_profile_presence (line 397) | def test_scte35_profile_presence(self): method test_inband_stream_signal (line 400) | def test_inband_stream_signal(self): class TestScte35Segments (line 404) | class TestScte35Segments(unittest.TestCase): method testScte35Event (line 406) | def testScte35Event(self): method testNoScte35Event (line 419) | def testNoScte35Event(self): FILE: dashlivesim/tests/test_earlyterminatedperiod.py class TestXlinkPeriod (line 38) | class TestXlinkPeriod(unittest.TestCase): method setUp (line 40) | def setUp(self): method tearDown (line 44) | def tearDown(self): method testMpdPeriodReplaced (line 47) | def testMpdPeriodReplaced(self): FILE: dashlivesim/tests/test_initsegmentfilter.py class TestInitParsing (line 37) | class TestInitParsing(unittest.TestCase): method setUp (line 39) | def setUp(self): method testTrackTimeScale (line 44) | def testTrackTimeScale(self): method testTrackHdlrType (line 47) | def testTrackHdlrType(self): FILE: dashlivesim/tests/test_lowlatency.py class TestLowLatencyMPD (line 8) | class TestLowLatencyMPD(unittest.TestCase): method setUp (line 11) | def setUp(self): method tearDown (line 15) | def tearDown(self): method testCorrectFieldsInMPD (line 18) | def testCorrectFieldsInMPD(self): FILE: dashlivesim/tests/test_moduloperiod.py class TestModuloCalculations (line 34) | class TestModuloCalculations(unittest.TestCase): method testMiddlePeriod (line 36) | def testMiddlePeriod(self): method testEndOfMediaInPeriod (line 43) | def testEndOfMediaInPeriod(self): method testFuturePeriod (line 51) | def testFuturePeriod(self): FILE: dashlivesim/tests/test_mpdcallback.py class TestXlinkPeriod (line 38) | class TestXlinkPeriod(unittest.TestCase): method setUp (line 40) | def setUp(self): method tearDown (line 44) | def tearDown(self): method testMpdPeriodReplaced (line 47) | def testMpdPeriodReplaced(self): FILE: dashlivesim/tests/test_mpdprocessor.py class FakeConfig (line 39) | class FakeConfig(object): method __init__ (line 41) | def __init__(self): class TestMpdProcessor (line 45) | class TestMpdProcessor(unittest.TestCase): method setUp (line 48) | def setUp(self): method test_mpd_in_out (line 54) | def test_mpd_in_out(self): method test_utc_timing_head (line 62) | def test_utc_timing_head(self): method test_utc_timing_direct_and_head (line 72) | def test_utc_timing_direct_and_head(self): FILE: dashlivesim/tests/test_multi_baseurl.py function isMediaSegment (line 10) | def isMediaSegment(data): class TestMultipleBaseUrls (line 15) | class TestMultipleBaseUrls(unittest.TestCase): method setUp (line 18) | def setUp(self): method tearDown (line 22) | def tearDown(self): method testMpdGeneration (line 25) | def testMpdGeneration(self): method testMpdGenerationHttps (line 39) | def testMpdGenerationHttps(self): method testCheckUpAndDownDependingOnTime (line 47) | def testCheckUpAndDownDependingOnTime(self): method testCheckDowAndUpDependingOnTime (line 54) | def testCheckDowAndUpDependingOnTime(self): method testCheckDowAndUpDependingOnTime30sPeriod (line 61) | def testCheckDowAndUpDependingOnTime30sPeriod(self): method testCheckUpAndDownDependingOnTime30sPeriod (line 69) | def testCheckUpAndDownDependingOnTime30sPeriod(self): method testOtherOrderOfOptions (line 77) | def testOtherOrderOfOptions(self): FILE: dashlivesim/tests/test_scte35.py class TestScte35 (line 49) | class TestScte35(unittest.TestCase): method testScte35MessageData (line 51) | def testScte35MessageData(self): method testScteCancelMessage (line 70) | def testScteCancelMessage(self): class TestEmsgMessage (line 90) | class TestEmsgMessage(unittest.TestCase): method testEmsgMessage (line 92) | def testEmsgMessage(self): method testNonAllowedTimescale (line 103) | def testNonAllowedTimescale(self): FILE: dashlivesim/tests/test_segment_duration_ms.py class TestConfigProcessor (line 37) | class TestConfigProcessor(unittest.TestCase): method testReadVodConfigFile (line 39) | def testReadVodConfigFile(self): FILE: dashlivesim/tests/test_segmentloss_mainlive.py function isEmsgPresentInSegment (line 38) | def isEmsgPresentInSegment(data): class TestSegTimelineLossMainLive (line 43) | class TestSegTimelineLossMainLive(unittest.TestCase): method testNoInbandStreamElemInMPD (line 52) | def testNoInbandStreamElemInMPD(self): method testInbandStreamElemInMPD (line 59) | def testInbandStreamElemInMPD(self): method testNoEmsgInSegment (line 66) | def testNoEmsgInSegment(self): method testEmsgInSegment (line 72) | def testEmsgInSegment(self): method testNoNewSegmentsAdded (line 78) | def testNoNewSegmentsAdded(self): method testNewSegmentsAdded (line 96) | def testNewSegmentsAdded(self): FILE: dashlivesim/tests/test_segmentmuxer.py class TestInitMuxing (line 42) | class TestInitMuxing(unittest.TestCase): method testInitMuxing (line 44) | def testInitMuxing(self): class TestSegmentMuxing (line 52) | class TestSegmentMuxing(unittest.TestCase): method testFragmentMuxing (line 54) | def testFragmentMuxing(self): method testSampleMuxing (line 61) | def testSampleMuxing(self): FILE: dashlivesim/tests/test_segmenttimeline.py function node_ns (line 39) | def node_ns(name): class TestMPDWithSegmentTimeline (line 43) | class TestMPDWithSegmentTimeline(unittest.TestCase): method setUp (line 46) | def setUp(self): method testThatNumberTemplateFeaturesAreAbsent (line 54) | def testThatNumberTemplateFeaturesAreAbsent(self): method testThatSegmentTimeLineDataIsPresent (line 63) | def testThatSegmentTimeLineDataIsPresent(self): method testThatTheLastSegmentReallyIsTheLatest (line 69) | def testThatTheLastSegmentReallyIsTheLatest(self): method testThatTheLastSegmentReallyIsTheLatestAtWrapAround (line 92) | def testThatTheLastSegmentReallyIsTheLatestAtWrapAround(self): method testThatFirstSegmentStartsJustBeforeTsbd (line 121) | def testThatFirstSegmentStartsJustBeforeTsbd(self): function find_first_audio_t (line 137) | def find_first_audio_t(root): class TestAvoidJump (line 154) | class TestAvoidJump(unittest.TestCase): method testThatTimesDontJump (line 156) | def testThatTimesDontJump(self): class TestMPDWithSegmentTimelineWrap (line 178) | class TestMPDWithSegmentTimelineWrap(unittest.TestCase): method testAfterWrap (line 181) | def testAfterWrap(self): method testBefore (line 192) | def testBefore(self): method getNrSegments (line 206) | def getNrSegments(self, root): class TestSegmentTimelineInterval (line 223) | class TestSegmentTimelineInterval(unittest.TestCase): method setUp (line 226) | def setUp(self): method testSegmentList (line 234) | def testSegmentList(self): class TestMultiPeriodSegmentTimeline (line 261) | class TestMultiPeriodSegmentTimeline(unittest.TestCase): method setUp (line 264) | def setUp(self): method testThatThereAreMultiplePeriods (line 271) | def testThatThereAreMultiplePeriods(self): class TestMediaSegments (line 281) | class TestMediaSegments(unittest.TestCase): method setUp (line 284) | def setUp(self): method testThatTimeLookupWorks (line 291) | def testThatTimeLookupWorks(self): method testThatTimeSegmentIsSameAsNumber (line 297) | def testThatTimeSegmentIsSameAsNumber(self): class TestMPDWithSegmentTimelineNumber (line 308) | class TestMPDWithSegmentTimelineNumber(unittest.TestCase): method setUp (line 311) | def setUp(self): method testThatSomeFeaturesAreAbsent (line 320) | def testThatSomeFeaturesAreAbsent(self): method testThatSegmentTimeLineDataIsPresent (line 329) | def testThatSegmentTimeLineDataIsPresent(self): method testThatFirstSegmentHasRightNumber (line 335) | def testThatFirstSegmentHasRightNumber(self): FILE: dashlivesim/tests/test_startnr.py class TestMpdChange (line 39) | class TestMpdChange(unittest.TestCase): method testMpdWithNormalStartNr (line 42) | def testMpdWithNormalStartNr(self): method testMpdWitdStartNrIs111 (line 52) | def testMpdWitdStartNrIs111(self): method testMpdWithStartNrIs1 (line 60) | def testMpdWithStartNrIs1(self): method testMpdWithImplicitStartNr (line 68) | def testMpdWithImplicitStartNr(self): FILE: dashlivesim/tests/test_subtitles.py class TestTtmlTimingChange (line 40) | class TestTtmlTimingChange(unittest.TestCase): method testNoChange (line 43) | def testNoChange(self): method testAdd1Hour (line 48) | def testAdd1Hour(self): method testWrap (line 54) | def testWrap(self): class TestTtmlSegmentNrChange (line 61) | class TestTtmlSegmentNrChange(unittest.TestCase): method testSetToRightNr (line 64) | def testSetToRightNr(self): class TestSegmentModification (line 71) | class TestSegmentModification(unittest.TestCase): method testTtmlSegment (line 73) | def testTtmlSegment(self): class TestMpdExtraction (line 87) | class TestMpdExtraction(unittest.TestCase): method testStartNumber (line 89) | def testStartNumber(self): FILE: dashlivesim/tests/test_suggested_presentation_delay.py class TestSuggestedPresentationDelay (line 36) | class TestSuggestedPresentationDelay(unittest.TestCase): method testSuggestedPresentationDelayNotPresent (line 39) | def testSuggestedPresentationDelayNotPresent(self): method testSuggestedPresentationDelayPresent (line 46) | def testSuggestedPresentationDelayPresent(self): FILE: dashlivesim/tests/test_ttml_update.py class TestTTMLTimeUpdate (line 43) | class TestTTMLTimeUpdate(unittest.TestCase): method testUpdateTTMLTime (line 45) | def testUpdateTTMLTime(self): FILE: dashlivesim/tests/test_xlinkperiod.py class TestXlinkPeriod (line 41) | class TestXlinkPeriod(unittest.TestCase): method setUp (line 43) | def setUp(self): method tearDown (line 47) | def tearDown(self): method testMpdPeriodReplaced (line 50) | def testMpdPeriodReplaced(self): FILE: dashlivesim/vodanalyzer/dashanalyzer.py function makeTimeStamp (line 50) | def makeTimeStamp(t): function makeDurationFromS (line 54) | def makeDurationFromS(nrSeconds): class DashAnalyzerError (line 58) | class DashAnalyzerError(Exception): class DashAnalyzer (line 62) | class DashAnalyzer(object): method __init__ (line 64) | def __init__(self, mpd_filepath, verbose=1): method analyze (line 84) | def analyze(self): method initMedia (line 89) | def initMedia(self): method getSegmentRange (line 127) | def getSegmentRange(self, rep_data): method checkAndUpdateMediaData (line 148) | def checkAndUpdateMediaData(self): method write_config (line 249) | def write_config(self, config_file): method processMpd (line 265) | def processMpd(self): function main (line 281) | def main(): FILE: dashlivesim/vodanalyzer/mpdprocessor.py class MpdElementError (line 42) | class MpdElementError(Exception): class MpdElement (line 46) | class MpdElement(object): method __init__ (line 49) | def __init__(self, node): method parse (line 54) | def parse(self): method make_live (line 59) | def make_live(self, data): method tag_and_namespace (line 64) | def tag_and_namespace(self, full_tag): method compare_tag (line 71) | def compare_tag(self, full_tag, string): method check_and_add_attributes (line 76) | def check_and_add_attributes(self, node, attribs): method set_value (line 85) | def set_value(self, element, key, data): class Mpd (line 91) | class Mpd(MpdElement): method __init__ (line 94) | def __init__(self, node): method parse (line 98) | def parse(self): method make_live (line 108) | def make_live(self, data): class Period (line 117) | class Period(MpdElement): method __init__ (line 120) | def __init__(self, node): method parse (line 124) | def parse(self): method make_live (line 133) | def make_live(self, data): class AdaptationSet (line 140) | class AdaptationSet(MpdElement): method __init__ (line 143) | def __init__(self, node): method content_type (line 149) | def content_type(self): method media_pattern (line 154) | def media_pattern(self): method initialization_pattern (line 159) | def initialization_pattern(self): method start_number (line 164) | def start_number(self): method timescale (line 169) | def timescale(self): method duration (line 174) | def duration(self): method parse (line 178) | def parse(self): method make_live (line 190) | def make_live(self, data): class Representation (line 197) | class Representation(MpdElement): method __init__ (line 200) | def __init__(self, adaptation_set, node): method initialization_path (line 205) | def initialization_path(self): method rep_id (line 210) | def rep_id(self): method parse (line 214) | def parse(self): method get_initialization_path (line 218) | def get_initialization_path(self): method get_media_path (line 226) | def get_media_path(self, segNr="%d"): class MpdProcessor (line 236) | class MpdProcessor(MpdElement): method __init__ (line 239) | def __init__(self, infile): method parse (line 250) | def parse(self): method get_adaptation_sets (line 267) | def get_adaptation_sets(self): method getMuxedRep (line 270) | def getMuxedRep(self): method getMuxedInitPath (line 273) | def getMuxedInitPath(self): method getMuxedMediaPath (line 281) | def getMuxedMediaPath(self): method process (line 288) | def process(self, mpdData={}): method makeLiveMpd (line 292) | def makeLiveMpd(self, data): method makeLiveMultiplexedMpd (line 306) | def makeLiveMultiplexedMpd(self, data, mediaData): method makeContentComponent (line 344) | def makeContentComponent(self, contentType, trackID): method getCleanString (line 352) | def getCleanString(self, clean=True, targetMpdNameSpace=None): FILE: dashlivesim/vodanalyzer/parse_dat_file.py function parse_dat_file (line 8) | def parse_dat_file(infile_handle, verbosity_level):