axtro-rvideo 0.9.6

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.
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 +67 -0
  6. data/README +91 -0
  7. data/RULES +11 -0
  8. data/Rakefile +63 -0
  9. data/axtro-rvideo.gemspec +36 -0
  10. data/config/boot.rb +25 -0
  11. data/lib/rvideo.rb +44 -0
  12. data/lib/rvideo/errors.rb +24 -0
  13. data/lib/rvideo/float.rb +7 -0
  14. data/lib/rvideo/frame_capturer.rb +129 -0
  15. data/lib/rvideo/inspector.rb +483 -0
  16. data/lib/rvideo/reporter.rb +176 -0
  17. data/lib/rvideo/reporter/views/index.html.erb +27 -0
  18. data/lib/rvideo/reporter/views/report.css +27 -0
  19. data/lib/rvideo/reporter/views/report.html.erb +81 -0
  20. data/lib/rvideo/reporter/views/report.js +9 -0
  21. data/lib/rvideo/string.rb +5 -0
  22. data/lib/rvideo/tools/abstract_tool.rb +414 -0
  23. data/lib/rvideo/tools/ffmpeg.rb +286 -0
  24. data/lib/rvideo/tools/ffmpeg2theora.rb +42 -0
  25. data/lib/rvideo/tools/flvtool2.rb +50 -0
  26. data/lib/rvideo/tools/mencoder.rb +103 -0
  27. data/lib/rvideo/tools/mp4box.rb +21 -0
  28. data/lib/rvideo/tools/mp4creator.rb +35 -0
  29. data/lib/rvideo/tools/mplayer.rb +31 -0
  30. data/lib/rvideo/tools/qtfaststart.rb +37 -0
  31. data/lib/rvideo/tools/yamdi.rb +44 -0
  32. data/lib/rvideo/transcoder.rb +120 -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 +123 -0
  54. data/spec/units/ffmpeg_spec.rb +327 -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 +178 -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,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: axtro-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-09-24 00:00:00 +02: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/transcoder.rb
64
+ - lib/rvideo/version.rb
65
+ - lib/rvideo.rb
66
+ - LICENSE
67
+ - README
68
+ - tasks/deployment.rake
69
+ - tasks/testing.rake
70
+ - tasks/transcoding.rake
71
+ - tasks/website.rake
72
+ files:
73
+ - CHANGELOG
74
+ - config/boot.rb
75
+ - ENV
76
+ - ENV2
77
+ - lib/rvideo/errors.rb
78
+ - lib/rvideo/float.rb
79
+ - lib/rvideo/frame_capturer.rb
80
+ - lib/rvideo/inspector.rb
81
+ - lib/rvideo/reporter/views/index.html.erb
82
+ - lib/rvideo/reporter/views/report.css
83
+ - lib/rvideo/reporter/views/report.html.erb
84
+ - lib/rvideo/reporter/views/report.js
85
+ - lib/rvideo/reporter.rb
86
+ - lib/rvideo/string.rb
87
+ - lib/rvideo/tools/abstract_tool.rb
88
+ - lib/rvideo/tools/ffmpeg.rb
89
+ - lib/rvideo/tools/ffmpeg2theora.rb
90
+ - lib/rvideo/tools/flvtool2.rb
91
+ - lib/rvideo/tools/mencoder.rb
92
+ - lib/rvideo/tools/mp4box.rb
93
+ - lib/rvideo/tools/mp4creator.rb
94
+ - lib/rvideo/tools/mplayer.rb
95
+ - lib/rvideo/tools/qtfaststart.rb
96
+ - lib/rvideo/tools/yamdi.rb
97
+ - lib/rvideo/transcoder.rb
98
+ - lib/rvideo/version.rb
99
+ - lib/rvideo.rb
100
+ - LICENSE
101
+ - Manifest
102
+ - Rakefile
103
+ - README
104
+ - RULES
105
+ - rvideo.gemspec
106
+ - scripts/txt2html
107
+ - setup.rb
108
+ - spec/files/boat.avi
109
+ - spec/files/kites.mp4
110
+ - spec/fixtures/ffmpeg_builds.yml
111
+ - spec/fixtures/ffmpeg_results.yml
112
+ - spec/fixtures/files.yml
113
+ - spec/fixtures/recipes.yml
114
+ - spec/integrations/formats_spec.rb
115
+ - spec/integrations/frame_capturer_spec.rb
116
+ - spec/integrations/inspection_spec.rb
117
+ - spec/integrations/recipes_spec.rb
118
+ - spec/integrations/rvideo_spec.rb
119
+ - spec/integrations/transcoder_integration_spec.rb
120
+ - spec/integrations/transcoding_spec.rb
121
+ - spec/spec.opts
122
+ - spec/spec_helper.rb
123
+ - spec/support.rb
124
+ - spec/units/abstract_tool_spec.rb
125
+ - spec/units/ffmpeg_spec.rb
126
+ - spec/units/flvtool2_spec.rb
127
+ - spec/units/frame_capturer_spec.rb
128
+ - spec/units/inspector_spec.rb
129
+ - spec/units/mencoder_spec.rb
130
+ - spec/units/mp4box_spec.rb
131
+ - spec/units/mp4creator_spec.rb
132
+ - spec/units/mplayer_spec.rb
133
+ - spec/units/qtfaststart_spec.rb
134
+ - spec/units/string_spec.rb
135
+ - spec/units/transcoder_spec.rb
136
+ - tasks/deployment.rake
137
+ - tasks/testing.rake
138
+ - tasks/transcoding.rake
139
+ - tasks/website.rake
140
+ - axtro-rvideo.gemspec
141
+ has_rdoc: true
142
+ homepage: http://github.com/greatseth/rvideo
143
+ licenses: []
144
+
145
+ post_install_message:
146
+ rdoc_options:
147
+ - --quiet
148
+ - --title
149
+ - rvideo documentation
150
+ - --opname
151
+ - index.html
152
+ - --line-numbers
153
+ - --main
154
+ - README
155
+ - --inline-source
156
+ require_paths:
157
+ - lib
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: "0"
163
+ version:
164
+ required_rubygems_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: "1.2"
169
+ version:
170
+ requirements: []
171
+
172
+ rubyforge_project: axtro-rvideo
173
+ rubygems_version: 1.3.5
174
+ signing_key:
175
+ specification_version: 3
176
+ summary: Inspect and transcode video and audio files.
177
+ test_files: []
178
+