contrib/rtp: Enhance RTP replay tool

This patch adds optional parameters to pass the state file, the
destination address (default 127.0.0.1), the destination port
(default 4000), the source port (default 0). So it is called as
follows:

    gst rtp_replay.st -a [FILE [HOST [SOURCEPORT [DESTPORT]]]]

In addition, nonexistant FILEs are no longer created but opened
read-only instead.

Sponsored-by: On-Waves ehf
This commit is contained in:
Jacob Erlbeck 2013-12-13 13:18:19 +01:00 committed by Holger Hans Peter Freyther
parent e828b661a7
commit 8b66649883
2 changed files with 19 additions and 5 deletions

View File

@ -7,11 +7,15 @@ FileStream fileIn: 'rtp_replay_shared.st'.
Eval [ Eval [
| replay | | replay file host dport |
file := Smalltalk arguments at: 1 ifAbsent: [ 'rtpstream.state' ].
host := Smalltalk arguments at: 2 ifAbsent: [ '127.0.0.1' ].
dport := (Smalltalk arguments at: 3 ifAbsent: [ '4000' ]) asInteger.
sport := (Smalltalk arguments at: 4 ifAbsent: [ '0' ]) asInteger.
replay := RTPReplay on: Smalltalk arguments first. replay := RTPReplay on: file fromPort: sport.
Transcript nextPutAll: 'Going to stream now'; nl. Transcript nextPutAll: 'Going to stream now'; nl.
replay streamAudio: '127.0.0.1' port: 4000. replay streamAudio: host port: dport.
] ]

View File

@ -42,8 +42,18 @@ Object subclass: RTPReplay [
file: aFile; yourself file: aFile; yourself
] ]
RTPReplay class >> on: aFile fromPort: aPort [
^ self new
initialize: aPort;
file: aFile; yourself
]
initialize [ initialize [
socket := Sockets.DatagramSocket new. self initialize: 0.
]
initialize: aPort [
socket := Sockets.DatagramSocket local: '0.0.0.0' port: aPort.
] ]
file: aFile [ file: aFile [
@ -59,7 +69,7 @@ Object subclass: RTPReplay [
last_time := nil. last_time := nil.
last_image := nil. last_image := nil.
file := FileStream open: filename. file := FileStream open: filename mode: #read.
"Send the payload" "Send the payload"
dest := Sockets.SocketAddress byName: aHost. dest := Sockets.SocketAddress byName: aHost.