@@ -15,6 +15,7 @@ class Rendition {
1515 instreamId ?: string ;
1616 characteristics ?: string ;
1717 channels ?: string ;
18+ pathwayId ?: string ;
1819
1920 constructor ( {
2021 type, // required
@@ -28,7 +29,8 @@ class Rendition {
2829 forced,
2930 instreamId, // required if type=CLOSED-CAPTIONS
3031 characteristics,
31- channels
32+ channels,
33+ pathwayId
3234 } : Rendition ) {
3335 utils . PARAMCHECK ( type , groupId , name ) ;
3436 utils . CONDITIONALASSERT ( [ type === 'SUBTITLES' , uri ] , [ type === 'CLOSED-CAPTIONS' , instreamId ] , [ type === 'CLOSED-CAPTIONS' , ! uri ] , [ forced , type === 'SUBTITLES' ] ) ;
@@ -44,6 +46,7 @@ class Rendition {
4446 this . instreamId = instreamId ;
4547 this . characteristics = characteristics ;
4648 this . channels = channels ;
49+ this . pathwayId = pathwayId ;
4750 }
4851}
4952
@@ -60,6 +63,7 @@ class Variant {
6063 allowedCpc : AllowedCpc [ ] ;
6164 videoRange : 'SDR' | 'HLG' | 'PQ' ;
6265 stableVariantId : string ;
66+ pathwayId : string ;
6367 programId : any ;
6468 audio : ( Rendition & { type : 'AUDIO' } ) [ ] ;
6569 video : ( Rendition & { type : 'VIDEO' } ) [ ] ;
@@ -80,6 +84,7 @@ class Variant {
8084 allowedCpc,
8185 videoRange,
8286 stableVariantId,
87+ pathwayId,
8388 programId,
8489 audio = [ ] ,
8590 video = [ ] ,
@@ -101,6 +106,7 @@ class Variant {
101106 this . allowedCpc = allowedCpc ;
102107 this . videoRange = videoRange ;
103108 this . stableVariantId = stableVariantId ;
109+ this . pathwayId = pathwayId ;
104110 this . programId = programId ;
105111 this . audio = audio ;
106112 this . video = video ;
@@ -156,6 +162,19 @@ class Key {
156162 }
157163}
158164
165+ class ContentSteering {
166+ serverUri : string ;
167+ pathwayId : string ;
168+
169+ constructor ( {
170+ serverUri,
171+ pathwayId
172+ } : ContentSteering ) {
173+ this . serverUri = serverUri ;
174+ this . pathwayId = pathwayId ;
175+ }
176+ }
177+
159178export type Byterange = {
160179 length : number ;
161180 offset : number ;
@@ -281,19 +300,22 @@ class MasterPlaylist extends Playlist {
281300 currentVariant ?: number ;
282301 sessionDataList : SessionData [ ] ;
283302 sessionKeyList : Key [ ] ;
303+ contentSteering ?: ContentSteering ;
284304
285305 constructor ( params : Partial < MasterPlaylist > = { } ) {
286306 super ( { ...params , isMasterPlaylist : true } ) ;
287307 const {
288308 variants = [ ] ,
289309 currentVariant,
290310 sessionDataList = [ ] ,
291- sessionKeyList = [ ]
311+ sessionKeyList = [ ] ,
312+ contentSteering = undefined
292313 } = params ;
293314 this . variants = variants ;
294315 this . currentVariant = currentVariant ;
295316 this . sessionDataList = sessionDataList ;
296317 this . sessionKeyList = sessionKeyList ;
318+ this . contentSteering = contentSteering ;
297319 }
298320}
299321
@@ -493,7 +515,8 @@ export {
493515 Segment ,
494516 PartialSegment ,
495517 PrefetchSegment ,
496- RenditionReport
518+ RenditionReport ,
519+ ContentSteering
497520} ;
498521
499522export type AllowedCpc = {
0 commit comments