export interface ChanLayer { valid : boolean ; channel : number ; layer : number ; } export type StreamParams = { audio ? : number [ ] ; video ? : number [ ] ; } ; export type TransitionParams = { type : 'cut' | 'dissolve' | 'wipe' ; length : number ; url ? : string ; streams ? : StreamParams ; } ; export interface LoadParams { url : string ; layer : number ; channel ? : number ; loop ? : boolean ; preview ? : boolean ; autoPlay ? : boolean ; streams ? : StreamParams ; seek ? : number ; length ? : number ; transition ? : TransitionParams ; } export function chanLayerFromString ( chanLayStr ) { let valid = false ; let channel = 0 ; let layer = 0 ; const match = chanLayStr ?. match ( '(?<channel>\\d+)-?(?<layer>\\d*)' ) ; if ( match ?. groups ) { valid = true ; const chanLay = match . groups ; channel = parseInt ( chanLay . channel ) ; if ( chanLay . layer !== '' ) { layer = parseInt ( chanLay . layer ) ; } } return { valid : valid , channel : channel , layer : layer } ; }