Esempio n. 1
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'xmlns', self.xmlns)
        write_attr_value(xmlnode, 'id', self.id)
        write_attr_value(xmlnode, 'type', self.type)
        write_attr_value(xmlnode, 'profiles', self.profiles)
        write_attr_value(xmlnode, 'availabilityStartTime',
                         self.availability_start_time)
        write_attr_value(xmlnode, 'availabilityEndTime',
                         self.availability_end_time)
        write_attr_value(xmlnode, 'publishTime', self.publish_time)
        write_attr_value(xmlnode, 'mediaPresentationDuration',
                         self.media_presentation_duration)
        write_attr_value(xmlnode, 'minimumUpdatePeriod',
                         self.minimum_update_period)
        write_attr_value(xmlnode, 'minBufferTime', self.min_buffer_time)
        write_attr_value(xmlnode, 'timeShiftBufferDepth',
                         self.time_shift_buffer_depth)
        write_attr_value(xmlnode, 'suggestedPresentationDelay',
                         self.suggested_presentation_delay)
        write_attr_value(xmlnode, 'maxSegmentDuration',
                         self.max_segment_duration)
        write_attr_value(xmlnode, 'maxSubsegmentDuration',
                         self.max_subsegment_duration)

        write_child_node(xmlnode, 'ProgramInformation',
                         self.program_informations)
        write_child_node(xmlnode, 'BaseURL', self.base_urls)
        write_child_node(xmlnode, 'Location', self.locations)
        write_child_node(xmlnode, 'Period', self.periods)
        write_child_node(xmlnode, 'Metrics', self.metrics)
Esempio n. 2
0
 def write(self, xmlnode):
     write_attr_value(xmlnode, "schemeIdUri", self.scheme_id_uri)
     write_attr_value(xmlnode, "value", self.value)
     write_attr_value(xmlnode, "id", self.id)
     write_attr_value(xmlnode, "default_KID", self.default_key_id)
     write_attr_value(xmlnode, "ns2:default_KID", self.ns2_key_id)
     write_attr_value(xmlnode, "cenc:default_KID", self.cenc_default_kid)
     write_child_node(xmlnode, "cenc:pssh", self.pssh)
Esempio n. 3
0
    def write(self, xmlnode):
        SegmentBase.write(self, xmlnode)

        write_attr_value(xmlnode, 'duration', self.duration)
        write_attr_value(xmlnode, 'startNumber', self.start_number)

        write_child_node(xmlnode, 'SegmentTimeline', self.segment_timelines)
        write_child_node(xmlnode, 'BitstreamSwitching', self.bitstream_switchings)
Esempio n. 4
0
    def write(self, xmlnode):
        SegmentBase.write(self, xmlnode)

        write_attr_value(xmlnode, 'duration', self.duration)
        write_attr_value(xmlnode, 'startNumber', self.start_number)

        write_child_node(xmlnode, 'SegmentTimeline', self.segment_timelines)
        write_child_node(xmlnode, 'BitstreamSwitching', self.bitstream_switchings)
Esempio n. 5
0
 def write(self, xmlnode):
     write_child_node(xmlnode, 'mas:MarlinContentIds', self.marlin_content_ids)
     write_attr_value(xmlnode, 'cenc:default_KID', self.cenc_default_KID)
     write_attr_value(xmlnode, 'xmlns:cenc', self.xmlns_cenc)
     write_attr_value(xmlnode, 'schemeIdUri', self.scheme_id_uri)
     write_attr_value(xmlnode, 'value', self.value)
     write_attr_value(xmlnode, 'id', self.id)
     write_child_node(xmlnode, 'cenc:pssh', self.widevine)
Esempio n. 6
0
    def on_get(self, req, resp, mpd_id):
        """
        GET /mpds/{mpd_id}
        """
        mode = ''
        for key, value in req.params.items():
            if key == 'mode':
                mode = value

        base_url = BaseURL()
        if mode == 'proxy':
            base_url.base_url_value = "/proxy{}".format(
                MPDS['mpds'][str(mpd_id)]['base_url'])
        elif mode == 'simulation':
            base_url.base_url_value = "/simulation{}".format(
                MPDS['mpds'][str(mpd_id)]['base_url'])
        elif mode == 'validation':
            base_url.base_url_value = "/validation{}".format(
                MPDS['mpds'][str(mpd_id)]['base_url'])
        else:
            LOGGER.error('No mode provided as query string.')
            resp.status = falcon.HTTP_400
            resp.body = json.dumps({
                'message':
                'Please provide a mode in the request '
                'as query string: mode=proxy|simulation|validation.'
            })
            return

        mpd_response = requests.get(MPDS['mpds'][str(mpd_id)]['url'])
        resp.content_type = 'application/dash+xml'
        mpd = MPEGDASHParser.parse(mpd_response.text)
        mpd.base_urls = []

        # Add the custome base urls
        mpd.base_urls.append(base_url)

        # Add TAC signalling
        if mode != 'proxy':
            tac = DescriptorWithExtUrlQuery()
            tac.scheme_id_uri = 'urn:mpeg:dash:urlparam:2016:querystring'
            url_query_info = ExtUrlQueryInfo()
            url_query_info.include_in_requests = 'mpd segment'
            url_query_info.query_string = 'token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJEQVNILUlGIENvbmZvcm1hbmNlIiwiY2RuaXN0dCI6Mn0.QjVVZGUXOsFPiHCTax_I14su5rppK-yWPQXrkcI1gQI'
            url_query_info.query_template = 'dash-if-ietf-token=$query:token$'
            tac.ext_url_query_info = url_query_info
            for period in mpd.periods:
                for adaptation_set in period.adaptation_sets:
                    if not adaptation_set.essential_properties:
                        adaptation_set.essential_properties = []
                    adaptation_set.essential_properties.append(tac)

        # Serialize MPD to XML
        xml_doc = minidom.Document()
        write_child_node(xml_doc, 'MPD', mpd)
        resp.body = xml_doc.toprettyxml(indent='    ', newl='\n')
Esempio n. 7
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'timescale', self.timescale)
        write_attr_value(xmlnode, 'indexRange', self.index_range)
        write_attr_value(xmlnode, 'indexRangeExact', self.index_range_exact)
        write_attr_value(xmlnode, 'presentationTimeOffset', self.presentation_time_offset)
        write_attr_value(xmlnode, 'availabilityTimeOffset', self.availability_time_offset)
        write_attr_value(xmlnode, 'availabilityTimeComplete', self.availability_time_complete)

        write_child_node(xmlnode, 'Initialization', self.initializations)
        write_child_node(xmlnode, 'RepresentationIndex', self.representation_indexes)
Esempio n. 8
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'timescale', self.timescale)
        write_attr_value(xmlnode, 'indexRange', self.index_range)
        write_attr_value(xmlnode, 'indexRangeExact', self.index_range_exact)
        write_attr_value(xmlnode, 'presentationTimeOffset', self.presentation_time_offset)
        write_attr_value(xmlnode, 'availabilityTimeOffset', self.availability_time_offset)
        write_attr_value(xmlnode, 'availabilityTimeComplete', self.availability_time_complete)

        write_child_node(xmlnode, 'Initialization', self.initializations)
        write_child_node(xmlnode, 'RepresentationIndex', self.representation_indexes)
Esempio n. 9
0
    def write(self, xmlnode):
        RepresentationBase.write(self, xmlnode)

        write_attr_value(xmlnode, 'id', self.id)
        write_attr_value(xmlnode, 'width', self.width)
        write_attr_value(xmlnode, 'height', self.height)
        write_attr_value(xmlnode, 'bandwidth', self.bandwidth)
        write_attr_value(xmlnode, 'mimeType', self.mime_type)
        write_attr_value(xmlnode, 'codecs', self.codecs)

        write_child_node(xmlnode, 'BaseURL', self.base_urls)
        write_child_node(xmlnode, 'SegmentBase', self.segment_bases)
        write_child_node(xmlnode, 'SegmentList', self.segment_lists)
        write_child_node(xmlnode, 'SegmentTemplate', self.segment_templates)
        write_child_node(xmlnode, 'SubRepresentation', self.sub_representations)
Esempio n. 10
0
    def write(self, xmlnode):
        RepresentationBase.write(self, xmlnode)

        write_attr_value(xmlnode, 'id', self.id)
        write_attr_value(xmlnode, 'width', self.width)
        write_attr_value(xmlnode, 'height', self.height)
        write_attr_value(xmlnode, 'bandwidth', self.bandwidth)
        write_attr_value(xmlnode, 'mimeType', self.mime_type)
        write_attr_value(xmlnode, 'codecs', self.codecs)

        write_child_node(xmlnode, 'BaseURL', self.base_urls)
        write_child_node(xmlnode, 'SegmentBase', self.segment_bases)
        write_child_node(xmlnode, 'SegmentList', self.segment_lists)
        write_child_node(xmlnode, 'SegmentTemplate', self.segment_templates)
        write_child_node(xmlnode, 'SubRepresentation', self.sub_representations)
Esempio n. 11
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'id', self.id)
        write_attr_value(xmlnode, 'lang', self.lang)
        write_attr_value(xmlnode, 'contentType', self.content_type)
        write_attr_value(xmlnode, 'par', self.par)

        write_child_node(xmlnode, 'Accessibility', self.accessibilities)
        write_child_node(xmlnode, 'Role', self.roles)
        write_child_node(xmlnode, 'Rating', self.ratings)
        write_child_node(xmlnode, 'Viewpoint', self.viewpoints)
Esempio n. 12
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'id', self.id)
        write_attr_value(xmlnode, 'lang', self.lang)
        write_attr_value(xmlnode, 'contentType', self.content_type)
        write_attr_value(xmlnode, 'par', self.par)

        write_child_node(xmlnode, 'Accessibility', self.accessibilities)
        write_child_node(xmlnode, 'Role', self.roles)
        write_child_node(xmlnode, 'Rating', self.ratings)
        write_child_node(xmlnode, 'Viewpoint', self.viewpoints)
Esempio n. 13
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'xmlns', self.xmlns)
        write_attr_value(xmlnode, 'id', self.id)
        write_attr_value(xmlnode, 'type', self.type)
        write_attr_value(xmlnode, 'profiles', self.profiles)
        write_attr_value(xmlnode, 'availabilityStartTime', self.availability_start_time)
        write_attr_value(xmlnode, 'availabilityEndTime', self.availability_end_time)
        write_attr_value(xmlnode, 'publishTime', self.publish_time)
        write_attr_value(xmlnode, 'mediaPresentationDuration', self.media_presentation_duration)
        write_attr_value(xmlnode, 'minimumUpdatePeriod', self.minimum_update_period)
        write_attr_value(xmlnode, 'minBufferTime', self.min_buffer_time)
        write_attr_value(xmlnode, 'timeShiftBufferDepth', self.time_shift_buffer_depth)
        write_attr_value(xmlnode, 'suggestedPresentationDelay', self.suggested_presentation_delay)
        write_attr_value(xmlnode, 'maxSegmentDuration', self.max_segment_duration)
        write_attr_value(xmlnode, 'maxSubsegmentDuration', self.max_subsegment_duration)

        write_child_node(xmlnode, 'ProgramInformation', self.program_informations)
        write_child_node(xmlnode, 'BaseURL', self.base_urls)
        write_child_node(xmlnode, 'Location', self.locations)
        write_child_node(xmlnode, 'Period', self.periods)
        write_child_node(xmlnode, 'Metrics', self.metrics)
Esempio n. 14
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'lang', self.lang)
        write_attr_value(xmlnode, 'moreInformationURL', self.more_information_url)

        write_child_node(xmlnode, 'Title', self.titles)
        write_child_node(xmlnode, 'Source', self.sources)
        write_child_node(xmlnode, 'Copyright', self.copyrights)
Esempio n. 15
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'lang', self.lang)
        write_attr_value(xmlnode, 'moreInformationURL', self.more_information_url)

        write_child_node(xmlnode, 'Title', self.titles)
        write_child_node(xmlnode, 'Source', self.sources)
        write_child_node(xmlnode, 'Copyright', self.copyrights)
Esempio n. 16
0
 def write(self, xmlnode):
     write_child_node(xmlnode, 'S', self.Ss)
Esempio n. 17
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'metrics', self.metrics)

        write_child_node(xmlnode, 'Reporting', self.reportings)
        write_child_node(xmlnode, 'Range', self.ranges)
Esempio n. 18
0
 def get_as_doc(cls, mpd):
     xml_doc = minidom.Document()
     write_child_node(xml_doc, 'MPD', mpd)
     return xml_doc
Esempio n. 19
0
 def to_xmlstring(cls, mpd):
     xml_doc = minidom.Document()
     write_child_node(xml_doc, 'MPD', mpd)
     return xml_doc.toprettyxml()
Esempio n. 20
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'schemeIdUri', self.scheme_id_uri)
        write_attr_value(xmlnode, 'value', self.value)
        write_attr_value(xmlnode, 'timescale', self.timescale)

        write_child_node(xmlnode, 'Event', self.events)
Esempio n. 21
0
 def write(self, xmlnode):
     write_child_node(xmlnode, 'mas:MarlinContentId', self.marlin_content_id)
     write_attr_value(xmlnode, 'xmlns:mas', self.xmlns_mas)
     write_attr_value(xmlnode, 'schemeIdUri', self.scheme_id_uri)
     write_attr_value(xmlnode, 'value', self.value)
     write_attr_value(xmlnode, 'id', self.id)
Esempio n. 22
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'profile', self.profile)
        write_attr_value(xmlnode, 'profiles', self.profiles)
        write_attr_value(xmlnode, 'width', self.width)
        write_attr_value(xmlnode, 'height', self.height)
        write_attr_value(xmlnode, 'sar', self.sar)
        write_attr_value(xmlnode, 'frameRate', self.frame_rate)
        write_attr_value(xmlnode, 'audioSamplingRate',
                         self.audio_sampling_rate)
        write_attr_value(xmlnode, 'mimeType', self.mime_type)
        write_attr_value(xmlnode, 'segmentProfiles', self.segment_profiles)
        write_attr_value(xmlnode, 'codecs', self.codecs)
        write_attr_value(xmlnode, 'maximumSAPPeriod', self.maximum_sap_period)
        write_attr_value(xmlnode, 'startWithSAP', self.start_with_sap)
        write_attr_value(xmlnode, 'maxPlayoutRate', self.max_playout_rate)
        write_attr_value(xmlnode, 'codingDependency', self.coding_dependency)
        write_attr_value(xmlnode, 'scanType', self.scan_type)

        write_child_node(xmlnode, 'FramePacking', self.frame_packings)
        write_child_node(xmlnode, 'AudioChannelConfiguration',
                         self.audio_channel_configurations)
        write_child_node(xmlnode, 'ContentProtection',
                         self.content_protections)
        write_child_node(xmlnode, 'EssentialProperty',
                         self.essential_properties)
        write_child_node(xmlnode, 'SupplementalProperty',
                         self.supplemental_properties)
        write_child_node(xmlnode, 'InbandEventStream',
                         self.inband_event_streams)
Esempio n. 23
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'profile', self.profiles)
        write_attr_value(xmlnode, 'width', self.width)
        write_attr_value(xmlnode, 'height', self.height)
        write_attr_value(xmlnode, 'sar', self.sar)
        write_attr_value(xmlnode, 'frameRate', self.frame_rate)
        write_attr_value(xmlnode, 'audioSamplingRate', self.audio_sampling_rate)
        write_attr_value(xmlnode, 'mimeType', self.mime_type)
        write_attr_value(xmlnode, 'segmentProfiles', self.segment_profiles)
        write_attr_value(xmlnode, 'codecs', self.codecs)
        write_attr_value(xmlnode, 'maximumSAPPeriod', self.maximum_sap_period)
        write_attr_value(xmlnode, 'startWithSAP', self.start_with_sap)
        write_attr_value(xmlnode, 'maxPlayoutRate', self.max_playout_rate)
        write_attr_value(xmlnode, 'codingDependency', self.coding_dependency)
        write_attr_value(xmlnode, 'scanType', self.scan_type)

        write_child_node(xmlnode, 'FramePacking', self.frame_packings)
        write_child_node(xmlnode, 'AudioChannelConfiguration', self.audio_channel_configurations)
        write_child_node(xmlnode, 'ContentProtection', self.content_protections)
        write_child_node(xmlnode, 'EssentialProperty', self.essential_properties)
        write_child_node(xmlnode, 'SupplementalProperty', self.supplemental_properties)
        write_child_node(xmlnode, 'InbandEventStream', self.inband_event_streams)
Esempio n. 24
0
    def write(self, xmlnode):
        MultipleSegmentBase.write(self, xmlnode)

        write_child_node(xmlnode, 'SegmentURL', self.segment_urls)
Esempio n. 25
0
 def write(self, xmlnode):  # pylint: disable=super-on-old-class
     """Writing"""
     super(DescriptorWithExtUrlQuery, self).write(xmlnode)
     write_attr_value(xmlnode, 'xmlns:{}'.format(self.prefix), self.xmlns)
     write_child_node(xmlnode, '{}:ExtUrlQueryInfo'.format(self.prefix),
                      self.ext_url_query_info)
Esempio n. 26
0
    def write(self, xmlnode):
        RepresentationBase.write(self, xmlnode)

        write_attr_value(xmlnode, 'id', self.id)
        write_attr_value(xmlnode, 'group', self.group)
        write_attr_value(xmlnode, 'lang', self.lang)
        write_attr_value(xmlnode, 'contentType', self.lang)
        write_attr_value(xmlnode, 'par', self.par)
        write_attr_value(xmlnode, 'minBandwidth', self.min_bandwidth)
        write_attr_value(xmlnode, 'maxBandwidth', self.max_bandwidth)
        write_attr_value(xmlnode, 'minWidth', self.min_width)
        write_attr_value(xmlnode, 'maxWidth', self.max_width)
        write_attr_value(xmlnode, 'minHeight', self.min_height)
        write_attr_value(xmlnode, 'maxHeight', self.max_height)
        write_attr_value(xmlnode, 'minFrameRate', self.min_frame_rate)
        write_attr_value(xmlnode, 'maxFrameRate', self.max_frame_rate)
        write_attr_value(xmlnode, 'segmentAlignment', self.segment_alignment)
        write_attr_value(xmlnode, 'subsegmentAlignment', self.subsegment_alignment)
        write_attr_value(xmlnode, 'subsegmentStartsWithSAP', self.subsegment_starts_with_sap)
        write_attr_value(xmlnode, 'bitstreamSwitching', self.bitstream_switching)

        write_child_node(xmlnode, 'Accessibility', self.accessibilities)
        write_child_node(xmlnode, 'Role', self.roles)
        write_child_node(xmlnode, 'Rating', self.ratings)
        write_child_node(xmlnode, 'Viewpoint', self.viewpoints)
        write_child_node(xmlnode, 'ContentComponent', self.content_components)
        write_child_node(xmlnode, 'BaseURL', self.base_urls)
        write_child_node(xmlnode, 'SegmentBase', self.segment_bases)
        write_child_node(xmlnode, 'SegmentList', self.segment_lists)
        write_child_node(xmlnode, 'SegmentTemplate', self.segment_templates)
        write_child_node(xmlnode, 'Representation', self.representations)
Esempio n. 27
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'schemeIdUri', self.scheme_id_uri)
        write_attr_value(xmlnode, 'value', self.value)
        write_attr_value(xmlnode, 'timescale', self.timescale)

        write_child_node(xmlnode, 'Event', self.events)
Esempio n. 28
0
    def write(self, xmlnode):
        MultipleSegmentBase.write(self, xmlnode)

        write_child_node(xmlnode, 'SegmentURL', self.segment_urls)
Esempio n. 29
0
 def write(self, xmlnode):
     write_child_node(xmlnode, 'S', self.Ss)
Esempio n. 30
0
 def write(cls, mpd, filepath):
     xml_doc = minidom.Document()
     write_child_node(xml_doc, 'MPD', mpd)
     with open(filepath, 'w') as f:
         xml_doc.writexml(f, indent='    ', addindent='    ', newl='\n')
Esempio n. 31
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'metrics', self.metrics)

        write_child_node(xmlnode, 'Reporting', self.reportings)
        write_child_node(xmlnode, 'Range', self.ranges)
Esempio n. 32
0
    def write(self, xmlnode):
        RepresentationBase.write(self, xmlnode)

        write_attr_value(xmlnode, 'id', self.id)
        write_attr_value(xmlnode, 'group', self.group)
        write_attr_value(xmlnode, 'lang', self.lang)
        write_attr_value(xmlnode, 'label', self.label)
        write_attr_value(xmlnode, 'contentType', self.content_type)
        write_attr_value(xmlnode, 'par', self.par)
        write_attr_value(xmlnode, 'minBandwidth', self.min_bandwidth)
        write_attr_value(xmlnode, 'maxBandwidth', self.max_bandwidth)
        write_attr_value(xmlnode, 'minWidth', self.min_width)
        write_attr_value(xmlnode, 'maxWidth', self.max_width)
        write_attr_value(xmlnode, 'minHeight', self.min_height)
        write_attr_value(xmlnode, 'maxHeight', self.max_height)
        write_attr_value(xmlnode, 'minFrameRate', self.min_frame_rate)
        write_attr_value(xmlnode, 'maxFrameRate', self.max_frame_rate)
        write_attr_value(xmlnode, 'segmentAlignment', self.segment_alignment)
        write_attr_value(xmlnode, 'selectionPriority', self.selection_priority)
        write_attr_value(xmlnode, 'subsegmentAlignment',
                         self.subsegment_alignment)
        write_attr_value(xmlnode, 'subsegmentStartsWithSAP',
                         self.subsegment_starts_with_sap)
        write_attr_value(xmlnode, 'bitstreamSwitching',
                         self.bitstream_switching)

        write_child_node(xmlnode, 'Accessibility', self.accessibilities)
        write_child_node(xmlnode, 'Role', self.roles)
        write_child_node(xmlnode, 'Rating', self.ratings)
        write_child_node(xmlnode, 'Viewpoint', self.viewpoints)
        write_child_node(xmlnode, 'ContentComponent', self.content_components)
        write_child_node(xmlnode, 'BaseURL', self.base_urls)
        write_child_node(xmlnode, 'SegmentBase', self.segment_bases)
        write_child_node(xmlnode, 'SegmentList', self.segment_lists)
        write_child_node(xmlnode, 'SegmentTemplate', self.segment_templates)
        write_child_node(xmlnode, 'Representation', self.representations)
Esempio n. 33
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'id', self.id)
        write_attr_value(xmlnode, 'start', self.start)
        write_attr_value(xmlnode, 'duration', self.duration)
        write_attr_value(xmlnode, 'bitstreamSwitching', self.bitstream_switching)

        write_child_node(xmlnode, 'BaseURL', self.base_urls)
        write_child_node(xmlnode, 'SegmentBase', self.segment_bases)
        write_child_node(xmlnode, 'SegmentList', self.segment_lists)
        write_child_node(xmlnode, 'SegmentTemplate', self.segment_templates)
        write_child_node(xmlnode, 'AssetIdentifier', self.asset_identifiers)
        write_child_node(xmlnode, 'EventStream', self.event_streams)
        write_child_node(xmlnode, 'AdaptationSet', self.adaptation_sets)
        write_child_node(xmlnode, 'Subset', self.subsets)
Esempio n. 34
0
    def write(self, xmlnode):
        write_attr_value(xmlnode, 'id', self.id)
        write_attr_value(xmlnode, 'start', self.start)
        write_attr_value(xmlnode, 'duration', self.duration)
        write_attr_value(xmlnode, 'bitstreamSwitching',
                         self.bitstream_switching)

        write_child_node(xmlnode, 'BaseURL', self.base_urls)
        write_child_node(xmlnode, 'SegmentBase', self.segment_bases)
        write_child_node(xmlnode, 'SegmentList', self.segment_lists)
        write_child_node(xmlnode, 'SegmentTemplate', self.segment_templates)
        write_child_node(xmlnode, 'AssetIdentifier', self.asset_identifiers)
        write_child_node(xmlnode, 'EventStream', self.event_streams)
        write_child_node(xmlnode, 'AdaptationSet', self.adaptation_sets)
        write_child_node(xmlnode, 'Subset', self.subsets)
Esempio n. 35
0
 def write(cls, mpd, filepath):
     xml_doc = minidom.Document()
     write_child_node(xml_doc, "MPD", mpd)
     with open(filepath, "w") as f:
         xml_doc.writexml(f, indent="    ", addindent="    ", newl="\n")