aviglitch 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,9 +1,14 @@
1
+ == 0.1.0 / 2010-07-09
2
+
3
+ * Minor version up.
4
+ * Fixed bugs with Ruby 1.8.7.
5
+ * Fixed the synchronization problem with datamosh cli.
6
+
1
7
  == 0.0.3 / 2010-07-07
2
8
 
3
9
  * Changed AviGlitch::Frames allowing to slice and concatenate frames
4
10
  (like Array).
5
11
  * Changed datamosh cli to accept multiple files.
6
- * And some tiny fixes.
7
12
 
8
13
  == 0.0.2 / 2010-05-17
9
14
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.1.0
@@ -10,7 +10,7 @@ all = false
10
10
 
11
11
  opts = OptionParser.new do |opts|
12
12
  opts.banner = "datamosh - AviGlitch's datamoshing video generator."
13
- opts.define_head "Usage: #{File.basename($0)} <input> [options]"
13
+ opts.define_head "Usage: #{File.basename($0)} [options] file [file2 ...]"
14
14
  opts.separator "Options:"
15
15
  opts.on("-o", "--output [OUTPUT]",
16
16
  "Output the video to OUTPUT (./out.avi by default)") do |f|
@@ -34,12 +34,12 @@ end
34
34
 
35
35
  a = AviGlitch.open input.shift
36
36
  a.glitch_with_index :keyframe do |frame, i|
37
- (!all && i == 0) ? frame : "\000" * frame.size # keep the first frame
37
+ (!all && i == 0) ? frame : nil # keep the first frame
38
38
  end
39
39
  input.each do |file|
40
40
  b = AviGlitch.open file
41
41
  b.glitch :keyframe do |frame|
42
- "\000" * frame.size
42
+ nil
43
43
  end
44
44
  a.frames.concat b.frames
45
45
  end
@@ -1,3 +1,8 @@
1
+ require 'tempfile'
2
+ require 'fileutils'
3
+ require 'readline'
4
+ require 'pathname'
5
+ require 'stringio'
1
6
  require 'aviglitch/base'
2
7
  require 'aviglitch/frame'
3
8
  require 'aviglitch/frames'
@@ -29,7 +34,7 @@ require 'aviglitch/frames'
29
34
  #
30
35
  module AviGlitch
31
36
 
32
- VERSION = '0.0.3'
37
+ VERSION = '0.1.0'
33
38
 
34
39
  class << self
35
40
  ##
@@ -1,8 +1,3 @@
1
- require 'tempfile'
2
- require 'fileutils'
3
- require 'readline'
4
- require 'pathname'
5
-
6
1
  module AviGlitch
7
2
  # Base is the object that provides interfaces mainly used.
8
3
  # To glitch, and save file. The instance returned through AviGlitch#open.
@@ -1,5 +1,3 @@
1
- require 'stringio'
2
-
3
1
  module AviGlitch
4
2
 
5
3
  # Frames provides the interface to access each frame
@@ -230,7 +228,8 @@ module AviGlitch
230
228
  ##
231
229
  # Removes frame(s) at the given index or the range (same as []).
232
230
  # Inserts the given Frame or Frames's contents into the removed index.
233
- def []= *args, value
231
+ def []= *args
232
+ value = args.pop
234
233
  b, l = get_beginning_and_length *args
235
234
  ll = l.nil? ? 1 : l
236
235
  head = self.slice(0, b)
@@ -6,10 +6,10 @@ describe AviGlitch, 'datamosh cli' do
6
6
  FileUtils.mkdir OUTPUT_DIR unless File.exist? OUTPUT_DIR
7
7
  @in = FILES_DIR + 'sample.avi'
8
8
  @out = OUTPUT_DIR + 'out.avi'
9
- datamosh = Pathname.new(
10
- File.join(File.dirname(__FILE__), '..', 'bin/datamosh')
11
- ).realpath
12
- @cmd = "ruby %s -o %s " % [datamosh, @out]
9
+ here = File.dirname(__FILE__)
10
+ lib = Pathname.new(File.join(here, '..', 'lib')).realpath
11
+ datamosh = Pathname.new(File.join(here, '..', 'bin/datamosh')).realpath
12
+ @cmd = "ruby -I%s %s -o %s " % [lib, datamosh, @out]
13
13
  end
14
14
 
15
15
  after :each do
@@ -21,39 +21,32 @@ describe AviGlitch, 'datamosh cli' do
21
21
  end
22
22
 
23
23
  it 'should correctly process files' do
24
+ a = AviGlitch.open @in
25
+ keys = a.frames.inject(0) do |c, f|
26
+ c += 1 if f.is_keyframe?
27
+ c
28
+ end
29
+ total = a.frames.size
30
+ a.close
31
+
24
32
  system [@cmd, @in].join(' ')
25
33
  o = AviGlitch.open @out
26
- o.frames.each_with_index do |f, i|
27
- if f.is_keyframe? && i == 0
28
- f.data.should_not match /^\000+$/
29
- elsif f.is_keyframe?
30
- f.data.should match /^\000+$/
31
- end
32
- end
34
+ o.frames.size.should == total - keys + 1
35
+ o.frames.first.is_keyframe?.should be true
33
36
  o.close
34
37
  AviGlitch::Base.surely_formatted?(@out, true).should be true
35
38
 
36
39
  system [@cmd, '-a', @in].join(' ')
37
40
  o = AviGlitch.open @out
38
- o.frames.each do |f|
39
- if f.is_keyframe?
40
- f.data.should match /^\000+$/
41
- end
42
- end
41
+ o.frames.size.should == total - keys
42
+ o.frames.first.is_keyframe?.should be false
43
43
  o.close
44
44
  AviGlitch::Base.surely_formatted?(@out, true).should be true
45
45
 
46
46
  system [@cmd, @in, @in, @in].join(' ')
47
- a = AviGlitch.open @in
48
47
  o = AviGlitch.open @out
49
- o.frames.size.should == a.frames.size * 3
50
- o.frames.each_with_index do |f, i|
51
- if f.is_keyframe? && i == 0
52
- f.data.should_not match /^\000+$/
53
- elsif f.is_keyframe?
54
- f.data.should match /^\000+$/
55
- end
56
- end
48
+ o.frames.size.should == 1 + (total - keys) * 3
49
+ o.frames.first.is_keyframe?.should be true
57
50
  o.close
58
51
  AviGlitch::Base.surely_formatted?(@out, true).should be true
59
52
  end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aviglitch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
5
11
  platform: ruby
6
12
  authors:
7
13
  - ucnv
@@ -9,7 +15,7 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-07-07 00:00:00 +09:00
18
+ date: 2010-07-09 00:00:00 +09:00
13
19
  default_executable: datamosh
14
20
  dependencies: []
15
21
 
@@ -50,21 +56,27 @@ rdoc_options:
50
56
  require_paths:
51
57
  - lib
52
58
  required_ruby_version: !ruby/object:Gem::Requirement
59
+ none: false
53
60
  requirements:
54
61
  - - ">="
55
62
  - !ruby/object:Gem::Version
63
+ hash: 3
64
+ segments:
65
+ - 0
56
66
  version: "0"
57
- version:
58
67
  required_rubygems_version: !ruby/object:Gem::Requirement
68
+ none: false
59
69
  requirements:
60
70
  - - ">="
61
71
  - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
62
75
  version: "0"
63
- version:
64
76
  requirements: []
65
77
 
66
78
  rubyforge_project:
67
- rubygems_version: 1.3.5
79
+ rubygems_version: 1.3.7
68
80
  signing_key:
69
81
  specification_version: 3
70
82
  summary: A Ruby library to destroy your AVI files.