aviglitch 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d8610f1301a71bd6c5a5d9e1105446c59cf85096
4
+ data.tar.gz: e1f32645446c888568c31310edeb69b261505438
5
+ SHA512:
6
+ metadata.gz: 8b8181d9fd7890662ed170a8306acd06afec3192817beee8b2a7f9190fcb2368fe681d8b9a281ee7f8a9fd3bf159862249f7ed7390f91ee951fc684505c136c0
7
+ data.tar.gz: 7061df30ab5357bbb9ed4b5a78358946cc0a4fd378e55541bf03b5f2b61619cda82de26e85a923dcd19ac946613aad4ddbade6b11152ff3e0d02faa88706a346
data/.gitignore CHANGED
@@ -8,3 +8,4 @@ tmp
8
8
  *.gem
9
9
  Gemfile.lock
10
10
  Guardfile
11
+ .yardoc
data/.rspec CHANGED
@@ -1,2 +1,2 @@
1
1
  -c
2
- -fs
2
+ --format documentation
@@ -1,7 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
- - 1.8.7
5
4
  - 2.0.0
6
- - 2.1.0
5
+ - 2.1.4
7
6
  - jruby-19mode
@@ -1,3 +1,8 @@
1
+ ### 0.1.5 / 2014-12-12
2
+
3
+ * Fix Frames#concat and two other method to return self.
4
+ * Some internal changes.
5
+
1
6
  ### 0.1.4 / 2014-04-10
2
7
 
3
8
  * Added an enumerator style on AviGlitch::Base#glitch and
data/README.md CHANGED
@@ -34,6 +34,8 @@ It creates the keyframes removed video.
34
34
  $ datamosh /path/to/your.avi -o /path/to/broken.avi
35
35
  ```
36
36
 
37
+ For more practical usages, please check <https://github.com/ucnv/aviglitch-utils/tree/master/bin>.
38
+
37
39
  ## Installation
38
40
 
39
41
  ```sh
@@ -8,11 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = AviGlitch::VERSION
9
9
  spec.authors = ["ucnv"]
10
10
  spec.email = ["ucnvvv@gmail.com"]
11
- spec.description = %q{AviGlitch destroys your AVI files.
12
- This library provides ways to manipulate data in each AVI frames.
13
- It can easily generate keyframes-removed video known as "datamoshing".
14
- }
15
11
  spec.summary = %q{A Ruby library to destroy your AVI files.}
12
+ spec.description = spec.summary
16
13
  spec.homepage = "http://ucnv.github.com/aviglitch/"
17
14
  spec.license = "MIT"
18
15
 
@@ -6,7 +6,6 @@ require 'stringio'
6
6
  require 'aviglitch/base'
7
7
  require 'aviglitch/frame'
8
8
  require 'aviglitch/frames'
9
- require 'aviglitch/tempfile'
10
9
 
11
10
  # AviGlitch provides the ways to glitch AVI formatted video files.
12
11
  #
@@ -32,7 +31,7 @@ require 'aviglitch/tempfile'
32
31
  #
33
32
  module AviGlitch
34
33
 
35
- VERSION = '0.1.4'
34
+ VERSION = '0.1.5'
36
35
 
37
36
  BUFFER_SIZE = 2 ** 24
38
37
 
@@ -40,7 +39,7 @@ module AviGlitch
40
39
  ##
41
40
  # Returns AviGlitch::Base instance.
42
41
  # It requires +path_or_frames+ as String or Pathname, or Frames instance.
43
- def AviGlitch.open path_or_frames
42
+ def open path_or_frames
44
43
  if path_or_frames.kind_of?(Frames)
45
44
  path_or_frames.to_avi
46
45
  else
@@ -17,7 +17,7 @@ module AviGlitch
17
17
  def initialize path
18
18
  File.open(path, 'rb') do |f|
19
19
  # copy as tempfile
20
- @file = Tempfile.open 'aviglitch'
20
+ @file = Tempfile.new 'aviglitch', binmode: true
21
21
  f.rewind
22
22
  while d = f.read(BUFFER_SIZE) do
23
23
  @file.print d
@@ -28,7 +28,6 @@ module AviGlitch
28
28
  raise 'Unsupported file passed.'
29
29
  end
30
30
  @frames = Frames.new @file
31
- # I believe Ruby's GC to close and remove the Tempfile..
32
31
  end
33
32
 
34
33
  ##
@@ -59,7 +58,7 @@ module AviGlitch
59
58
  # It also requires a block. In the block, you take the frame data
60
59
  # as a String parameter.
61
60
  # To modify the data, simply return a modified data.
62
- # With a block it returns Enumerator, without a block it returns +self+.
61
+ # Without a block it returns Enumerator, with a block it returns +self+.
63
62
  def glitch target = :all, &block # :yield: data
64
63
  if block_given?
65
64
  @frames.each do |frame|
@@ -114,6 +113,7 @@ module AviGlitch
114
113
  self.glitch :keyframe do |f|
115
114
  nil
116
115
  end
116
+ self
117
117
  end
118
118
 
119
119
  ##
@@ -147,8 +147,6 @@ module AviGlitch
147
147
  is_io = file.respond_to?(:seek) # Probably IO.
148
148
  file = File.open(file, 'rb') unless is_io
149
149
  begin
150
- file.seek 0, IO::SEEK_END
151
- eof = file.pos
152
150
  file.rewind
153
151
  unless file.read(4) == 'RIFF'
154
152
  answer = false
@@ -19,8 +19,11 @@ module AviGlitch
19
19
  include Enumerable
20
20
 
21
21
  # :stopdoc:
22
+
23
+ ##
22
24
  SAFE_FRAMES_COUNT = 150000
23
25
  @@warn_if_frames_are_too_large = true
26
+
24
27
  # :startdoc:
25
28
 
26
29
  attr_reader :meta
@@ -61,7 +64,7 @@ module AviGlitch
61
64
  # It returns Enumerator if a block is not given.
62
65
  def each
63
66
  if block_given?
64
- temp = Tempfile.new 'frames'
67
+ temp = Tempfile.new 'frames', binmode: true
65
68
  frames_data_as_io(temp, Proc.new)
66
69
  overwrite temp
67
70
  temp.close!
@@ -86,7 +89,7 @@ module AviGlitch
86
89
  end
87
90
 
88
91
  def frames_data_as_io io = nil, block = nil #:nodoc:
89
- io = Tempfile.new('tmep') if io.nil?
92
+ io = Tempfile.new('tmep', binmode: true) if io.nil?
90
93
  @meta = @meta.select do |m|
91
94
  @io.pos = @pos_of_movi + m[:offset] + 8 # 8 for id and size
92
95
  frame = Frame.new(@io.read(m[:size]), m[:id], m[:flag])
@@ -160,12 +163,11 @@ module AviGlitch
160
163
  def concat other_frames
161
164
  raise TypeError unless other_frames.kind_of?(Frames)
162
165
  # data
163
- this_data = Tempfile.new 'this'
166
+ this_data = Tempfile.new 'this', binmode: true
164
167
  self.frames_data_as_io this_data
165
- other_data = Tempfile.new 'other'
168
+ other_data = Tempfile.new 'other', binmode: true
166
169
  other_frames.frames_data_as_io other_data
167
- this_data.seek 0, IO::SEEK_END
168
- this_size = this_data.pos
170
+ this_size = this_data.size
169
171
  other_data.rewind
170
172
  while d = other_data.read(BUFFER_SIZE) do
171
173
  this_data.print d
@@ -181,6 +183,7 @@ module AviGlitch
181
183
  # close
182
184
  overwrite this_data
183
185
  this_data.close!
186
+ self
184
187
  end
185
188
 
186
189
  ##
@@ -293,10 +296,9 @@ module AviGlitch
293
296
  def push frame
294
297
  raise TypeError unless frame.kind_of? Frame
295
298
  # data
296
- this_data = Tempfile.new 'this'
299
+ this_data = Tempfile.new 'this', binmode: true
297
300
  self.frames_data_as_io this_data
298
- this_data.seek 0, IO::SEEK_END
299
- this_size = this_data.pos
301
+ this_size = this_data.size
300
302
  this_data.print frame.id
301
303
  this_data.print [frame.data.size].pack('V')
302
304
  this_data.print frame.data
@@ -347,6 +349,7 @@ module AviGlitch
347
349
  frame.flag = 0 if frame.is_keyframe?
348
350
  end
349
351
  end
352
+ self
350
353
  end
351
354
 
352
355
  ##
@@ -8,4 +8,7 @@ OUTPUT_DIR = FILES_DIR + 'output'
8
8
 
9
9
  RSpec.configure do |config|
10
10
  config.filter_run_excluding :skip => true
11
+ config.expect_with :rspec do |c|
12
+ c.syntax = [:should, :expect]
13
+ end
11
14
  end
metadata CHANGED
@@ -1,97 +1,84 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: aviglitch
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 4
10
- version: 0.1.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.5
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - ucnv
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2014-04-10 00:00:00 +09:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- version_requirements: &id001 !ruby/object:Gem::Requirement
23
- none: false
24
- requirements:
25
- - - ~>
26
- - !ruby/object:Gem::Version
27
- hash: 9
28
- segments:
29
- - 1
30
- - 3
31
- version: "1.3"
32
- prerelease: false
33
- requirement: *id001
34
- type: :development
11
+ date: 2014-12-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
35
14
  name: bundler
36
- - !ruby/object:Gem::Dependency
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
40
- - - ~>
41
- - !ruby/object:Gem::Version
42
- hash: 35
43
- segments:
44
- - 10
45
- - 0
46
- version: "10.0"
47
- prerelease: false
48
- requirement: *id002
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
49
20
  type: :development
50
- name: rake
51
- - !ruby/object:Gem::Dependency
52
- version_requirements: &id003 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - ~>
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 2
60
- - 0
61
- version: "2.0"
62
21
  prerelease: false
63
- requirement: *id003
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
64
34
  type: :development
65
- name: rspec
66
- - !ruby/object:Gem::Dependency
67
- version_requirements: &id004 !ruby/object:Gem::Requirement
68
- none: false
69
- requirements:
70
- - - ~>
71
- - !ruby/object:Gem::Version
72
- hash: 27
73
- segments:
74
- - 4
75
- - 0
76
- version: "4.0"
77
35
  prerelease: false
78
- requirement: *id004
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
79
48
  type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
80
56
  name: rdoc
81
- description: "AviGlitch destroys your AVI files.\n This library provides ways to manipulate data in each AVI frames.\n It can easily generate keyframes-removed video known as \"datamoshing\".\n "
82
- email:
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.0'
69
+ description: A Ruby library to destroy your AVI files.
70
+ email:
83
71
  - ucnvvv@gmail.com
84
- executables:
72
+ executables:
85
73
  - datamosh
86
74
  extensions: []
87
-
88
- extra_rdoc_files:
75
+ extra_rdoc_files:
89
76
  - README.md
90
77
  - LICENSE
91
- files:
92
- - .gitignore
93
- - .rspec
94
- - .travis.yml
78
+ files:
79
+ - ".gitignore"
80
+ - ".rspec"
81
+ - ".travis.yml"
95
82
  - ChangeLog.md
96
83
  - Gemfile
97
84
  - LICENSE
@@ -103,50 +90,41 @@ files:
103
90
  - lib/aviglitch/base.rb
104
91
  - lib/aviglitch/frame.rb
105
92
  - lib/aviglitch/frames.rb
106
- - lib/aviglitch/tempfile.rb
107
93
  - spec/aviglitch_spec.rb
108
94
  - spec/datamosh_spec.rb
109
95
  - spec/files/sample.avi
110
96
  - spec/frames_spec.rb
111
97
  - spec/spec_helper.rb
112
- has_rdoc: true
113
98
  homepage: http://ucnv.github.com/aviglitch/
114
- licenses:
99
+ licenses:
115
100
  - MIT
101
+ metadata: {}
116
102
  post_install_message:
117
- rdoc_options:
118
- - -m
103
+ rdoc_options:
104
+ - "-m"
119
105
  - README.md
120
- require_paths:
106
+ require_paths:
121
107
  - lib
122
- required_ruby_version: !ruby/object:Gem::Requirement
123
- none: false
124
- requirements:
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ requirements:
125
110
  - - ">="
126
- - !ruby/object:Gem::Version
127
- hash: 3
128
- segments:
129
- - 0
130
- version: "0"
131
- required_rubygems_version: !ruby/object:Gem::Requirement
132
- none: false
133
- requirements:
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ required_rubygems_version: !ruby/object:Gem::Requirement
114
+ requirements:
134
115
  - - ">="
135
- - !ruby/object:Gem::Version
136
- hash: 3
137
- segments:
138
- - 0
139
- version: "0"
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
140
118
  requirements: []
141
-
142
119
  rubyforge_project:
143
- rubygems_version: 1.6.2
120
+ rubygems_version: 2.2.2
144
121
  signing_key:
145
- specification_version: 3
122
+ specification_version: 4
146
123
  summary: A Ruby library to destroy your AVI files.
147
- test_files:
124
+ test_files:
148
125
  - spec/aviglitch_spec.rb
149
126
  - spec/datamosh_spec.rb
150
127
  - spec/files/sample.avi
151
128
  - spec/frames_spec.rb
152
129
  - spec/spec_helper.rb
130
+ has_rdoc: true
@@ -1,8 +0,0 @@
1
- module AviGlitch
2
- class Tempfile < Tempfile
3
- def initialize *args
4
- super *args
5
- self.binmode
6
- end
7
- end
8
- end