rmovie 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'rmovie'
4
+
5
+ print RMovie::Version
6
+ print "\n"
7
+ print RMovie::Long_version
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'rmovie'
4
+
5
+ $script_dir = File.dirname(File.expand_path($0))
6
+ $media_dir = "#{$script_dir}/media"
7
+
8
+ mov = RMovie::Movie.new("#{$media_dir}/1701-D.mov")
9
+
10
+ print mov.pixel_format, "\n"
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'yaml'
4
+ require 'test/unit'
5
+ require 'md5'
6
+ require 'rmovie'
7
+
8
+ $script_dir = File.dirname(File.expand_path($0))
9
+ $media_dir = "#{$script_dir}/media"
10
+ $baselines_dir = "#{$script_dir}/baselines"
11
+
12
+ class TC_RMovie < Test::Unit::TestCase
13
+
14
+ def test_on_missing_file
15
+ # test creating movie object on a file that doesn't exist
16
+ begin
17
+ no_mov = RMovie::Movie.new("#{$media_dir}/i_dont_exist.avi")
18
+ rescue SystemCallError
19
+ assert_nil no_mov
20
+ end
21
+ end
22
+
23
+ def test_rmovie_movie
24
+ media_files = Dir["#{$media_dir}/*"]
25
+
26
+ media_files.each { |file|
27
+ if not File.exist?("#{$baselines_dir}/#{File.basename(file)}.yaml")
28
+ print "No baseline file for #{file}.\n"
29
+ generate_baseline(file)
30
+ end
31
+
32
+ # TODO: if method returns a frame object, run the objects methods.
33
+
34
+ baseline = load_baseline(file)
35
+ assert mov = RMovie::Movie.new(file)
36
+ baseline.each { |k, v|
37
+ assert_equal eval(run_method(mov,k)), v
38
+ }
39
+ }
40
+ end
41
+
42
+ def run_method(obj, method)
43
+ print "Testing: #{obj.class}.#{method} = "
44
+ ret = eval "obj.#{method}"
45
+ puts ret
46
+ return ret
47
+ end
48
+
49
+
50
+ def load_baseline(filename)
51
+ return YAML::load(File.open("#{$baselines_dir}/#{File.basename(filename)}.yaml"))
52
+ end
53
+
54
+ def generate_baseline(filename)
55
+
56
+ mov = RMovie::Movie.new(filename)
57
+
58
+ method_hash = {}
59
+
60
+ RMovie::Movie.instance_methods(false).each { |method|
61
+ ret = run_method(mov, method);
62
+ if ret.is_a? String
63
+ ret = ret.to_s.gsub(/[']/, "\\\\'")
64
+ ret = "\"#{ret}\""
65
+ end
66
+ if ret.instance_of? RMovie::Frame
67
+ frame = ret
68
+ RMovie::Frame.instance_methods(false).each { |method|
69
+ fret = run_method(frame, method);
70
+ if fret.is_a? String
71
+ fret = fret.to_s.gsub(/[']/, "\\\\'")
72
+ fret = "\"#{fret}\""
73
+ end
74
+ # TODO: need to check against baselines and a way
75
+ # to run methods with arguments
76
+ }
77
+ continue
78
+ end
79
+ # TODO: Put a failure method here that tells which file
80
+ # and which method failed
81
+ eval "method_hash['#{method}'] = #{ret}"
82
+ }
83
+
84
+ oldstdout = $stdout
85
+ outpath = "#{$baselines_dir}/#{File.basename(filename)}.yaml"
86
+ print "Generating baseline file for #{filename} in #{outpath}.\n"
87
+ outf = File.new(outpath, "w")
88
+ $stdout = outf # switch output to file
89
+ outf.puts(method_hash.to_yaml)
90
+ $stdout = oldstdout
91
+ outf.close
92
+ end
93
+ end
data/test/to_s.rb ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'rmovie'
4
+ require 'RMagick'
5
+
6
+ $script_dir = File.dirname(File.expand_path($0))
7
+ $media_dir = "#{$script_dir}/media/"
8
+
9
+ mov = RMovie::Movie.new("#{$media_dir}/irnbru-singsong.mov")
10
+
11
+ print "Movie frame count = ", mov.frame_count, "\n"
12
+
13
+ frames = [10, 5, 3]
14
+
15
+ #frame = mov.frame(10)
16
+
17
+ frames.each { |frame_num|
18
+ frame = mov.frame(frame_num)
19
+
20
+ frame_as_string = frame.to_s
21
+
22
+ img = Magick::Image.new(frame.width, frame.height)
23
+
24
+ img.import_pixels(0, 0, frame.width, frame.height, "RGB", frame_as_string, Magick::CharPixel)
25
+
26
+ img.write("#{frame_num}-out.jpg")
27
+ }
data/test/to_string.rb ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'rmovie'
4
+ require 'RMagick'
5
+
6
+ $script_dir = File.dirname(File.expand_path($0))
7
+ $media_dir = "#{$script_dir}/media/"
8
+
9
+ mov = RMovie::Movie.new("#{$media_dir}/irnbru-singsong.mov")
10
+
11
+ frame = mov.frame(1)
12
+
13
+ frame_as_string = frame.to_string
14
+
15
+ img = Magick::Image.new(frame.width, frame.height)
16
+
17
+ img.import_pixels(0, 0, frame.width, frame.height, "RGB", frame_as_string, Magick::CharPixel)
18
+
19
+ img.write('out.jpg')
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.0
3
+ specification_version: 1
4
+ name: rmovie
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.5.0
7
+ date: 2006-10-18 00:00:00 -07:00
8
+ summary: rmovie is an extension to allow Ruby scripts to get info from video files.
9
+ require_paths:
10
+ - lib
11
+ email: ffmpeg.php@gmail.com
12
+ homepage: http://rubyforge.org/rmovie
13
+ rubyforge_project:
14
+ description:
15
+ autorequire: rmovie
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: false
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.8.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Todd Kirby
31
+ files:
32
+ - ext/rmovie
33
+ - ext/rmovie/quadrupel
34
+ - ext/rmovie/rmovie_frame.c
35
+ - ext/rmovie/rmovie_frame.h
36
+ - ext/rmovie/extconf.rb
37
+ - ext/rmovie/rmovie_movie.c
38
+ - ext/rmovie/rmovie_movie.h
39
+ - ext/rmovie/mkmf.log
40
+ - ext/rmovie/rmovie_main.c
41
+ - ext/rmovie/config.h
42
+ - ext/rmovie/Makefile
43
+ - ext/rmovie/pre-setup.rb
44
+ - ext/rmovie/quadrupel/mkinstalldirs
45
+ - ext/rmovie/quadrupel/qp_frame.h
46
+ - ext/rmovie/quadrupel/qp_movie.c
47
+ - ext/rmovie/quadrupel/test.c
48
+ - ext/rmovie/quadrupel/qp_util.h
49
+ - ext/rmovie/quadrupel/TODO
50
+ - ext/rmovie/quadrupel/qp_movie.h
51
+ - ext/rmovie/quadrupel/qp_frame.c
52
+ - ext/rmovie/quadrupel/Makefile
53
+ - ext/rmovie/quadrupel/qp_util.c
54
+ - lib/rmovie
55
+ - lib/rmovie/version.rb
56
+ - test/media
57
+ - test/baselines
58
+ - test/export_movie.rb
59
+ - test/test_rmovie.rb
60
+ - test/init_rmovie.rb
61
+ - test/pixel_format.rb
62
+ - test/get_frame.rb
63
+ - test/to_string.rb
64
+ - test/to_s.rb
65
+ - test/get_frames_reverse.rb
66
+ - test/media/1701-D.mov
67
+ - test/media/Ballad of the Sneak.mp3
68
+ - test/media/irnbru-singsong.mov
69
+ - test/media/test.mov
70
+ test_files: []
71
+
72
+ rdoc_options: []
73
+
74
+ extra_rdoc_files: []
75
+
76
+ executables: []
77
+
78
+ extensions:
79
+ - ext/rmovie/extconf.rb
80
+ requirements: []
81
+
82
+ dependencies: []
83
+