newbamboo-rvideo 0.9.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/CHANGELOG +70 -0
  2. data/ENV +100 -0
  3. data/ENV2 +129 -0
  4. data/LICENSE +20 -0
  5. data/Manifest +68 -0
  6. data/README +106 -0
  7. data/RULES +11 -0
  8. data/Rakefile +63 -0
  9. data/config/boot.rb +25 -0
  10. data/lib/rvideo.rb +46 -0
  11. data/lib/rvideo/errors.rb +24 -0
  12. data/lib/rvideo/float.rb +7 -0
  13. data/lib/rvideo/frame_capturer.rb +127 -0
  14. data/lib/rvideo/inspector.rb +482 -0
  15. data/lib/rvideo/reporter.rb +176 -0
  16. data/lib/rvideo/reporter/views/index.html.erb +27 -0
  17. data/lib/rvideo/reporter/views/report.css +27 -0
  18. data/lib/rvideo/reporter/views/report.html.erb +81 -0
  19. data/lib/rvideo/reporter/views/report.js +9 -0
  20. data/lib/rvideo/string.rb +5 -0
  21. data/lib/rvideo/tools/abstract_tool.rb +406 -0
  22. data/lib/rvideo/tools/ffmpeg.rb +356 -0
  23. data/lib/rvideo/tools/ffmpeg2theora.rb +42 -0
  24. data/lib/rvideo/tools/flvtool2.rb +50 -0
  25. data/lib/rvideo/tools/mencoder.rb +103 -0
  26. data/lib/rvideo/tools/mp4box.rb +21 -0
  27. data/lib/rvideo/tools/mp4creator.rb +35 -0
  28. data/lib/rvideo/tools/mplayer.rb +31 -0
  29. data/lib/rvideo/tools/qtfaststart.rb +37 -0
  30. data/lib/rvideo/tools/segmenter.rb +21 -0
  31. data/lib/rvideo/tools/yamdi.rb +44 -0
  32. data/lib/rvideo/transcoder.rb +139 -0
  33. data/lib/rvideo/version.rb +9 -0
  34. data/rvideo.gemspec +36 -0
  35. data/scripts/txt2html +67 -0
  36. data/setup.rb +1585 -0
  37. data/spec/files/boat.avi +0 -0
  38. data/spec/files/kites.mp4 +0 -0
  39. data/spec/fixtures/ffmpeg_builds.yml +28 -0
  40. data/spec/fixtures/ffmpeg_results.yml +608 -0
  41. data/spec/fixtures/files.yml +398 -0
  42. data/spec/fixtures/recipes.yml +58 -0
  43. data/spec/integrations/formats_spec.rb +315 -0
  44. data/spec/integrations/frame_capturer_spec.rb +26 -0
  45. data/spec/integrations/inspection_spec.rb +112 -0
  46. data/spec/integrations/recipes_spec.rb +0 -0
  47. data/spec/integrations/rvideo_spec.rb +17 -0
  48. data/spec/integrations/transcoder_integration_spec.rb +29 -0
  49. data/spec/integrations/transcoding_spec.rb +9 -0
  50. data/spec/spec.opts +1 -0
  51. data/spec/spec_helper.rb +16 -0
  52. data/spec/support.rb +36 -0
  53. data/spec/units/abstract_tool_spec.rb +111 -0
  54. data/spec/units/ffmpeg_spec.rb +323 -0
  55. data/spec/units/flvtool2_spec.rb +324 -0
  56. data/spec/units/frame_capturer_spec.rb +72 -0
  57. data/spec/units/inspector_spec.rb +59 -0
  58. data/spec/units/mencoder_spec.rb +4994 -0
  59. data/spec/units/mp4box_spec.rb +34 -0
  60. data/spec/units/mp4creator_spec.rb +34 -0
  61. data/spec/units/mplayer_spec.rb +34 -0
  62. data/spec/units/qtfaststart_spec.rb +35 -0
  63. data/spec/units/string_spec.rb +8 -0
  64. data/spec/units/transcoder_spec.rb +156 -0
  65. data/tasks/deployment.rake +5 -0
  66. data/tasks/testing.rake +27 -0
  67. data/tasks/transcoding.rake +40 -0
  68. data/tasks/website.rake +8 -0
  69. metadata +179 -0
@@ -0,0 +1,34 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ module RVideo
4
+ module Tools
5
+
6
+ describe Mp4box do
7
+ before do
8
+ setup_mp4box_spec
9
+ end
10
+
11
+ it "should initialize with valid arguments" do
12
+ @mp4box.class.should == Mp4box
13
+ end
14
+
15
+ it "should have the correct tool_command" do
16
+ @mp4box.tool_command.should == 'MP4Box'
17
+ end
18
+
19
+ it "should mixin AbstractTool" do
20
+ Mp4box.included_modules.include?(AbstractTool::InstanceMethods).should be_true
21
+ end
22
+
23
+ it "should set supported options successfully" do
24
+ @mp4box.options[:output_file].should == @options[:output_file]
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ def setup_mp4box_spec
31
+ @options = {:output_file => "foo"}
32
+ @command = "MP4Box $output_file$ -ipod"
33
+ @mp4box = RVideo::Tools::Mp4box.new(@command, @options)
34
+ end
@@ -0,0 +1,34 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ module RVideo
4
+ module Tools
5
+
6
+ describe Mp4creator do
7
+ before do
8
+ setup_mp4creator_spec
9
+ end
10
+
11
+ it "should initialize with valid arguments" do
12
+ @mp4creator.class.should == Mp4creator
13
+ end
14
+
15
+ it "should have the correct tool_command" do
16
+ @mp4creator.tool_command.should == 'mp4creator'
17
+ end
18
+
19
+ it "should mixin AbstractTool" do
20
+ Mp4creator.included_modules.include?(AbstractTool::InstanceMethods).should be_true
21
+ end
22
+
23
+ it "should set supported options successfully" do
24
+ @mp4creator.options[:output_file].should == @options[:output_file]
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ def setup_mp4creator_spec
31
+ @options = {:output_file => "foo"}
32
+ @command = "mp4creator -create=temp.aac $output_file$"
33
+ @mp4creator = RVideo::Tools::Mp4creator.new(@command, @options)
34
+ end
@@ -0,0 +1,34 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ module RVideo
4
+ module Tools
5
+
6
+ describe Mplayer do
7
+ before do
8
+ setup_mplayer_spec
9
+ end
10
+
11
+ it "should initialize with valid arguments" do
12
+ @mplayer.class.should == Mplayer
13
+ end
14
+
15
+ it "should have the correct tool_command" do
16
+ @mplayer.tool_command.should == 'mplayer'
17
+ end
18
+
19
+ it "should mixin AbstractTool" do
20
+ Mplayer.included_modules.include?(AbstractTool::InstanceMethods).should be_true
21
+ end
22
+
23
+ it "should set supported options successfully" do
24
+ @mplayer.options[:output_file].should == @options[:output_file]
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ def setup_mplayer_spec
31
+ @options = {:output_file => "foo"}
32
+ @command = "mplayer temp.avi -dumpaudio -dumpfile temp.aac"
33
+ @mplayer = RVideo::Tools::Mplayer.new(@command, @options)
34
+ end
@@ -0,0 +1,35 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ module RVideo
4
+ module Tools
5
+
6
+ describe QtFaststart do
7
+ before do
8
+ setup_qtfaststart_spec
9
+ end
10
+
11
+ it "should initialize with valid arguments" do
12
+ @qtfaststart.class.should == QtFaststart
13
+ end
14
+
15
+ it "should have the correct tool_command" do
16
+ @qtfaststart.tool_command.should == 'qt-faststart'
17
+ end
18
+
19
+ it "should mixin AbstractTool" do
20
+ QtFaststart.included_modules.include?(AbstractTool::InstanceMethods).should be_true
21
+ end
22
+
23
+ it "should set supported options successfully" do
24
+ @qtfaststart.options[:output_file].should == @options[:output_file]
25
+ @qtfaststart.options[:input_file].should == @options[:input_file]
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ def setup_qtfaststart_spec
32
+ @options = {:input_file => "foo.mp4", :output_file => "foo2.mp4"}
33
+ @command = "qt-faststart $input_file$ $output_file$"
34
+ @qtfaststart = RVideo::Tools::QtFaststart.new(@command, @options)
35
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + "/../spec_helper"
2
+
3
+ describe String, "shell quoting" do
4
+ it "should wrap self in single quotes" do
5
+ "foo".shell_quoted.should == "'foo'"
6
+ "foo & bar $(rm -rf /)".shell_quoted.should == "'foo & bar $(rm -rf /)'"
7
+ end
8
+ end
@@ -0,0 +1,156 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ def setup_spec
4
+ @options = {
5
+ :output_file => "bar",
6
+ :resolution => "baz"
7
+ }
8
+
9
+ @input_file = spec_file "kites.mp4"
10
+ @simple_avi = "ffmpeg -i $input_file$ -ar 44100 -ab 64 -vcodec xvid -acodec mp3 -r 29.97 $resolution$ -y $output_file$"
11
+
12
+ @transcoder = RVideo::Transcoder.new(@input_file)
13
+ @transcoder.stub! :do_execute
14
+
15
+ @mock_original_file = mock(:original)
16
+ @mock_original_file.stub!(:raw_response)
17
+ RVideo::Inspector.stub!(:new).and_return(@mock_original_file)
18
+ end
19
+
20
+ # TODO it would be nice if there was less mocking in here
21
+ # also some of these tests are worthless, but anyway..
22
+
23
+ module RVideo
24
+
25
+ describe Transcoder, "execution" do
26
+ before do
27
+ setup_spec
28
+ @transcoder.stub!(:check_integrity).and_return(true)
29
+ end
30
+
31
+ it "should pass a string as-is, along with options" do
32
+ @transcoder.stub!(:parse_and_execute)
33
+ @simple_avi = "ffmpeg -i foo"
34
+ @transcoder.execute(@simple_avi, @options)
35
+ end
36
+
37
+ it "should store a Tool object at transcoder.executed_commands" do
38
+ @mock_ffmpeg = mock("ffmpeg")
39
+ Tools::AbstractTool.stub!(:assign).and_return(@mock_ffmpeg)
40
+ @mock_ffmpeg.should_receive(:execute)
41
+ @mock_ffmpeg.stub!(:original=)
42
+ @transcoder.execute(@simple_avi, @options)
43
+ @transcoder.executed_commands.size.should == 1
44
+ @transcoder.executed_commands.first.should == @mock_ffmpeg
45
+ end
46
+
47
+ it "should set original file" do
48
+ @mock_ffmpeg = mock("ffmpeg")
49
+ Tools::AbstractTool.stub!(:assign).and_return(@mock_ffmpeg)
50
+ @mock_ffmpeg.stub!(:execute)
51
+ @mock_ffmpeg.should_receive(:original=).with(@transcoder.original)
52
+ @transcoder.execute(@simple_avi, @options)
53
+ end
54
+
55
+ # FIXME
56
+ # it "should raise an exception when trying to call a tool that doesn't exist" do
57
+ # lambda {
58
+ # @transcoder.send(:parse_and_execute, "foo -i bar", {})
59
+ # }.should raise_error(TranscoderError::UnknownTool, /recipe tried to use the 'foo' tool/)
60
+ # end
61
+
62
+ it "should raise an exception when the first argument is not a string" do
63
+ [String, 1, 1.0, true, nil, :foo].each do |obj|
64
+ lambda {
65
+ @transcoder.execute(obj, @options)
66
+ }.should raise_error(TranscoderError::ParameterError, /expected.*recipe.*string/i)
67
+ end
68
+ end
69
+ end
70
+
71
+ describe Transcoder, "file integrity checks" do
72
+
73
+ before do
74
+ setup_spec
75
+ @transcoder.stub!(:parse_and_execute)
76
+ @mock_processed_file = mock("processed")
77
+ @mock_original_file.stub!(:duration).and_return 10
78
+ @mock_original_file.stub!(:invalid?).and_return false
79
+ @mock_processed_file.stub!(:duration).and_return 10
80
+ @mock_processed_file.stub!(:invalid?).and_return false
81
+ #Inspector.should_receive(:new).once.with(:file => "foo").and_return(@mock_original_file)
82
+ Inspector.should_receive(:new).once.with(:file => "bar").and_return(@mock_processed_file)
83
+ end
84
+
85
+ it "should call the inspector twice on a successful job, and should set @original and @processed" do
86
+ @transcoder.original.should_not be_nil
87
+ @transcoder.processed.should be_nil
88
+
89
+ @transcoder.execute(@simple_avi, @options)
90
+ @transcoder.original.should == @mock_original_file
91
+ @transcoder.processed.should == @mock_processed_file
92
+ end
93
+
94
+ it "should check integrity" do
95
+ @transcoder.should_receive(:check_integrity).once.and_return true
96
+ @transcoder.execute(@simple_avi, @options).should be_true
97
+ @transcoder.errors.should be_empty
98
+ end
99
+
100
+ it "should fail if output duration is more than 10% different than the original" do
101
+ @mock_original_file.should_receive(:duration).twice.and_return(10)
102
+ @mock_processed_file.should_receive(:duration).twice.and_return(13)
103
+ @transcoder.execute(@simple_avi, @options).should be_false
104
+ @transcoder.errors.should == ["Original file has a duration of 10, but processed file has a duration of 13"]
105
+ end
106
+
107
+ it "should fail if the processed file is invalid" do
108
+ @mock_processed_file.should_receive(:invalid?).and_return(true)
109
+ @transcoder.execute(@simple_avi, @options).should be_false
110
+ @transcoder.errors.should_not be_empty
111
+ end
112
+
113
+ end
114
+
115
+ describe Transcoder, "#parse_and_execute" do
116
+ before do
117
+ setup_spec
118
+ @mock_tool = mock("tool")
119
+ @mock_tool.stub!(:execute)
120
+ @mock_tool.stub!(:original=)
121
+ @options_plus_input = @options.merge(:input_file => @input_file)
122
+ end
123
+
124
+ it "should assign a command via AbstractTool.assign, and pass the right options" do
125
+ Tools::AbstractTool.should_receive(:assign).with(@simple_avi, @options_plus_input).and_return(@mock_tool)
126
+ @transcoder.send(:parse_and_execute, @simple_avi, @options)
127
+ end
128
+
129
+ it "should call Tools::AbstractTool once with a one-line recipe" do
130
+ Tools::AbstractTool.should_receive(:assign).once.and_return(@mock_tool)
131
+ @transcoder.send(:parse_and_execute, @simple_avi, @options)
132
+ end
133
+
134
+ it "should call twice with a two-line recipe" do
135
+ two_line = "ffmpeg -i foo \n ffmpeg -i bar"
136
+ Tools::AbstractTool.should_receive(:assign).twice.and_return(@mock_tool)
137
+ @transcoder.send(:parse_and_execute, two_line, @options)
138
+ end
139
+
140
+ it "should call five times with a five-line recipe" do
141
+ five_line = "ffmpeg -i foo \n ffmpeg -i bar \n flvtool -i foo \n mp4box \n qt tools 8"
142
+ Tools::AbstractTool.should_receive(:assign).exactly(5).and_return(@mock_tool)
143
+ @transcoder.stub!(:do_execute)
144
+ @transcoder.send(:parse_and_execute, five_line, @options)
145
+ end
146
+
147
+ it "should pass an exception from the abstract tool" do
148
+ Tools::AbstractTool.should_receive(:assign).and_raise(TranscoderError::UnexpectedResult)
149
+
150
+ lambda {
151
+ @transcoder.send(:parse_and_execute, @simple_avi, @options)
152
+ }.should raise_error(TranscoderError::UnexpectedResult)
153
+ end
154
+ end
155
+
156
+ end
@@ -0,0 +1,5 @@
1
+ desc "Release the website and new gem version"
2
+ task :deploy => [:manifest, :release, :publish_docs]
3
+
4
+ desc "Regenerates website, rdoc and package. Installs the gem locally."
5
+ task "deploy:local" => ["web:generate", :redocs, :repackage, :install]
@@ -0,0 +1,27 @@
1
+ begin
2
+ require "spec/rake/spectask"
3
+ rescue LoadError
4
+ puts "To use rspec for testing you must install rspec gem:"
5
+ puts "$ sudo gem install rspec"
6
+ exit
7
+ end
8
+
9
+ namespace :spec do
10
+ desc "Run Unit Specs"
11
+ Spec::Rake::SpecTask.new("units") do |t|
12
+ t.spec_files = FileList['spec/units/**/*.rb']
13
+ t.spec_opts = %w( --color )
14
+ end
15
+
16
+ desc "Run Integration Specs"
17
+ Spec::Rake::SpecTask.new("integrations") do |t|
18
+ t.spec_files = FileList['spec/integrations/**/*.rb']
19
+ t.spec_opts = %w( --color )
20
+ end
21
+ end
22
+
23
+ desc "Run unit and integration specs"
24
+ task :spec => ["spec:units", "spec:integrations"]
25
+
26
+ # Echo defines the :default task to run the :test task
27
+ task :test => :spec
@@ -0,0 +1,40 @@
1
+ def transcode_single_job(recipe, input_file)
2
+ puts "Transcoding #{File.basename(input_file)} to #{recipe}"
3
+ r = YAML.load_file(File.dirname(__FILE__) + '/test/recipes.yml')[recipe]
4
+ transcoder = RVideo::Transcoder.new(input_file)
5
+ output_file = "#{TEMP_PATH}/#{File.basename(input_file, ".*")}-#{recipe}.#{r['extension']}"
6
+ FileUtils.mkdir_p(File.dirname(output_file))
7
+ begin
8
+ transcoder.execute(r['command'], {:output_file => output_file}.merge(r))
9
+ puts "Finished #{File.basename(output_file)} in #{transcoder.total_time}"
10
+ rescue StandardError => e
11
+ puts "Error transcoding #{File.basename(output_file)} - #{e.class} (#{e.message}\n#{e.backtrace})"
12
+ end
13
+ end
14
+
15
+ def set_logger(path_or_io)
16
+ RVideo::Transcoder.logger = Logger.new(path_or_io)
17
+ end
18
+
19
+ ###
20
+
21
+ desc "Process a file"
22
+ task :transcode do
23
+ set_logger STDOUT
24
+ transcode_single_job ENV['RECIPE'], ENV['FILE']
25
+ end
26
+
27
+ desc "Batch transcode files"
28
+ task "transcode:batch" do
29
+ set_logger File.dirname(__FILE__) + '/test/output.log'
30
+
31
+ f = YAML.load_file(File.dirname(__FILE__) + '/test/batch_transcode.yml')
32
+
33
+ recipes = f['recipes']
34
+ files = f['files']
35
+
36
+ files.each do |f|
37
+ file = "#{File.dirname(__FILE__)}/test/files/#{f}"
38
+ recipes.each { |r| transcode_single_job r, file }
39
+ end
40
+ end
@@ -0,0 +1,8 @@
1
+ namespace :web do
2
+ desc "Regnerate website files from text templates"
3
+ task :generate do
4
+ Dir['website/**/*.txt'].each do |txt|
5
+ sh %{ ruby scripts/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
6
+ end
7
+ end
8
+ end
metadata ADDED
@@ -0,0 +1,179 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: newbamboo-rvideo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.6
5
+ platform: ruby
6
+ authors:
7
+ - Peter Boling, Jonathan Dahl (Slantwise Design), Seth Thomas Rasmussen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-01-29 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activesupport
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: Inspect and transcode video and audio files.
36
+ email: sethrasmussen@gmail.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - CHANGELOG
43
+ - lib/rvideo/errors.rb
44
+ - lib/rvideo/float.rb
45
+ - lib/rvideo/frame_capturer.rb
46
+ - lib/rvideo/inspector.rb
47
+ - lib/rvideo/reporter/views/index.html.erb
48
+ - lib/rvideo/reporter/views/report.css
49
+ - lib/rvideo/reporter/views/report.html.erb
50
+ - lib/rvideo/reporter/views/report.js
51
+ - lib/rvideo/reporter.rb
52
+ - lib/rvideo/string.rb
53
+ - lib/rvideo/tools/abstract_tool.rb
54
+ - lib/rvideo/tools/ffmpeg.rb
55
+ - lib/rvideo/tools/ffmpeg2theora.rb
56
+ - lib/rvideo/tools/flvtool2.rb
57
+ - lib/rvideo/tools/mencoder.rb
58
+ - lib/rvideo/tools/mp4box.rb
59
+ - lib/rvideo/tools/mp4creator.rb
60
+ - lib/rvideo/tools/mplayer.rb
61
+ - lib/rvideo/tools/qtfaststart.rb
62
+ - lib/rvideo/tools/yamdi.rb
63
+ - lib/rvideo/tools/segmenter.rb
64
+ - lib/rvideo/transcoder.rb
65
+ - lib/rvideo/version.rb
66
+ - lib/rvideo.rb
67
+ - LICENSE
68
+ - README
69
+ - tasks/deployment.rake
70
+ - tasks/testing.rake
71
+ - tasks/transcoding.rake
72
+ - tasks/website.rake
73
+ files:
74
+ - CHANGELOG
75
+ - config/boot.rb
76
+ - ENV
77
+ - ENV2
78
+ - lib/rvideo/errors.rb
79
+ - lib/rvideo/float.rb
80
+ - lib/rvideo/frame_capturer.rb
81
+ - lib/rvideo/inspector.rb
82
+ - lib/rvideo/reporter/views/index.html.erb
83
+ - lib/rvideo/reporter/views/report.css
84
+ - lib/rvideo/reporter/views/report.html.erb
85
+ - lib/rvideo/reporter/views/report.js
86
+ - lib/rvideo/reporter.rb
87
+ - lib/rvideo/string.rb
88
+ - lib/rvideo/tools/abstract_tool.rb
89
+ - lib/rvideo/tools/ffmpeg.rb
90
+ - lib/rvideo/tools/ffmpeg2theora.rb
91
+ - lib/rvideo/tools/flvtool2.rb
92
+ - lib/rvideo/tools/mencoder.rb
93
+ - lib/rvideo/tools/mp4box.rb
94
+ - lib/rvideo/tools/mp4creator.rb
95
+ - lib/rvideo/tools/mplayer.rb
96
+ - lib/rvideo/tools/qtfaststart.rb
97
+ - lib/rvideo/tools/yamdi.rb
98
+ - lib/rvideo/tools/segmenter.rb
99
+ - lib/rvideo/transcoder.rb
100
+ - lib/rvideo/version.rb
101
+ - lib/rvideo.rb
102
+ - LICENSE
103
+ - Manifest
104
+ - Rakefile
105
+ - README
106
+ - RULES
107
+ - rvideo.gemspec
108
+ - scripts/txt2html
109
+ - setup.rb
110
+ - spec/files/boat.avi
111
+ - spec/files/kites.mp4
112
+ - spec/fixtures/ffmpeg_builds.yml
113
+ - spec/fixtures/ffmpeg_results.yml
114
+ - spec/fixtures/files.yml
115
+ - spec/fixtures/recipes.yml
116
+ - spec/integrations/formats_spec.rb
117
+ - spec/integrations/frame_capturer_spec.rb
118
+ - spec/integrations/inspection_spec.rb
119
+ - spec/integrations/recipes_spec.rb
120
+ - spec/integrations/rvideo_spec.rb
121
+ - spec/integrations/transcoder_integration_spec.rb
122
+ - spec/integrations/transcoding_spec.rb
123
+ - spec/spec.opts
124
+ - spec/spec_helper.rb
125
+ - spec/support.rb
126
+ - spec/units/abstract_tool_spec.rb
127
+ - spec/units/ffmpeg_spec.rb
128
+ - spec/units/flvtool2_spec.rb
129
+ - spec/units/frame_capturer_spec.rb
130
+ - spec/units/inspector_spec.rb
131
+ - spec/units/mencoder_spec.rb
132
+ - spec/units/mp4box_spec.rb
133
+ - spec/units/mp4creator_spec.rb
134
+ - spec/units/mplayer_spec.rb
135
+ - spec/units/qtfaststart_spec.rb
136
+ - spec/units/string_spec.rb
137
+ - spec/units/transcoder_spec.rb
138
+ - tasks/deployment.rake
139
+ - tasks/testing.rake
140
+ - tasks/transcoding.rake
141
+ - tasks/website.rake
142
+ has_rdoc: true
143
+ homepage: http://github.com/newbamboo/rvideo
144
+ licenses: []
145
+
146
+ post_install_message:
147
+ rdoc_options:
148
+ - --quiet
149
+ - --title
150
+ - rvideo documentation
151
+ - --opname
152
+ - index.html
153
+ - --line-numbers
154
+ - --main
155
+ - README
156
+ - --inline-source
157
+ require_paths:
158
+ - lib
159
+ required_ruby_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: "0"
164
+ version:
165
+ required_rubygems_version: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: "1.2"
170
+ version:
171
+ requirements: []
172
+
173
+ rubyforge_project: newbamboo-rvideo
174
+ rubygems_version: 1.3.5
175
+ signing_key:
176
+ specification_version: 3
177
+ summary: Inspect and transcode video and audio files.
178
+ test_files: []
179
+