@@ -104,17 +104,17 @@ export default class RTSPClient extends EventEmitter {
104104 isConnected = false ;
105105 closed = false ;
106106
107- // These are all set in #connect or #_netConnect .
107+ // These are all set in #connect or #netConnect .
108108
109- _url ?: string ;
110- _client ?: SocketUnion ;
111- _cSeq = 0 ;
112- _unsupportedExtensions ?: string [ ] ;
109+ private url ?: string ;
110+ private client ?: SocketUnion ;
111+ private cSeq = 0 ;
112+ private unsupportedExtensions ?: string [ ] ;
113113 // Example: 'SessionId'[';timeout=seconds']
114- _session ?: string ;
115- _keepAliveID ?: NodeJS . Timeout ;
116- _nextFreeInterleavedChannel = 0 ;
117- _nextFreeUDPPort = 5000 ;
114+ protected session ?: string ; // protected for ONVIFClient access
115+ private keepAliveID ?: NodeJS . Timeout ;
116+ private nextFreeInterleavedChannel = 0 ;
117+ private nextFreeUDPPort = 5000 ;
118118
119119 readState : ReadStates = ReadStates . SEARCHING ;
120120
@@ -135,7 +135,7 @@ export default class RTSPClient extends EventEmitter {
135135 rtspPacket = Buffer . from ( "" ) ;
136136 rtspPacketPointer = 0 ;
137137
138- // Used in #_emptyReceiverReport .
138+ // Used in emptyReceiverReport .
139139 clientSSRC = generateSSRC ( ) ;
140140
141141 tcpSocket : SocketUnion = new net . Socket ( ) ;
@@ -162,7 +162,7 @@ export default class RTSPClient extends EventEmitter {
162162 //
163163 // Handles receiving data & closing port, called during
164164 // #connect.
165- _netConnect ( hostname : string , port : number , secure = false ) : Promise < this> {
165+ private netConnect ( hostname : string , port : number , secure = false ) : Promise < this> {
166166 return new Promise ( ( resolve , reject ) => {
167167 // Set after listeners defined.
168168
@@ -205,7 +205,7 @@ export default class RTSPClient extends EventEmitter {
205205 if ( secure == false ) {
206206 client = net . connect ( port , hostname , ( ) => {
207207 this . isConnected = true ;
208- this . _client = client ;
208+ this . client = client ;
209209
210210 client . removeListener ( "error" , errorListener ) ;
211211 client . on ( "error" , postConnectErrorListener ) ;
@@ -221,7 +221,7 @@ export default class RTSPClient extends EventEmitter {
221221 client = tls . connect ( port , hostname , options , ( ) => {
222222 console . log ( "TLS Connection" ) ;
223223 this . isConnected = true ;
224- this . _client = client ;
224+ this . client = client ;
225225
226226 client . removeListener ( "error" , errorListener ) ;
227227
@@ -230,7 +230,7 @@ export default class RTSPClient extends EventEmitter {
230230 } ) ;
231231 }
232232
233- client . on ( "data" , this . _onData . bind ( this ) ) ;
233+ client . on ( "data" , this . onData . bind ( this ) ) ;
234234 client . on ( "error" , errorListener ) ;
235235 client . on ( "close" , closeListener ) ;
236236 this . tcpSocket = client ;
@@ -249,14 +249,14 @@ export default class RTSPClient extends EventEmitter {
249249 secure : false
250250 }
251251 ) : Promise < Detail [ ] > {
252- const { hostname, port } = urlParse ( ( this . _url = url ) ) ;
252+ const { hostname, port } = urlParse ( ( this . url = url ) ) ;
253253 if ( ! hostname ) {
254254 throw new Error ( "URL parsing error in connect method." ) ;
255255 }
256256
257257 const details : Detail [ ] = [ ] ;
258258
259- await this . _netConnect ( hostname , parseInt ( port || "554" ) , secure ) ;
259+ await this . netConnect ( hostname , parseInt ( port || "554" ) , secure ) ;
260260 await this . request ( "OPTIONS" ) ;
261261
262262 const describeRes = await this . request ( "DESCRIBE" , {
@@ -376,7 +376,7 @@ export default class RTSPClient extends EventEmitter {
376376 streamurl = mediaSource . control ;
377377 } else {
378378 // relative path
379- streamurl = this . _url + "/" + mediaSource . control ;
379+ streamurl = this . url + "/" + mediaSource . control ;
380380 }
381381 }
382382
@@ -393,9 +393,9 @@ export default class RTSPClient extends EventEmitter {
393393 // Create a pair of UDP listeners, even numbered port for RTP
394394 // and odd numbered port for RTCP
395395
396- rtpChannel = this . _nextFreeUDPPort ;
397- rtcpChannel = this . _nextFreeUDPPort + 1 ;
398- this . _nextFreeUDPPort += 2 ;
396+ rtpChannel = this . nextFreeUDPPort ;
397+ rtcpChannel = this . nextFreeUDPPort + 1 ;
398+ this . nextFreeUDPPort += 2 ;
399399
400400 const rtpPort = rtpChannel ;
401401 rtpReceiver = dgram . createSocket ( "udp4" ) ;
@@ -428,8 +428,8 @@ export default class RTSPClient extends EventEmitter {
428428
429429 this . emit ( "controlData" , rtcpPort , packet ) ;
430430
431- const receiver_report = this . _emptyReceiverReport ( ) ;
432- this . _sendUDPData ( remote . address , remote . port , receiver_report ) ;
431+ const receiver_report = this . emptyReceiverReport ( ) ;
432+ this . sendUDPData ( remote . address , remote . port , receiver_report ) ;
433433 } ) ;
434434
435435 // Block until both UDP sockets are open.
@@ -445,22 +445,22 @@ export default class RTSPClient extends EventEmitter {
445445 const setupHeader = {
446446 Transport : `RTP/AVP;unicast;client_port=${ rtpPort } -${ rtcpPort } ` ,
447447 } ;
448- if ( this . _session )
449- Object . assign ( setupHeader , { Session : this . _session } ) ;
448+ if ( this . session )
449+ Object . assign ( setupHeader , { Session : this . session } ) ;
450450 setupRes = await this . request ( "SETUP" , setupHeader , streamurl ) ;
451451 } else if ( connection === "tcp" ) {
452452 // channel 0, RTP
453453 // channel 1, RTCP
454454
455- rtpChannel = this . _nextFreeInterleavedChannel ;
456- rtcpChannel = this . _nextFreeInterleavedChannel + 1 ;
457- this . _nextFreeInterleavedChannel += 2 ;
455+ rtpChannel = this . nextFreeInterleavedChannel ;
456+ rtcpChannel = this . nextFreeInterleavedChannel + 1 ;
457+ this . nextFreeInterleavedChannel += 2 ;
458458
459459 const setupHeader = {
460460 Transport : `RTP/AVP/TCP;interleaved=${ rtpChannel } -${ rtcpChannel } ` ,
461461 } ;
462- if ( this . _session )
463- Object . assign ( setupHeader , { Session : this . _session } ) ; // not used on first SETUP
462+ if ( this . session )
463+ Object . assign ( setupHeader , { Session : this . session } ) ; // not used on first SETUP
464464 setupRes = await this . request ( "SETUP" , setupHeader , streamurl ) ;
465465 } else {
466466 throw new Error (
@@ -503,11 +503,11 @@ export default class RTSPClient extends EventEmitter {
503503 }
504504
505505 if ( headers . Unsupported ) {
506- this . _unsupportedExtensions = headers . Unsupported . split ( "," ) ;
506+ this . unsupportedExtensions = headers . Unsupported . split ( "," ) ;
507507 }
508508
509509 if ( headers . Session ) {
510- this . _session = headers . Session . split ( ";" ) [ 0 ] ;
510+ this . session = headers . Session . split ( ";" ) [ 0 ] ;
511511 }
512512
513513 const detail : Detail = {
@@ -526,8 +526,8 @@ export default class RTSPClient extends EventEmitter {
526526 if ( keepAlive ) {
527527 // Start a Timer to send OPTIONS every 20 seconds to keep stream alive
528528 // using the Session ID
529- this . _keepAliveID = setInterval ( ( ) => {
530- this . request ( "OPTIONS" , { Session : this . _session } ) ;
529+ this . keepAliveID = setInterval ( ( ) => {
530+ this . request ( "OPTIONS" , { Session : this . session } ) ;
531531 // this.request("OPTIONS");
532532 } , 20 * 1000 ) ;
533533 }
@@ -541,13 +541,13 @@ export default class RTSPClient extends EventEmitter {
541541 headersParam : Headers = { } ,
542542 url ?: string
543543 ) : Promise < { headers : Headers ; mediaHeaders ?: string [ ] } | void > {
544- if ( ! this . _client ) {
544+ if ( ! this . client ) {
545545 return Promise . resolve ( ) ;
546546 }
547547
548- const id = ++ this . _cSeq ;
548+ const id = ++ this . cSeq ;
549549 // mutable via string addition
550- let req = `${ requestName } ${ url || this . _url } RTSP/1.0\r\nCSeq: ${ id } \r\n` ;
550+ let req = `${ requestName } ${ url || this . url } RTSP/1.0\r\nCSeq: ${ id } \r\n` ;
551551
552552 const headers = {
553553 ...this . headers ,
@@ -565,7 +565,7 @@ export default class RTSPClient extends EventEmitter {
565565
566566 this . emit ( "log" , req , "C->S" ) ;
567567 // Make sure to add an empty line after the request.
568- this . _client . write ( `${ req } \r\n` ) ;
568+ this . client . write ( `${ req } \r\n` ) ;
569569
570570 return new Promise ( ( resolve , reject ) => {
571571 const responseHandler = (
@@ -641,14 +641,14 @@ export default class RTSPClient extends EventEmitter {
641641 const ha1 = HashFunction (
642642 `${ this . username } :${ realm } :${ this . password } `
643643 ) ;
644- const ha2 = HashFunction ( `${ requestName } :${ this . _url } ` ) ;
644+ const ha2 = HashFunction ( `${ requestName } :${ this . url } ` ) ;
645645 const ha3 = HashFunction ( `${ ha1 } :${ nonce } :${ ha2 } ` ) ;
646646
647647 // Some RTSP servers to not accept "algorithm=NNN" in the authString and reject the authentication. So only add algorithm=ZZZZ when not using MD5
648648 if ( algorithm == "MD5" )
649- authString = `Digest username="${ this . username } ",realm="${ realm } ",nonce="${ nonce } ",uri="${ this . _url } ",response="${ ha3 } "` ;
649+ authString = `Digest username="${ this . username } ",realm="${ realm } ",nonce="${ nonce } ",uri="${ this . url } ",response="${ ha3 } "` ;
650650 else
651- authString = `Digest username="${ this . username } ",realm="${ realm } ",nonce="${ nonce } ",algorithm=${ algorithm } ,uri="${ this . _url } ",response="${ ha3 } "` ;
651+ authString = `Digest username="${ this . username } ",realm="${ realm } ",nonce="${ nonce } ",algorithm=${ algorithm } ,uri="${ this . url } ",response="${ ha3 } "` ;
652652 } else if ( type === "Basic" ) {
653653 // Basic Authentication
654654 // https://xkcd.com/538/
@@ -676,7 +676,7 @@ export default class RTSPClient extends EventEmitter {
676676 }
677677
678678 respond ( status : string , headersParam : Headers = { } ) : void {
679- if ( ! this . _client ) {
679+ if ( ! this . client ) {
680680 return ;
681681 }
682682
@@ -693,23 +693,23 @@ export default class RTSPClient extends EventEmitter {
693693 . join ( "" ) ;
694694
695695 this . emit ( "log" , res , "C->S" ) ;
696- this . _client . write ( `${ res } \r\n` ) ;
696+ this . client . write ( `${ res } \r\n` ) ;
697697 }
698698
699699 async play ( ) : Promise < void > {
700700 if ( ! this . isConnected ) {
701701 throw new Error ( "Client is not connected." ) ;
702702 }
703703
704- await this . request ( "PLAY" , { Session : this . _session } ) ;
704+ await this . request ( "PLAY" , { Session : this . session } ) ;
705705 }
706706
707707 async pause ( ) : Promise < void > {
708708 if ( ! this . isConnected ) {
709709 throw new Error ( "Client is not connected." ) ;
710710 }
711711
712- await this . request ( "PAUSE" , { Session : this . _session } ) ;
712+ await this . request ( "PAUSE" , { Session : this . session } ) ;
713713 }
714714
715715 async sendAudioBackChannel ( audioChunk : Buffer ) : Promise < void > {
@@ -744,7 +744,7 @@ export default class RTSPClient extends EventEmitter {
744744 interleavedHeader = Buffer . concat ( [ interleavedHeader , Buffer . from ( [ channelInterleaved ] ) ] ) ;
745745 interleavedHeader = Buffer . concat ( [ interleavedHeader , bufferLength ] ) ;
746746 const dataToSend = Buffer . concat ( [ interleavedHeader , rtp . packet ] ) ;
747- await this . _socketWrite ( this . tcpSocket , dataToSend ) ;
747+ await this . socketWrite ( this . tcpSocket , dataToSend ) ;
748748 }
749749 return ;
750750 }
@@ -753,29 +753,29 @@ export default class RTSPClient extends EventEmitter {
753753 if ( this . closed ) return ;
754754 this . closed = true ;
755755
756- if ( ! this . _client ) {
756+ if ( ! this . client ) {
757757 return ;
758758 }
759759
760760 if ( ! isImmediate ) {
761761 await this . request ( "TEARDOWN" , {
762- Session : this . _session ,
762+ Session : this . session ,
763763 } ) ;
764764 }
765765
766- this . _client . end ( ) ;
766+ this . client . end ( ) ;
767767 this . removeAllListeners ( "response" ) ;
768768
769- if ( this . _keepAliveID != undefined ) {
770- clearInterval ( this . _keepAliveID ) ;
771- this . _keepAliveID = undefined ;
769+ if ( this . keepAliveID != undefined ) {
770+ clearInterval ( this . keepAliveID ) ;
771+ this . keepAliveID = undefined ;
772772 }
773773
774774 this . isConnected = false ;
775- this . _cSeq = 0 ;
775+ this . cSeq = 0 ;
776776 }
777777
778- _onData ( data : Buffer ) : void {
778+ private onData ( data : Buffer ) : void {
779779 let index = 0 ;
780780
781781 // $
@@ -844,8 +844,8 @@ export default class RTSPClient extends EventEmitter {
844844
845845 this . emit ( "controlData" , packetChannel , packet ) ;
846846
847- const receiver_report = this . _emptyReceiverReport ( ) ;
848- this . _sendInterleavedData ( packetChannel , receiver_report ) ;
847+ const receiver_report = this . emptyReceiverReport ( ) ;
848+ this . sendInterleavedData ( packetChannel , receiver_report ) ;
849849 }
850850 this . readState = ReadStates . SEARCHING ;
851851 }
@@ -952,8 +952,8 @@ export default class RTSPClient extends EventEmitter {
952952 } // end while
953953 }
954954
955- _sendInterleavedData ( channel : number , buffer : Buffer ) : void {
956- if ( ! this . _client ) {
955+ private sendInterleavedData ( channel : number , buffer : Buffer ) : void {
956+ if ( ! this . client ) {
957957 return ;
958958 }
959959
@@ -967,18 +967,18 @@ export default class RTSPClient extends EventEmitter {
967967 header [ 3 ] = ( buffer . length >> 0 ) & 0xff ;
968968
969969 const data = Buffer . concat ( [ header , buffer ] ) ;
970- this . _client . write ( data ) ;
970+ this . client . write ( data ) ;
971971 }
972972
973- _sendUDPData ( host : string , port : number , buffer : Buffer ) : void {
973+ private sendUDPData ( host : string , port : number , buffer : Buffer ) : void {
974974 const udp = dgram . createSocket ( "udp4" ) ;
975975 udp . send ( buffer , 0 , buffer . length , port , host , ( _err , _bytes ) => {
976976 // TODO: Don't ignore errors.
977977 udp . close ( ) ;
978978 } ) ;
979979 }
980980
981- _emptyReceiverReport ( ) : Buffer {
981+ private emptyReceiverReport ( ) : Buffer {
982982 const report = Buffer . alloc ( 8 ) ;
983983 const version = 2 ;
984984 const paddingBit = 0 ;
@@ -997,7 +997,7 @@ export default class RTSPClient extends EventEmitter {
997997 return report ;
998998 }
999999
1000- async _socketWrite ( socket : SocketUnion , data : Buffer ) : Promise < void > {
1000+ private async socketWrite ( socket : SocketUnion , data : Buffer ) : Promise < void > {
10011001 return new Promise ( ( resolve , reject ) => {
10021002 setTimeout ( ( ) => {
10031003 socket . write ( data , ( error : Error | null ) => {
0 commit comments