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 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.0)
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.7)
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
- The quick get started:
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
@@ -17,10 +17,6 @@ rescue Bundler::BundlerError => e
17
17
  exit e.status_code
18
18
  end
19
19
 
20
- require 'ore/specification'
21
- require 'jeweler'
22
- Jeweler::Tasks.new(Ore::Specification.new)
23
-
24
20
  require 'ore/tasks'
25
21
  Ore::Tasks.new
26
22
 
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
- p rtsp_client.describe.body.inspect
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]', "Show available tracks from the given URL.") do |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
@@ -12,6 +12,7 @@ authors: Steve Loveless, Mike Kirby
12
12
  email: steve.loveless@gmail.com, mkiby@gmail.com
13
13
  homepage: http://rubygems.org/gems/rtsp
14
14
  has_yard: true
15
+ bindir: 'bin'
15
16
  executables: 'bin/rtsp_client'
16
17
 
17
18
  dependencies:
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
- loop do
74
- data = server.recvfrom(MAX_BYTES_TO_RECEIVE).first
75
- RTSP::Client.log data.size
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
- @play_thread = Thread.new do
296
- @capturer.run
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
@@ -1,4 +1,4 @@
1
1
  module RTSP
2
2
  # rtsp version
3
- VERSION = "0.1.0"
4
- end
3
+ VERSION = "0.1.1"
4
+ end
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 = %q{rtsp}
8
- s.version = "0.1.0"
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-12}
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.6.2}
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
 
@@ -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")
@@ -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/0.1.0 (Ruby #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL})\r\n\r\n"
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/0.1.0 (Ruby #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL})\r\n\r\n"
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
@@ -21,7 +21,7 @@ describe RTSP do
21
21
  RTSP.const_defined?('VERSION').should be_true
22
22
  end
23
23
 
24
- it "has version 0.1.0" do
25
- RTSP::VERSION.should == '0.1.0'
24
+ it "has version 0.1.1" do
25
+ RTSP::VERSION.should == '0.1.1'
26
26
  end
27
27
  end
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.0
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-12 00:00:00.000000000 -07:00
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: &2168684780 !ruby/object:Gem::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: *2168684780
24
+ version_requirements: *2156988080
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: bundler
28
- requirement: &2168684160 !ruby/object:Gem::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: *2168684160
35
+ version_requirements: *2156986820
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: code_statistics
39
- requirement: &2168683620 !ruby/object:Gem::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: *2168683620
46
+ version_requirements: *2156985280
48
47
  - !ruby/object:Gem::Dependency
49
48
  name: metric_fu
50
- requirement: &2168683060 !ruby/object:Gem::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: *2168683060
57
+ version_requirements: *2156983560
59
58
  - !ruby/object:Gem::Dependency
60
59
  name: ore
61
- requirement: &2168682460 !ruby/object:Gem::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: *2168682460
68
+ version_requirements: *2156982380
70
69
  - !ruby/object:Gem::Dependency
71
70
  name: ore-core
72
- requirement: &2168681800 !ruby/object:Gem::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: *2168681800
79
+ version_requirements: *2156980460
81
80
  - !ruby/object:Gem::Dependency
82
81
  name: ore-tasks
83
- requirement: &2168681240 !ruby/object:Gem::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: *2168681240
90
+ version_requirements: *2156979060
92
91
  - !ruby/object:Gem::Dependency
93
92
  name: rake
94
- requirement: &2168680680 !ruby/object:Gem::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: *2168680680
101
+ version_requirements: *2156977860
103
102
  - !ruby/object:Gem::Dependency
104
103
  name: rspec
105
- requirement: &2168680060 !ruby/object:Gem::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: *2168680060
112
+ version_requirements: *2156971260
114
113
  - !ruby/object:Gem::Dependency
115
114
  name: simplecov
116
- requirement: &2168679440 !ruby/object:Gem::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: *2168679440
123
+ version_requirements: *2156966860
125
124
  - !ruby/object:Gem::Dependency
126
125
  name: yard
127
- requirement: &2168678820 !ruby/object:Gem::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: *2168678820
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.6.2
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
@@ -1,4 +0,0 @@
1
-
2
- Thanks for installing rtsp. We hope you get some good streaming out of it!
3
-
4
- Take a look at the README to help get you started.