rtp 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.rdoc +7 -0
- data/lib/rtp/receiver.rb +21 -7
- data/lib/rtp/version.rb +1 -1
- metadata +2 -2
data/History.rdoc
CHANGED
data/lib/rtp/receiver.rb
CHANGED
|
@@ -83,13 +83,22 @@ module RTP
|
|
|
83
83
|
#
|
|
84
84
|
# If a block is given, this will yield each parsed packet as an RTP::Packet.
|
|
85
85
|
# This lets you inspect packets as they come in:
|
|
86
|
-
# @example
|
|
86
|
+
# @example Just the packet
|
|
87
87
|
# receiver = RTP::Receiver.new
|
|
88
88
|
# receiver.start do |packet|
|
|
89
|
-
# puts packet
|
|
89
|
+
# puts packet.sequence_number
|
|
90
|
+
# end
|
|
91
|
+
#
|
|
92
|
+
# @example The packet and its timestamp
|
|
93
|
+
# receiver = RTP::Receiver.new
|
|
94
|
+
# receiver.start do |packet, timestamp|
|
|
95
|
+
# puts packet.sequence_number
|
|
96
|
+
# puts timestamp
|
|
90
97
|
# end
|
|
91
98
|
#
|
|
92
99
|
# @yield [RTP::Packet] Each parsed packet that comes in over the wire.
|
|
100
|
+
# @yield [Time] The timestamp from the packet as it was received on the
|
|
101
|
+
# socket.
|
|
93
102
|
#
|
|
94
103
|
# @return [Boolean] true if started successfully.
|
|
95
104
|
def start(&block)
|
|
@@ -167,10 +176,13 @@ module RTP
|
|
|
167
176
|
# This starts a new Thread for reading packets off of the list of packets
|
|
168
177
|
# that has been read in by the listener. If no block is given, this writes
|
|
169
178
|
# all received packets (in the @packets Queue) to the +capture_file+. If a
|
|
170
|
-
# block is given, it yields each packet, parsed as an RTP::Packet
|
|
179
|
+
# block is given, it yields each packet, parsed as an RTP::Packet as well as
|
|
180
|
+
# the timestamp from that packet as it was received on the socket. If
|
|
171
181
|
# +strip_headers+ is set, it only writes/yields the RTP payload to the file.
|
|
172
182
|
#
|
|
173
183
|
# @yield [RTP::Packet] Each parsed packet that comes in over the wire.
|
|
184
|
+
# @yield [Time] The timestamp from the packet as it was received on the
|
|
185
|
+
# socket.
|
|
174
186
|
# @return [Thread] The packet writer thread.
|
|
175
187
|
def start_packet_writer
|
|
176
188
|
return @packet_writer if @packet_writer
|
|
@@ -179,13 +191,16 @@ module RTP
|
|
|
179
191
|
# some I/O ano not write the packet to file?
|
|
180
192
|
Thread.start do
|
|
181
193
|
loop do
|
|
182
|
-
|
|
194
|
+
msg, timestamp = @packets.pop
|
|
195
|
+
packet = RTP::Packet.read(msg)
|
|
196
|
+
|
|
183
197
|
data_to_write = @strip_headers ? packet.rtp_payload : packet
|
|
184
198
|
|
|
185
199
|
if block_given?
|
|
186
|
-
yield data_to_write
|
|
200
|
+
yield data_to_write, timestamp
|
|
187
201
|
else
|
|
188
202
|
@capture_file.write(data_to_write)
|
|
203
|
+
@packet_timestamps << timestamp
|
|
189
204
|
end
|
|
190
205
|
end
|
|
191
206
|
end
|
|
@@ -235,8 +250,7 @@ module RTP
|
|
|
235
250
|
log "Received data at size: #{data.size}"
|
|
236
251
|
|
|
237
252
|
log "RTP timestamp from socket info: #{msg.last.timestamp}"
|
|
238
|
-
@
|
|
239
|
-
@packets << data
|
|
253
|
+
@packets << [data, msg.last.timestamp]
|
|
240
254
|
end
|
|
241
255
|
end
|
|
242
256
|
end
|
data/lib/rtp/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rtp
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.3
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2012-11-
|
|
13
|
+
date: 2012-11-22 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: bindata
|