rtsp 0.1.0 → 0.1.1
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/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