rtsp 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog.rdoc +13 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +2 -10
- data/README.rdoc +34 -5
- data/Rakefile +0 -4
- data/bin/rtsp_client +9 -5
- data/gemspec.yml +1 -0
- data/lib/rtsp/capturer.rb +21 -8
- data/lib/rtsp/client.rb +6 -2
- data/lib/rtsp/version.rb +2 -2
- data/rtsp.gemspec +9 -166
- data/spec/rtsp/client_spec.rb +8 -0
- data/spec/rtsp/message_spec.rb +2 -2
- data/spec/rtsp_spec.rb +2 -2
- metadata +25 -28
- data/PostInstall.txt +0 -4
data/ChangeLog.rdoc
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
=== 0.1.1 / 2011-04-14
|
2
|
+
|
3
|
+
* Fixed bugs:
|
4
|
+
* gh-1: No longer use Socket::SO_REUSEADDR or Socket::SO_REUSEPORT.
|
5
|
+
* gh-2: rtsp_client now requires the installed rtsp/client.
|
6
|
+
* Capturer#run's log message now says what it's logging.
|
7
|
+
* bin/rtsp_client:
|
8
|
+
* Fixed bad description for --stream.
|
9
|
+
* Added --version.
|
10
|
+
* Updated README.rdoc:
|
11
|
+
* ...to clarify that REDIRECT isn't yet supported.
|
12
|
+
* ...with brief usage on bin/rtsp_client.
|
13
|
+
|
1
14
|
=== 0.1.0 / 2011-04-12
|
2
15
|
|
3
16
|
* Happy birthday!
|
data/Gemfile
CHANGED
@@ -8,9 +8,9 @@ gem 'sdp', '~> 0.2.2'
|
|
8
8
|
gem 'simplecov', '>= 0.4.0', :require => false, :group => :test
|
9
9
|
|
10
10
|
group :development do
|
11
|
+
gem 'bundler', '~> 1.0.0'
|
11
12
|
gem 'code_statistics', '~> 0.2.13'
|
12
13
|
gem 'cucumber'
|
13
|
-
gem 'jeweler', '~> 1.5.0'
|
14
14
|
gem 'metric_fu', '>= 2.0.0'
|
15
15
|
gem 'ore', '~> 0.7.2'
|
16
16
|
gem 'ore-core', '~> 0.1.5'
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rtsp (0.1.
|
5
|
-
rtsp
|
4
|
+
rtsp (0.1.1)
|
6
5
|
sdp (~> 0.2.2)
|
7
|
-
sdp (~> 0.2.0)
|
8
6
|
|
9
7
|
GEM
|
10
8
|
remote: http://rubygems.org/
|
@@ -45,14 +43,9 @@ GEM
|
|
45
43
|
json (>= 1.4.6)
|
46
44
|
gherkin (2.3.5-java)
|
47
45
|
json (>= 1.4.6)
|
48
|
-
git (1.2.5)
|
49
46
|
haml (3.0.25)
|
50
47
|
hirb (0.4.3)
|
51
48
|
i18n (0.5.0)
|
52
|
-
jeweler (1.5.2)
|
53
|
-
bundler (~> 1.0.0)
|
54
|
-
git (>= 1.2.5)
|
55
|
-
rake
|
56
49
|
json (1.5.1)
|
57
50
|
json (1.5.1-java)
|
58
51
|
json_pure (1.5.1)
|
@@ -119,7 +112,7 @@ GEM
|
|
119
112
|
syntax (1.0.0)
|
120
113
|
term-ansicolor (1.0.5)
|
121
114
|
thor (0.14.6)
|
122
|
-
yard (0.6.
|
115
|
+
yard (0.6.8)
|
123
116
|
|
124
117
|
PLATFORMS
|
125
118
|
java
|
@@ -129,7 +122,6 @@ DEPENDENCIES
|
|
129
122
|
bundler (~> 1.0.0)
|
130
123
|
code_statistics (~> 0.2.13)
|
131
124
|
cucumber
|
132
|
-
jeweler (~> 1.5.0)
|
133
125
|
metric_fu (>= 2.0.0)
|
134
126
|
ore (~> 0.7.2)
|
135
127
|
ore-core (~> 0.1.5)
|
data/README.rdoc
CHANGED
@@ -16,7 +16,7 @@ SDP: http://tools.ietf.org/html/rfc4566
|
|
16
16
|
|
17
17
|
== FEATURES/PROBLEMS:
|
18
18
|
|
19
|
-
* All standard RTSP methods supported.
|
19
|
+
* All standard RTSP methods supported except REDIRECT.
|
20
20
|
* Captures RTP data to a file, but doesn't ensure RTP sequencing before putting to file.
|
21
21
|
* One client object can only handle 1 stream; use a client per stream until this functionality
|
22
22
|
gets implemented.
|
@@ -25,7 +25,7 @@ gets implemented.
|
|
25
25
|
|
26
26
|
== SYNOPSIS:
|
27
27
|
|
28
|
-
|
28
|
+
=== Basic Usage
|
29
29
|
|
30
30
|
RTSP::Client.log? # => true
|
31
31
|
RTSP::Client.log = false
|
@@ -88,6 +88,31 @@ The quick get started:
|
|
88
88
|
# Check the streamed file's contents
|
89
89
|
puts client.capturer.rtp_file # => (Lots of data)
|
90
90
|
|
91
|
+
=== CLI App
|
92
|
+
|
93
|
+
RTSP also provides a +rtsp_client+ executable that allows a little talking to
|
94
|
+
an RTSP server.
|
95
|
+
|
96
|
+
Knowing which tracks are available on the server can help you determine which
|
97
|
+
tracks to use in your programmatic use of an RTSP::Client object to try to
|
98
|
+
play. Show the available aggregate control track and media control tracks:
|
99
|
+
|
100
|
+
$ rtsp_client --show-tracks rtsp://64.202.98.91/sa.sdp
|
101
|
+
|
102
|
+
Or if you want the entire SDP description from the server:
|
103
|
+
|
104
|
+
$ rtsp_client --describe rtsp://64.202.98.91/sa.sdp
|
105
|
+
|
106
|
+
And then, of course, pull a stream (this assumes you SETUP the first media
|
107
|
+
track and call play on the aggregate track):
|
108
|
+
|
109
|
+
$ rtsp_client --stream rtsp://64.202.98.91/sa.sdp
|
110
|
+
|
111
|
+
As usual, get help by:
|
112
|
+
|
113
|
+
$ rtsp_client --help
|
114
|
+
|
115
|
+
|
91
116
|
== REQUIREMENTS:
|
92
117
|
|
93
118
|
* (Tested) Rubies
|
@@ -95,12 +120,16 @@ The quick get started:
|
|
95
120
|
* RubyGems
|
96
121
|
* sdp, '~> 0.2.2'
|
97
122
|
* RubyGems (development)
|
123
|
+
* bundler, '~> 1.0.0'
|
124
|
+
* code_statistics, '~> 0.2.13'
|
125
|
+
* metric_fu, '>= 2.0.0'
|
126
|
+
* ore, '~> 0.7.2'
|
98
127
|
* ore-core, '~> 0.1.0'
|
99
|
-
* jeweler, '~> 1.5.0'
|
100
128
|
* ore-tasks, '~> 0.3.0'
|
129
|
+
* rake, '~> 0.8.7'
|
130
|
+
* rspec, '~> 2.5.0'
|
131
|
+
* simplecov, '>= 0.4.0'
|
101
132
|
* yard, '~> 0.6.0'
|
102
|
-
* metric_fu
|
103
|
-
* code_statistics, '~> 0.2.13'
|
104
133
|
|
105
134
|
== INSTALL:
|
106
135
|
|
data/Rakefile
CHANGED
data/bin/rtsp_client
CHANGED
@@ -1,10 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require 'rubygems'
|
4
3
|
require 'tempfile'
|
5
4
|
require 'optparse'
|
6
|
-
|
7
|
-
$:.unshift File.expand_path(File.dirname(__FILE__) + '/../lib/')
|
8
5
|
require 'rtsp/client'
|
9
6
|
|
10
7
|
optparse = OptionParser.new do |opts|
|
@@ -26,7 +23,7 @@ optparse = OptionParser.new do |opts|
|
|
26
23
|
end
|
27
24
|
|
28
25
|
rtsp_client = RTSP::Client.new(url)
|
29
|
-
|
26
|
+
puts rtsp_client.describe.body.inspect
|
30
27
|
exit
|
31
28
|
end
|
32
29
|
|
@@ -47,7 +44,7 @@ optparse = OptionParser.new do |opts|
|
|
47
44
|
|
48
45
|
#----------------------------------------------------------------------------
|
49
46
|
# Stream
|
50
|
-
opts.on('--stream [URL]', "
|
47
|
+
opts.on('--stream [URL]', "Pull the first media stream from the given URL.") do |url|
|
51
48
|
if url.nil?
|
52
49
|
puts "Must pass in a URL."
|
53
50
|
exit
|
@@ -113,6 +110,13 @@ optparse = OptionParser.new do |opts|
|
|
113
110
|
end
|
114
111
|
end
|
115
112
|
|
113
|
+
#----------------------------------------------------------------------------
|
114
|
+
# Help
|
115
|
+
opts.on('--version', "The version of the Ruby RTSP gem used for this.") do
|
116
|
+
puts RTSP::VERSION
|
117
|
+
exit
|
118
|
+
end
|
119
|
+
|
116
120
|
#----------------------------------------------------------------------------
|
117
121
|
# Help
|
118
122
|
opts.on('-h', '--help', "You're looking at it.") do
|
data/gemspec.yml
CHANGED
data/lib/rtsp/capturer.rb
CHANGED
@@ -47,6 +47,7 @@ module RTSP
|
|
47
47
|
@transport_protocol = transport_protocol
|
48
48
|
@rtp_port = rtp_port
|
49
49
|
@rtp_file = rtp_capture_file || Tempfile.new(DEFAULT_CAPFILE_NAME)
|
50
|
+
@run = false
|
50
51
|
end
|
51
52
|
|
52
53
|
# Initializes a server of the correct socket type.
|
@@ -68,22 +69,36 @@ module RTSP
|
|
68
69
|
|
69
70
|
# Starts capturing data on +@rtp_port+ and writes it to +@rtp_file+.
|
70
71
|
def run
|
71
|
-
server = init_server
|
72
|
+
@server = init_server
|
73
|
+
@run = true
|
72
74
|
|
73
|
-
|
74
|
-
|
75
|
-
|
75
|
+
RTSP::Client.log "Starting #{self.class} on port #{@rtp_port}..."
|
76
|
+
while @run
|
77
|
+
data = @server.recvfrom(MAX_BYTES_TO_RECEIVE).first
|
78
|
+
RTSP::Client.log "#{self.class} received data with size: #{data.size}"
|
76
79
|
@rtp_file.write data
|
77
80
|
end
|
78
81
|
end
|
79
82
|
|
83
|
+
# Returns if the run loop is in action.
|
84
|
+
#
|
85
|
+
# @return [Boolean] true if the run loop is running.
|
86
|
+
def running?
|
87
|
+
@run
|
88
|
+
end
|
89
|
+
|
90
|
+
# Breaks out of the run loop.
|
91
|
+
def stop
|
92
|
+
RTSP::Client.log "Stopping #{self.class} on port #{@rtp_port}..."
|
93
|
+
@run = false
|
94
|
+
@server.close
|
95
|
+
end
|
96
|
+
|
80
97
|
# Sets up to receive data on a UDP socket, using +@rtp_port+.
|
81
98
|
#
|
82
99
|
# @return [UDPSocket]
|
83
100
|
def init_udp_server
|
84
101
|
server = UDPSocket.open
|
85
|
-
server.setsockopt(Socket::SOL_SOCKET, Socket::SO_REUSEADDR, true)
|
86
|
-
server.setsockopt(Socket::SOL_SOCKET, Socket::SO_REUSEPORT, true)
|
87
102
|
server.bind('0.0.0.0', @rtp_port)
|
88
103
|
RTSP::Client.log "UDP server setup to receive on port #{@rtp_port}"
|
89
104
|
|
@@ -95,8 +110,6 @@ module RTSP
|
|
95
110
|
# @return [TCPSocket]
|
96
111
|
def init_tcp_server
|
97
112
|
server = TCPSocket.new('0.0.0.0', @rtp_port)
|
98
|
-
server.setsockopt(Socket::SOL_SOCKET, Socket::SO_REUSEADDR, true)
|
99
|
-
server.setsockopt(Socket::SOL_SOCKET, Socket::SO_REUSEPORT, true)
|
100
113
|
RTSP::Client.log "TCP server setup to receive on port #{@rtp_port}"
|
101
114
|
|
102
115
|
server
|
data/lib/rtsp/client.rb
CHANGED
@@ -292,8 +292,10 @@ module RTSP
|
|
292
292
|
if @play_thread.nil?
|
293
293
|
RTSP::Client.log "Capturing RTP data on port #{@transport[:client_port][:rtp]}"
|
294
294
|
|
295
|
-
@
|
296
|
-
@
|
295
|
+
unless @capturer.running?
|
296
|
+
@play_thread = Thread.new do
|
297
|
+
@capturer.run
|
298
|
+
end
|
297
299
|
end
|
298
300
|
end
|
299
301
|
|
@@ -333,7 +335,9 @@ module RTSP
|
|
333
335
|
|
334
336
|
request(message) do
|
335
337
|
reset_state
|
338
|
+
|
336
339
|
if @play_thread
|
340
|
+
@capturer.stop
|
337
341
|
@capturer.rtp_file.close
|
338
342
|
@play_thread.exit
|
339
343
|
end
|
data/lib/rtsp/version.rb
CHANGED
data/rtsp.gemspec
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('lib/', File.dirname(__FILE__))
|
3
|
+
$:.unshift lib unless $:.include?(lib)
|
4
|
+
|
5
|
+
require 'rtsp/version'
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version =
|
8
|
+
s.name = "rtsp"
|
9
|
+
s.version = RTSP::VERSION
|
9
10
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.3.6") if s.respond_to? :required_rubygems_version=
|
11
12
|
s.authors = ["Steve Loveless, Mike Kirby"]
|
12
|
-
s.date = %q{2011-04-
|
13
|
-
s.default_executable = %q{rtsp_client}
|
13
|
+
s.date = %q{2011-04-14}
|
14
14
|
s.description = %q{This library intends to follow the RTSP RFC document (2326) to allow for working with RTSP servers. At this point, it's up to you to parse the data from a play call, but we'll get there. ...eventually.
|
15
15
|
For more information
|
16
16
|
RTSP: http://www.ietf.org/rfc/rfc2326.txt}
|
@@ -30,7 +30,6 @@ RTSP: http://www.ietf.org/rfc/rfc2326.txt}
|
|
30
30
|
"Gemfile",
|
31
31
|
"Gemfile.lock",
|
32
32
|
"LICENSE.rdoc",
|
33
|
-
"PostInstall.txt",
|
34
33
|
"README.rdoc",
|
35
34
|
"Rakefile",
|
36
35
|
"bin/rtsp_client",
|
@@ -42,7 +41,6 @@ RTSP: http://www.ietf.org/rfc/rfc2326.txt}
|
|
42
41
|
"features/step_definitions/control_streams_as_client_steps.rb",
|
43
42
|
"features/support/env.rb",
|
44
43
|
"features/support/hooks.rb",
|
45
|
-
"gemspec.yml",
|
46
44
|
"lib/ext/logger.rb",
|
47
45
|
"lib/rtsp.rb",
|
48
46
|
"lib/rtsp/capturer.rb",
|
@@ -54,10 +52,7 @@ RTSP: http://www.ietf.org/rfc/rfc2326.txt}
|
|
54
52
|
"lib/rtsp/response.rb",
|
55
53
|
"lib/rtsp/transport_parser.rb",
|
56
54
|
"lib/rtsp/version.rb",
|
57
|
-
"nsm_test.rb",
|
58
55
|
"rtsp.gemspec",
|
59
|
-
"sarix_test.rb",
|
60
|
-
"soma_test.rb",
|
61
56
|
"spec/.rspec",
|
62
57
|
"spec/rtsp/client_spec.rb",
|
63
58
|
"spec/rtsp/helpers_spec.rb",
|
@@ -75,9 +70,10 @@ RTSP: http://www.ietf.org/rfc/rfc2326.txt}
|
|
75
70
|
s.licenses = ["MIT"]
|
76
71
|
s.require_paths = ["lib"]
|
77
72
|
s.rubyforge_project = %q{rtsp}
|
78
|
-
s.rubygems_version = %q{1.
|
73
|
+
s.rubygems_version = %q{1.7.2}
|
79
74
|
s.summary = %q{Library to allow RTSP streaming from RTSP-enabled devices.}
|
80
75
|
s.test_files = [
|
76
|
+
"spec/rtsp_spec.rb",
|
81
77
|
"spec/rtsp/client_spec.rb",
|
82
78
|
"spec/rtsp/helpers_spec.rb",
|
83
79
|
"spec/rtsp/message_spec.rb",
|
@@ -90,7 +86,6 @@ RTSP: http://www.ietf.org/rfc/rfc2326.txt}
|
|
90
86
|
s.specification_version = 3
|
91
87
|
|
92
88
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
93
|
-
s.add_runtime_dependency(%q<sdp>, ["~> 0.2.0"])
|
94
89
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
95
90
|
s.add_development_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
96
91
|
s.add_development_dependency(%q<metric_fu>, [">= 2.0.0"])
|
@@ -101,59 +96,8 @@ RTSP: http://www.ietf.org/rfc/rfc2326.txt}
|
|
101
96
|
s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
|
102
97
|
s.add_development_dependency(%q<simplecov>, [">= 0.4.0"])
|
103
98
|
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
104
|
-
s.add_runtime_dependency(%q<rtsp>, [">= 0"])
|
105
99
|
s.add_runtime_dependency(%q<sdp>, ["~> 0.2.2"])
|
106
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
107
|
-
s.add_development_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
108
|
-
s.add_development_dependency(%q<metric_fu>, [">= 2.0.0"])
|
109
|
-
s.add_development_dependency(%q<ore>, ["~> 0.7.2"])
|
110
|
-
s.add_development_dependency(%q<ore-core>, ["~> 0.1.5"])
|
111
|
-
s.add_development_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
112
|
-
s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
|
113
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
|
114
|
-
s.add_development_dependency(%q<simplecov>, [">= 0.4.0"])
|
115
|
-
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
116
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
117
|
-
s.add_development_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
118
|
-
s.add_development_dependency(%q<metric_fu>, [">= 2.0.0"])
|
119
|
-
s.add_development_dependency(%q<ore>, ["~> 0.7.2"])
|
120
|
-
s.add_development_dependency(%q<ore-core>, ["~> 0.1.5"])
|
121
|
-
s.add_development_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
122
|
-
s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
|
123
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
|
124
|
-
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
125
|
-
s.add_development_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
126
|
-
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
127
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.5.0"])
|
128
|
-
s.add_development_dependency(%q<metric_fu>, [">= 2.0.0"])
|
129
|
-
s.add_development_dependency(%q<ore>, ["~> 0.7.2"])
|
130
|
-
s.add_development_dependency(%q<ore-core>, ["~> 0.1.5"])
|
131
|
-
s.add_development_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
132
|
-
s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
|
133
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
|
134
|
-
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
135
|
-
s.add_development_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
136
|
-
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
137
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.5.0"])
|
138
|
-
s.add_development_dependency(%q<metric_fu>, [">= 2.0.0"])
|
139
|
-
s.add_development_dependency(%q<ore>, ["~> 0.7.2"])
|
140
|
-
s.add_development_dependency(%q<ore-core>, ["~> 0.1.5"])
|
141
|
-
s.add_development_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
142
|
-
s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
|
143
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
|
144
|
-
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
145
|
-
s.add_development_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
146
|
-
s.add_development_dependency(%q<cucumber>, [">= 0"])
|
147
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.5.0"])
|
148
|
-
s.add_development_dependency(%q<metric_fu>, [">= 2.0.0"])
|
149
|
-
s.add_development_dependency(%q<ore>, ["~> 0.7.2"])
|
150
|
-
s.add_development_dependency(%q<ore-core>, ["~> 0.1.5"])
|
151
|
-
s.add_development_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
152
|
-
s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
|
153
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
|
154
|
-
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
155
100
|
else
|
156
|
-
s.add_dependency(%q<sdp>, ["~> 0.2.0"])
|
157
101
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
158
102
|
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
159
103
|
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
@@ -164,60 +108,9 @@ RTSP: http://www.ietf.org/rfc/rfc2326.txt}
|
|
164
108
|
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
165
109
|
s.add_dependency(%q<simplecov>, [">= 0.4.0"])
|
166
110
|
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
167
|
-
s.add_dependency(%q<rtsp>, [">= 0"])
|
168
111
|
s.add_dependency(%q<sdp>, ["~> 0.2.2"])
|
169
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
170
|
-
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
171
|
-
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
172
|
-
s.add_dependency(%q<ore>, ["~> 0.7.2"])
|
173
|
-
s.add_dependency(%q<ore-core>, ["~> 0.1.5"])
|
174
|
-
s.add_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
175
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
176
|
-
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
177
|
-
s.add_dependency(%q<simplecov>, [">= 0.4.0"])
|
178
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
179
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
180
|
-
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
181
|
-
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
182
|
-
s.add_dependency(%q<ore>, ["~> 0.7.2"])
|
183
|
-
s.add_dependency(%q<ore-core>, ["~> 0.1.5"])
|
184
|
-
s.add_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
185
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
186
|
-
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
187
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
188
|
-
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
189
|
-
s.add_dependency(%q<cucumber>, [">= 0"])
|
190
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.0"])
|
191
|
-
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
192
|
-
s.add_dependency(%q<ore>, ["~> 0.7.2"])
|
193
|
-
s.add_dependency(%q<ore-core>, ["~> 0.1.5"])
|
194
|
-
s.add_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
195
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
196
|
-
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
197
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
198
|
-
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
199
|
-
s.add_dependency(%q<cucumber>, [">= 0"])
|
200
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.0"])
|
201
|
-
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
202
|
-
s.add_dependency(%q<ore>, ["~> 0.7.2"])
|
203
|
-
s.add_dependency(%q<ore-core>, ["~> 0.1.5"])
|
204
|
-
s.add_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
205
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
206
|
-
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
207
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
208
|
-
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
209
|
-
s.add_dependency(%q<cucumber>, [">= 0"])
|
210
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.0"])
|
211
|
-
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
212
|
-
s.add_dependency(%q<ore>, ["~> 0.7.2"])
|
213
|
-
s.add_dependency(%q<ore-core>, ["~> 0.1.5"])
|
214
|
-
s.add_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
215
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
216
|
-
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
217
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
218
112
|
end
|
219
113
|
else
|
220
|
-
s.add_dependency(%q<sdp>, ["~> 0.2.0"])
|
221
114
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
222
115
|
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
223
116
|
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
@@ -228,57 +121,7 @@ RTSP: http://www.ietf.org/rfc/rfc2326.txt}
|
|
228
121
|
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
229
122
|
s.add_dependency(%q<simplecov>, [">= 0.4.0"])
|
230
123
|
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
231
|
-
s.add_dependency(%q<rtsp>, [">= 0"])
|
232
124
|
s.add_dependency(%q<sdp>, ["~> 0.2.2"])
|
233
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
234
|
-
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
235
|
-
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
236
|
-
s.add_dependency(%q<ore>, ["~> 0.7.2"])
|
237
|
-
s.add_dependency(%q<ore-core>, ["~> 0.1.5"])
|
238
|
-
s.add_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
239
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
240
|
-
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
241
|
-
s.add_dependency(%q<simplecov>, [">= 0.4.0"])
|
242
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
243
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
244
|
-
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
245
|
-
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
246
|
-
s.add_dependency(%q<ore>, ["~> 0.7.2"])
|
247
|
-
s.add_dependency(%q<ore-core>, ["~> 0.1.5"])
|
248
|
-
s.add_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
249
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
250
|
-
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
251
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
252
|
-
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
253
|
-
s.add_dependency(%q<cucumber>, [">= 0"])
|
254
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.0"])
|
255
|
-
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
256
|
-
s.add_dependency(%q<ore>, ["~> 0.7.2"])
|
257
|
-
s.add_dependency(%q<ore-core>, ["~> 0.1.5"])
|
258
|
-
s.add_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
259
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
260
|
-
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
261
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
262
|
-
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
263
|
-
s.add_dependency(%q<cucumber>, [">= 0"])
|
264
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.0"])
|
265
|
-
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
266
|
-
s.add_dependency(%q<ore>, ["~> 0.7.2"])
|
267
|
-
s.add_dependency(%q<ore-core>, ["~> 0.1.5"])
|
268
|
-
s.add_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
269
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
270
|
-
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
271
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
272
|
-
s.add_dependency(%q<code_statistics>, ["~> 0.2.13"])
|
273
|
-
s.add_dependency(%q<cucumber>, [">= 0"])
|
274
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.0"])
|
275
|
-
s.add_dependency(%q<metric_fu>, [">= 2.0.0"])
|
276
|
-
s.add_dependency(%q<ore>, ["~> 0.7.2"])
|
277
|
-
s.add_dependency(%q<ore-core>, ["~> 0.1.5"])
|
278
|
-
s.add_dependency(%q<ore-tasks>, ["~> 0.5.0"])
|
279
|
-
s.add_dependency(%q<rake>, ["~> 0.8.7"])
|
280
|
-
s.add_dependency(%q<rspec>, ["~> 2.5.0"])
|
281
|
-
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
282
125
|
end
|
283
126
|
end
|
284
127
|
|
data/spec/rtsp/client_spec.rb
CHANGED
@@ -203,6 +203,10 @@ describe RTSP::Client do
|
|
203
203
|
@client = setup_client_at "rtsp://localhost"
|
204
204
|
end
|
205
205
|
|
206
|
+
after :each do
|
207
|
+
@client.teardown "rtsp://localhost"
|
208
|
+
end
|
209
|
+
|
206
210
|
it "changes the session_state to :playing" do
|
207
211
|
@client.setup("rtsp://localhost/some_track")
|
208
212
|
@client.play("rtsp://localhost/some_track")
|
@@ -222,6 +226,10 @@ describe RTSP::Client do
|
|
222
226
|
@client.setup("rtsp://localhost/some_track")
|
223
227
|
end
|
224
228
|
|
229
|
+
after :each do
|
230
|
+
@client.teardown "rtsp://localhost"
|
231
|
+
end
|
232
|
+
|
225
233
|
it "changes the session_state from :playing to :ready" do
|
226
234
|
@client.play("rtsp://localhost/some_track")
|
227
235
|
@client.pause("rtsp://localhost/some_track")
|
data/spec/rtsp/message_spec.rb
CHANGED
@@ -23,13 +23,13 @@ describe "RTSP::Message" do
|
|
23
23
|
context "builds an OPTIONS string" do
|
24
24
|
it "with default sequence number" do
|
25
25
|
message = RTSP::Message.options(@stream)
|
26
|
-
message.to_s.should == "OPTIONS rtsp://1.2.3.4:554/stream1 RTSP/1.0\r\nCSeq: 1\r\nUser-Agent: RubyRTSP
|
26
|
+
message.to_s.should == "OPTIONS rtsp://1.2.3.4:554/stream1 RTSP/1.0\r\nCSeq: 1\r\nUser-Agent: RubyRTSP/#{RTSP::VERSION} (Ruby #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL})\r\n\r\n"
|
27
27
|
end
|
28
28
|
|
29
29
|
it "with new sequence number" do
|
30
30
|
message = RTSP::Message.options(@stream)
|
31
31
|
message.header :cseq, 2345
|
32
|
-
message.to_s.should == "OPTIONS rtsp://1.2.3.4:554/stream1 RTSP/1.0\r\nCSeq: 2345\r\nUser-Agent: RubyRTSP
|
32
|
+
message.to_s.should == "OPTIONS rtsp://1.2.3.4:554/stream1 RTSP/1.0\r\nCSeq: 2345\r\nUser-Agent: RubyRTSP/#{RTSP::VERSION} (Ruby #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL})\r\n\r\n"
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
data/spec/rtsp_spec.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtsp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-04-
|
13
|
-
default_executable:
|
12
|
+
date: 2011-04-14 00:00:00.000000000Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: sdp
|
17
|
-
requirement: &
|
16
|
+
requirement: &2156988080 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
19
|
- - ~>
|
@@ -22,10 +21,10 @@ dependencies:
|
|
22
21
|
version: 0.2.0
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
24
|
+
version_requirements: *2156988080
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
26
|
name: bundler
|
28
|
-
requirement: &
|
27
|
+
requirement: &2156986820 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
31
30
|
- - ~>
|
@@ -33,10 +32,10 @@ dependencies:
|
|
33
32
|
version: 1.0.0
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
35
|
+
version_requirements: *2156986820
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
37
|
name: code_statistics
|
39
|
-
requirement: &
|
38
|
+
requirement: &2156985280 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
41
|
- - ~>
|
@@ -44,10 +43,10 @@ dependencies:
|
|
44
43
|
version: 0.2.13
|
45
44
|
type: :development
|
46
45
|
prerelease: false
|
47
|
-
version_requirements: *
|
46
|
+
version_requirements: *2156985280
|
48
47
|
- !ruby/object:Gem::Dependency
|
49
48
|
name: metric_fu
|
50
|
-
requirement: &
|
49
|
+
requirement: &2156983560 !ruby/object:Gem::Requirement
|
51
50
|
none: false
|
52
51
|
requirements:
|
53
52
|
- - ! '>='
|
@@ -55,10 +54,10 @@ dependencies:
|
|
55
54
|
version: 2.0.0
|
56
55
|
type: :development
|
57
56
|
prerelease: false
|
58
|
-
version_requirements: *
|
57
|
+
version_requirements: *2156983560
|
59
58
|
- !ruby/object:Gem::Dependency
|
60
59
|
name: ore
|
61
|
-
requirement: &
|
60
|
+
requirement: &2156982380 !ruby/object:Gem::Requirement
|
62
61
|
none: false
|
63
62
|
requirements:
|
64
63
|
- - ~>
|
@@ -66,10 +65,10 @@ dependencies:
|
|
66
65
|
version: 0.7.2
|
67
66
|
type: :development
|
68
67
|
prerelease: false
|
69
|
-
version_requirements: *
|
68
|
+
version_requirements: *2156982380
|
70
69
|
- !ruby/object:Gem::Dependency
|
71
70
|
name: ore-core
|
72
|
-
requirement: &
|
71
|
+
requirement: &2156980460 !ruby/object:Gem::Requirement
|
73
72
|
none: false
|
74
73
|
requirements:
|
75
74
|
- - ~>
|
@@ -77,10 +76,10 @@ dependencies:
|
|
77
76
|
version: 0.1.5
|
78
77
|
type: :development
|
79
78
|
prerelease: false
|
80
|
-
version_requirements: *
|
79
|
+
version_requirements: *2156980460
|
81
80
|
- !ruby/object:Gem::Dependency
|
82
81
|
name: ore-tasks
|
83
|
-
requirement: &
|
82
|
+
requirement: &2156979060 !ruby/object:Gem::Requirement
|
84
83
|
none: false
|
85
84
|
requirements:
|
86
85
|
- - ~>
|
@@ -88,10 +87,10 @@ dependencies:
|
|
88
87
|
version: 0.5.0
|
89
88
|
type: :development
|
90
89
|
prerelease: false
|
91
|
-
version_requirements: *
|
90
|
+
version_requirements: *2156979060
|
92
91
|
- !ruby/object:Gem::Dependency
|
93
92
|
name: rake
|
94
|
-
requirement: &
|
93
|
+
requirement: &2156977860 !ruby/object:Gem::Requirement
|
95
94
|
none: false
|
96
95
|
requirements:
|
97
96
|
- - ~>
|
@@ -99,10 +98,10 @@ dependencies:
|
|
99
98
|
version: 0.8.7
|
100
99
|
type: :development
|
101
100
|
prerelease: false
|
102
|
-
version_requirements: *
|
101
|
+
version_requirements: *2156977860
|
103
102
|
- !ruby/object:Gem::Dependency
|
104
103
|
name: rspec
|
105
|
-
requirement: &
|
104
|
+
requirement: &2156971260 !ruby/object:Gem::Requirement
|
106
105
|
none: false
|
107
106
|
requirements:
|
108
107
|
- - ~>
|
@@ -110,10 +109,10 @@ dependencies:
|
|
110
109
|
version: 2.5.0
|
111
110
|
type: :development
|
112
111
|
prerelease: false
|
113
|
-
version_requirements: *
|
112
|
+
version_requirements: *2156971260
|
114
113
|
- !ruby/object:Gem::Dependency
|
115
114
|
name: simplecov
|
116
|
-
requirement: &
|
115
|
+
requirement: &2156966860 !ruby/object:Gem::Requirement
|
117
116
|
none: false
|
118
117
|
requirements:
|
119
118
|
- - ! '>='
|
@@ -121,10 +120,10 @@ dependencies:
|
|
121
120
|
version: 0.4.0
|
122
121
|
type: :development
|
123
122
|
prerelease: false
|
124
|
-
version_requirements: *
|
123
|
+
version_requirements: *2156966860
|
125
124
|
- !ruby/object:Gem::Dependency
|
126
125
|
name: yard
|
127
|
-
requirement: &
|
126
|
+
requirement: &2156965240 !ruby/object:Gem::Requirement
|
128
127
|
none: false
|
129
128
|
requirements:
|
130
129
|
- - ~>
|
@@ -132,7 +131,7 @@ dependencies:
|
|
132
131
|
version: 0.6.0
|
133
132
|
type: :development
|
134
133
|
prerelease: false
|
135
|
-
version_requirements: *
|
134
|
+
version_requirements: *2156965240
|
136
135
|
description: ! 'This library intends to follow the RTSP RFC document (2326) to allow
|
137
136
|
for working with RTSP servers. At this point, it''s up to you to parse the data
|
138
137
|
from a play call, but we''ll get there. ...eventually.
|
@@ -157,7 +156,6 @@ files:
|
|
157
156
|
- Gemfile
|
158
157
|
- Gemfile.lock
|
159
158
|
- LICENSE.rdoc
|
160
|
-
- PostInstall.txt
|
161
159
|
- README.rdoc
|
162
160
|
- Rakefile
|
163
161
|
- bin/rtsp_client
|
@@ -197,7 +195,6 @@ files:
|
|
197
195
|
- tasks/metrics.rake
|
198
196
|
- tasks/roodi_config.yml
|
199
197
|
- tasks/stats.rake
|
200
|
-
has_rdoc: yard
|
201
198
|
homepage: http://rubygems.org/gems/rtsp
|
202
199
|
licenses:
|
203
200
|
- MIT
|
@@ -219,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
216
|
version: 1.3.6
|
220
217
|
requirements: []
|
221
218
|
rubyforge_project: rtsp
|
222
|
-
rubygems_version: 1.
|
219
|
+
rubygems_version: 1.7.2
|
223
220
|
signing_key:
|
224
221
|
specification_version: 3
|
225
222
|
summary: Library to allow RTSP streaming from RTSP-enabled devices.
|
data/PostInstall.txt
DELETED