feat(msl): Adds subtiles to dash manifest
authorJohannes Trum <johannes@die-trums.de>
Wed, 29 Mar 2017 20:46:22 +0000 (22:46 +0200)
committerJohannes Trum <johannes@die-trums.de>
Wed, 29 Mar 2017 20:46:22 +0000 (22:46 +0200)
resources/lib/MSL.py

index 83a06ee37b5fc0e19d625a4a50d8c61e8c4787be..409411322adeb342fb32fb2a09432144617ff31e 100644 (file)
@@ -152,9 +152,13 @@ class MSL:
 
                 # Audio
                 'heaac-2-dash',
+
+                #subtiltes
                 'dfxp-ls-sdh',
-                'simplesdh',
-                'nflx-cmisc',
+                #'simplesdh',
+                #'nflx-cmisc',
+
+                #unkown
                 'BIF240',
                 'BIF320'
             ],
@@ -349,6 +353,26 @@ class MSL:
                 segment_base = ET.SubElement(rep, 'SegmentBase', indexRange="0-"+str(init_length), indexRangeExact="true")
                 ET.SubElement(segment_base, 'Initialization', range='0-'+str(init_length))
 
+        # Multiple Adaption Set for subtiles
+        for text_track in manifest['textTracks']:
+            print text_track
+            if 'downloadables' not in text_track or text_track['downloadables'] is None:
+                continue
+            subtiles_adaption_set = ET.SubElement(period, 'AdaptationSet',
+                                                  lang=text_track['bcp47'],
+                                                  contentType='text',
+                                                  mimeType='text/vtt')
+            for downloadable in text_track['downloadables']:
+                rep = ET.SubElement(subtiles_adaption_set, 'Representation',
+                                    bandwidth='0',
+                                    nflxProfile=downloadable['contentProfile']
+                                    )
+                print downloadable['urls']
+                ET.SubElement(rep, 'BaseURL').text = self.__get_base_url(downloadable['urls'])
+
+
+
+
 
         xml = ET.tostring(root, encoding='utf-8', method='xml')
         xml = xml.replace('\n', '').replace('\r', '')