rmovie 0.5.0

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.
@@ -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
+