aviglitch 0.0.3 → 0.1.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.
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.