@@ -18,24 +18,26 @@ const start = function (args) {
18
18
19
19
client = dgram . createSocket ( { type : "udp4" , reuseAddr : true } ) ;
20
20
21
- //other constants
21
+ // Error handling
22
+ client . on ( "error" , ( err ) => {
23
+ console . error ( `Socket error: ${ err . stack } ` ) ;
24
+ } ) ;
25
+
26
+ client . on ( "listening" , function ( ) {
27
+ client . addMembership ( args . mcast , args . networkInterface ) ;
28
+ } ) ;
29
+
30
+ // Constants
22
31
const bufferSize = 1024 ;
23
32
const jitterBufferSize = args . jitterBufferEnabled ? args . jitterBufferSize : 0 ;
24
-
25
- //set up constants for lates use
26
33
const samplesPerPacket = Math . round ( ( args . samplerate / 1000 ) * args . ptime ) ;
27
34
const bytesPerSample = args . codec == "L24" ? 3 : 2 ;
28
35
const pcmDataSize = samplesPerPacket * bytesPerSample * args . channels ;
29
36
const packetSize = pcmDataSize + 12 ;
30
37
const pcmL16out = Buffer . alloc ( samplesPerPacket * 4 * bufferSize ) ;
31
38
32
- //vars
33
39
let seqInternal = - 1 ;
34
40
35
- client . on ( "listening" , function ( ) {
36
- client . addMembership ( args . mcast , args . networkInterface ) ;
37
- } ) ;
38
-
39
41
client . on ( "message" , function ( buffer , remote ) {
40
42
if ( buffer . length != packetSize || remote . address != args . addr ) {
41
43
return ;
@@ -79,7 +81,7 @@ const start = function (args) {
79
81
rtAudio = new RtAudio ( args . audioAPI ) ;
80
82
let devices = rtAudio . getDevices ( ) ;
81
83
let id ;
82
- var found = false ;
84
+ let found = false ;
83
85
let defaultOutputDevice ;
84
86
85
87
for ( let i = 0 ; i < devices . length ; i ++ ) {
@@ -104,15 +106,19 @@ const start = function (args) {
104
106
id = defaultOutputDevice . id ;
105
107
}
106
108
107
- rtAudio . openStream (
108
- { deviceId : id , nChannels : 2 , firstChannel : 0 } ,
109
- null ,
110
- RtAudioFormat . RTAUDIO_SINT16 ,
111
- args . samplerate ,
112
- samplesPerPacket ,
113
- "AES67 Monitor"
114
- ) ;
115
- rtAudio . start ( ) ;
109
+ try {
110
+ rtAudio . openStream (
111
+ { deviceId : id , nChannels : 2 , firstChannel : 0 } ,
112
+ null ,
113
+ RtAudioFormat . RTAUDIO_SINT16 ,
114
+ args . samplerate ,
115
+ samplesPerPacket ,
116
+ "AES67 Monitor"
117
+ ) ;
118
+ rtAudio . start ( ) ;
119
+ } catch ( error ) {
120
+ console . error ( "Error during stream setup:" , error ) ;
121
+ }
116
122
117
123
client . bind ( 5004 ) ;
118
124
streamOpen = true ;
0 commit comments