diff options
Diffstat (limited to 'openbsc/contrib/rtp/rtp_replay_shared.st')
-rw-r--r-- | openbsc/contrib/rtp/rtp_replay_shared.st | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/openbsc/contrib/rtp/rtp_replay_shared.st b/openbsc/contrib/rtp/rtp_replay_shared.st deleted file mode 100644 index 7b68c0f5e..000000000 --- a/openbsc/contrib/rtp/rtp_replay_shared.st +++ /dev/null @@ -1,118 +0,0 @@ -" -Simple UDP replay from the state files -" - -PackageLoader fileInPackage: #Sockets. - -Object subclass: SDPUtils [ - "Look into using PetitParser." - SDPUtils class >> findPort: aSDP [ - aSDP linesDo: [:line | - (line startsWith: 'm=audio ') ifTrue: [ - | stream | - stream := line readStream - skip: 'm=audio ' size; - yourself. - ^ Number readFrom: stream. - ] - ]. - - ^ self error: 'Not found'. - ] - - SDPUtils class >> findHost: aSDP [ - aSDP linesDo: [:line | - (line startsWith: 'c=IN IP4 ') ifTrue: [ - | stream | - ^ stream := line readStream - skip: 'c=IN IP4 ' size; - upToEnd. - ] - ]. - - ^ self error: 'Not found'. - ] -] - -Object subclass: RTPReplay [ - | filename socket | - RTPReplay class >> on: aFile [ - ^ self new - initialize; - file: aFile; yourself - ] - - RTPReplay class >> on: aFile fromPort: aPort [ - ^ self new - initialize: aPort; - file: aFile; yourself - ] - - initialize [ - self initialize: 0. - ] - - initialize: aPort [ - socket := Sockets.DatagramSocket local: '0.0.0.0' port: aPort. - ] - - file: aFile [ - filename := aFile - ] - - localPort [ - ^ socket port - ] - - streamAudio: aHost port: aPort [ - | file last_time last_image udp_send dest | - - last_time := nil. - last_image := nil. - file := FileStream open: filename mode: #read. - - "Send the payload" - dest := Sockets.SocketAddress byName: aHost. - udp_send := [:payload | | datagram | - datagram := Sockets.Datagram data: payload contents address: dest port: aPort. - socket nextPut: datagram - ]. - - [file atEnd] whileFalse: [ - | lineStream time data now_image | - lineStream := file nextLine readStream. - - "Read the time, skip the blank, parse the data" - time := Number readFrom: lineStream. - lineStream skip: 1. - - data := WriteStream on: (ByteArray new: 30). - [lineStream atEnd] whileFalse: [ - | hex | - hex := lineStream next: 2. - data nextPut: (Number readFrom: hex readStream radix: 16). - ]. - - last_time isNil - ifTrue: [ - "First time, send it right now" - last_time := time. - last_image := Time millisecondClockValue. - udp_send value: data. - ] - ifFalse: [ - | wait_image new_image_time | - - "How long to wait?" - wait_image := last_image + ((time - last_time) * 1000). - [ wait_image > Time millisecondClockValue ] - whileTrue: [Processor yield]. - - udp_send value: data. - last_time := time. - last_image := wait_image. - ] - ] - ] -] - |