libis-format 0.9.38 → 0.9.39

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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +13 -13
  3. data/data/types.yml +85 -9
  4. data/lib/libis/format.rb +1 -0
  5. data/lib/libis/format/config.rb +2 -0
  6. data/lib/libis/format/converter/audio_converter.rb +181 -0
  7. data/lib/libis/format/converter/video_converter.rb +194 -0
  8. data/lib/libis/format/ffmpeg.rb +41 -0
  9. data/lib/libis/format/identifier.rb +1 -0
  10. data/lib/libis/format/pdf_to_pdfa.rb +1 -3
  11. data/lib/libis/format/pdfa_validator.rb +1 -1
  12. data/lib/libis/format/version.rb +1 -1
  13. data/libis-format.gemspec +1 -0
  14. data/spec/converter_spec.rb +116 -20
  15. data/spec/data/audio/carlin_disappointed.aac +0 -0
  16. data/spec/data/audio/carlin_disappointed.ac3 +0 -0
  17. data/spec/data/audio/carlin_disappointed.aiff +0 -0
  18. data/spec/data/audio/carlin_disappointed.au +0 -0
  19. data/spec/data/audio/carlin_disappointed.flac +0 -0
  20. data/spec/data/audio/carlin_disappointed.m4a +0 -0
  21. data/spec/data/audio/carlin_disappointed.mka +0 -0
  22. data/spec/data/audio/carlin_disappointed.mp3 +0 -0
  23. data/spec/data/audio/carlin_disappointed.ogg +0 -0
  24. data/spec/data/audio/carlin_disappointed.ra +0 -0
  25. data/spec/data/audio/carlin_disappointed.voc +0 -0
  26. data/spec/data/audio/carlin_disappointed.wav +0 -0
  27. data/spec/data/audio/carlin_disappointed.wma +0 -0
  28. data/spec/data/audio/greensleeves.aac +0 -0
  29. data/spec/data/audio/greensleeves.ac3 +0 -0
  30. data/spec/data/audio/greensleeves.aiff +0 -0
  31. data/spec/data/audio/greensleeves.au +0 -0
  32. data/spec/data/audio/greensleeves.flac +0 -0
  33. data/spec/data/audio/greensleeves.m4a +0 -0
  34. data/spec/data/audio/greensleeves.mka +0 -0
  35. data/spec/data/audio/greensleeves.mp3 +0 -0
  36. data/spec/data/audio/greensleeves.ogg +0 -0
  37. data/spec/data/audio/greensleeves.ra +0 -0
  38. data/spec/data/audio/greensleeves.voc +0 -0
  39. data/spec/data/audio/greensleeves.wav +0 -0
  40. data/spec/data/audio/greensleeves.wma +0 -0
  41. data/spec/data/audio/king_nonviolence.aac +0 -0
  42. data/spec/data/audio/king_nonviolence.ac3 +0 -0
  43. data/spec/data/audio/king_nonviolence.aiff +0 -0
  44. data/spec/data/audio/king_nonviolence.au +0 -0
  45. data/spec/data/audio/king_nonviolence.flac +0 -0
  46. data/spec/data/audio/king_nonviolence.m4a +0 -0
  47. data/spec/data/audio/king_nonviolence.mka +0 -0
  48. data/spec/data/audio/king_nonviolence.mp3 +0 -0
  49. data/spec/data/audio/king_nonviolence.ogg +0 -0
  50. data/spec/data/audio/king_nonviolence.ra +0 -0
  51. data/spec/data/audio/king_nonviolence.voc +0 -0
  52. data/spec/data/audio/king_nonviolence.wav +0 -0
  53. data/spec/data/audio/king_nonviolence.wma +0 -0
  54. data/spec/data/audio/top_gun_secret.aac +0 -0
  55. data/spec/data/audio/top_gun_secret.ac3 +0 -0
  56. data/spec/data/audio/top_gun_secret.aiff +0 -0
  57. data/spec/data/audio/top_gun_secret.au +0 -0
  58. data/spec/data/audio/top_gun_secret.flac +0 -0
  59. data/spec/data/audio/top_gun_secret.m4a +0 -0
  60. data/spec/data/audio/top_gun_secret.mka +0 -0
  61. data/spec/data/audio/top_gun_secret.mp3 +0 -0
  62. data/spec/data/audio/top_gun_secret.ogg +0 -0
  63. data/spec/data/audio/top_gun_secret.ra +0 -0
  64. data/spec/data/audio/top_gun_secret.voc +0 -0
  65. data/spec/data/audio/top_gun_secret.wav +0 -0
  66. data/spec/data/audio/top_gun_secret.wma +0 -0
  67. data/spec/data/video/SampleVideo_1080x720_2mb.flv +0 -0
  68. data/spec/data/video/SampleVideo_1080x720_2mb.mkv +0 -0
  69. data/spec/data/video/SampleVideo_1080x720_2mb.mp4 +0 -0
  70. data/spec/data/video/SampleVideo_176x144_2mb.3gp +0 -0
  71. data/spec/data/video/SampleVideo_320x240_2mb.3gp +0 -0
  72. data/spec/data/video/SampleVideo_360x240_2mb.flv +0 -0
  73. data/spec/data/video/SampleVideo_360x240_2mb.mkv +0 -0
  74. data/spec/data/video/SampleVideo_360x240_2mb.mp4 +0 -0
  75. data/spec/data/video/sample.avi +0 -0
  76. data/spec/data/video/sample.flv +0 -0
  77. data/spec/data/video/sample.mkv +0 -0
  78. data/spec/data/video/sample.mov +0 -0
  79. data/spec/data/video/sample.mp4 +0 -0
  80. data/spec/data/video/sample.mpg +0 -0
  81. data/spec/data/video/sample.swf +0 -0
  82. data/spec/data/video/sample.webm +0 -0
  83. data/spec/data/video/sample.wmv +0 -0
  84. data/spec/identifier_spec.rb +29 -39
  85. data/spec/spec_helper.rb +50 -1
  86. metadata +157 -2
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -69,8 +69,6 @@ describe 'Identfier' do
69
69
  ::Libis::Tools::Config.logger.appenders =
70
70
  ::Logging::Appenders.string_io('StringIO', layout: ::Libis::Tools::Config.get_log_formatter)
71
71
  ::Libis::Tools::Config.logger.level = :all
72
- ::Libis::Format::Config[:droid_path] = '/opt/droid/droid.sh'
73
- ::Libis::Format::Config[:fido_path] = File.join(ENV['HOME'], 'bin', 'fido')
74
72
  end
75
73
 
76
74
  let (:identifier) {::Libis::Format::Identifier}
@@ -106,53 +104,46 @@ describe 'Identfier' do
106
104
  end).to be_truthy
107
105
  end
108
106
 
109
- it 'should identify all files in a folder at once' do
110
- result = identifier.get (dir)
111
- expect(result[:formats].size).to be >= formatlist.size
112
- formatlist.each do |file, format|
113
- expect(result[:formats][File.join(dir, file)]).to include format
114
- end
115
- end
107
+ context 'Fido and Droid', if: (File.exists?(Libis::Format::Config[:droid_path]) &&
108
+ File.exists?(Libis::Format::Config[:fido_path])) do
116
109
 
117
- it 'should identify all files in a folder with base_dir option' do
118
- result = identifier.get(dir, base_dir: dir)
119
- expect(result[:formats].size).to be >= formatlist.size
120
- formatlist.each do |file, format|
121
- expect(result[:formats][file]).to include format
110
+ it 'should identify all files in a folder at once' do
111
+ result = identifier.get (dir)
112
+ expect(result[:formats].size).to be >= formatlist.size
113
+ formatlist.each do |file, format|
114
+ expect(result[:formats][File.join(dir, file)]).to include format
115
+ end
122
116
  end
123
- end
124
117
 
125
- it 'should identify all files in a list at once' do
126
- filelist = fidolist.keys.map {|file| File.join(dir, file)}
127
- result = identifier.get (filelist)
128
- expect(result[:formats].size).to be >= formatlist.size
129
- formatlist.each do |file, format|
130
- expect(result[:formats][File.join(dir, file)]).to include format
118
+ it 'should identify all files in a folder with base_dir option' do
119
+ result = identifier.get(dir, base_dir: dir)
120
+ expect(result[:formats].size).to be >= formatlist.size
121
+ formatlist.each do |file, format|
122
+ expect(result[:formats][file]).to include format
123
+ end
131
124
  end
132
- end
133
125
 
134
- it 'should identify all files in a list with base_dir option' do
135
- filelist = fidolist.keys.map {|file| File.join(dir, file)}
136
- result = identifier.get(filelist, base_dir: dir)
137
- expect(result[:formats].size).to be >= formatlist.size
138
- formatlist.each do |file, format|
139
- expect(result[:formats][file]).to include format
126
+ it 'should identify all files in a list at once' do
127
+ filelist = fidolist.keys.map {|file| File.join(dir, file)}
128
+ result = identifier.get (filelist)
129
+ expect(result[:formats].size).to be >= formatlist.size
130
+ formatlist.each do |file, format|
131
+ expect(result[:formats][File.join(dir, file)]).to include format
132
+ end
140
133
  end
141
- end
142
-
143
- context 'individual files' do
144
134
 
145
- formatlist.each do |file, format|
146
- it "should identify test document '#{file}'" do
147
- result = identifier.get (File.join(dir, file))
148
- expect(result[:formats].size).to be 1
149
- expect(result[:formats][File.join(dir, file)]).to include format
135
+ it 'should identify all files in a list with base_dir option' do
136
+ filelist = fidolist.keys.map {|file| File.join(dir, file)}
137
+ result = identifier.get(filelist, base_dir: dir)
138
+ expect(result[:formats].size).to be >= formatlist.size
139
+ formatlist.each do |file, format|
140
+ expect(result[:formats][file]).to include format
150
141
  end
151
142
  end
152
143
 
153
144
  end
154
145
 
155
- context 'Fido' do
146
+ context 'Fido', if: File.exists?(Libis::Format::Config[:fido_path]) do
156
147
 
157
148
  # expect(identifier.fido_formats.size).to be 1
158
149
  # expect(File.basename(identifier.fido_formats.first)).to eq 'lias_formats.xml'
@@ -169,7 +160,7 @@ describe 'Identfier' do
169
160
 
170
161
  it 'should identify dir of test documents' do
171
162
  filelist = fidolist.keys.map {|file| File.join(dir, file)}
172
- fido_result = ::Libis::Format::Fido.instance.run_dir(dir)
163
+ fido_result = ::Libis::Format::Fido.instance.run_dir(dir, false)
173
164
  filelist.each do |filename|
174
165
  result = fido_result[filename]
175
166
  result = result[0] if result
@@ -179,5 +170,4 @@ describe 'Identfier' do
179
170
  end
180
171
 
181
172
  end
182
-
183
173
  end
data/spec/spec_helper.rb CHANGED
@@ -6,4 +6,53 @@ Bundler.setup
6
6
 
7
7
  require 'rspec'
8
8
  require 'libis-format'
9
- require 'libis-tools'
9
+ require 'libis-tools'
10
+
11
+ require 'chromaprint'
12
+
13
+ RSpec::Matchers.define(:be_same_file_as) do |exected_file_path|
14
+ match do |actual_file_path|
15
+ expect(md5_hash(actual_file_path)).to eq md5_hash(exected_file_path)
16
+ end
17
+
18
+ def md5_hash(file_path)
19
+ Digest::MD5.hexdigest(File.read(file_path))
20
+ end
21
+ end
22
+
23
+ RSpec::Matchers.define :sound_like do |exp_file, threshold, rate, channels|
24
+ match do |tgt_file|
25
+ rate ||= 96000
26
+ channels ||= 1
27
+ threshold ||= 0.9
28
+
29
+ if File.exists?(exp_file) && File.exists?(tgt_file)
30
+ # Convert input files into raw 16-bit signed audio (WAV) to process with Chramaprint
31
+ exp_raw = File.join('','tmp', File.basename(exp_file) + '.wav')
32
+ tgt_raw = File.join('','tmp', File.basename(tgt_file) + '.wav')
33
+ FileUtils.rm(exp_raw, force: true)
34
+ FileUtils.rm(tgt_raw, force: true)
35
+ cvt_cmd = "sox %s -e signed -b 16 -t wav %s rate #{rate} channels #{channels}"
36
+ %x"#{cvt_cmd % [exp_file,exp_raw]}"
37
+ %x"#{cvt_cmd % [tgt_file,tgt_raw]}"
38
+ exp_audio = File.binread(exp_raw)
39
+ tgt_audio = File.binread(tgt_raw)
40
+
41
+ # Get audio fingerprints
42
+ chromaprint = Chromaprint::Context.new(rate, channels, Chromaprint::ALGORITHM_TEST3)
43
+ exp_fp = chromaprint.get_fingerprint(exp_audio)
44
+ tgt_fp = chromaprint.get_fingerprint(tgt_audio)
45
+
46
+ # Cleanup files
47
+ FileUtils.rm(exp_raw, force: true)
48
+ FileUtils.rm(tgt_raw, force: true)
49
+
50
+ # Compare fingerprints and compare result against threshold
51
+ cmp = exp_fp.compare(tgt_fp)
52
+ # puts "Threshold[#{File.basename(exp_file)},#{File.basename(tgt_file)}: #{cmp}"
53
+ cmp > threshold
54
+ else
55
+ false
56
+ end
57
+ end
58
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libis-format
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.38
4
+ version: 0.9.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kris Dekeyser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-03 00:00:00.000000000 Z
11
+ date: 2017-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0.3'
139
+ - !ruby/object:Gem::Dependency
140
+ name: chromaprint
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.0.2
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.0.2
139
153
  description: Collection of tools and classes that help to identify formats of binary
140
154
  files and create derivative copies (e.g. PDF from Word).
141
155
  email:
@@ -168,6 +182,7 @@ files:
168
182
  - lib/libis/format.rb
169
183
  - lib/libis/format/config.rb
170
184
  - lib/libis/format/converter.rb
185
+ - lib/libis/format/converter/audio_converter.rb
171
186
  - lib/libis/format/converter/base.rb
172
187
  - lib/libis/format/converter/chain.rb
173
188
  - lib/libis/format/converter/image_converter.rb
@@ -175,8 +190,10 @@ files:
175
190
  - lib/libis/format/converter/office_converter.rb
176
191
  - lib/libis/format/converter/pdf_converter.rb
177
192
  - lib/libis/format/converter/repository.rb
193
+ - lib/libis/format/converter/video_converter.rb
178
194
  - lib/libis/format/droid.rb
179
195
  - lib/libis/format/extension_identification.rb
196
+ - lib/libis/format/ffmpeg.rb
180
197
  - lib/libis/format/fido.rb
181
198
  - lib/libis/format/file_tool.rb
182
199
  - lib/libis/format/identification_tool.rb
@@ -197,6 +214,58 @@ files:
197
214
  - spec/data/Cevennes2.ppm
198
215
  - spec/data/NikonRaw-CameraRaw.TIF
199
216
  - spec/data/NikonRaw-CaptureOne.tif
217
+ - spec/data/audio/carlin_disappointed.aac
218
+ - spec/data/audio/carlin_disappointed.ac3
219
+ - spec/data/audio/carlin_disappointed.aiff
220
+ - spec/data/audio/carlin_disappointed.au
221
+ - spec/data/audio/carlin_disappointed.flac
222
+ - spec/data/audio/carlin_disappointed.m4a
223
+ - spec/data/audio/carlin_disappointed.mka
224
+ - spec/data/audio/carlin_disappointed.mp3
225
+ - spec/data/audio/carlin_disappointed.ogg
226
+ - spec/data/audio/carlin_disappointed.ra
227
+ - spec/data/audio/carlin_disappointed.voc
228
+ - spec/data/audio/carlin_disappointed.wav
229
+ - spec/data/audio/carlin_disappointed.wma
230
+ - spec/data/audio/greensleeves.aac
231
+ - spec/data/audio/greensleeves.ac3
232
+ - spec/data/audio/greensleeves.aiff
233
+ - spec/data/audio/greensleeves.au
234
+ - spec/data/audio/greensleeves.flac
235
+ - spec/data/audio/greensleeves.m4a
236
+ - spec/data/audio/greensleeves.mka
237
+ - spec/data/audio/greensleeves.mp3
238
+ - spec/data/audio/greensleeves.ogg
239
+ - spec/data/audio/greensleeves.ra
240
+ - spec/data/audio/greensleeves.voc
241
+ - spec/data/audio/greensleeves.wav
242
+ - spec/data/audio/greensleeves.wma
243
+ - spec/data/audio/king_nonviolence.aac
244
+ - spec/data/audio/king_nonviolence.ac3
245
+ - spec/data/audio/king_nonviolence.aiff
246
+ - spec/data/audio/king_nonviolence.au
247
+ - spec/data/audio/king_nonviolence.flac
248
+ - spec/data/audio/king_nonviolence.m4a
249
+ - spec/data/audio/king_nonviolence.mka
250
+ - spec/data/audio/king_nonviolence.mp3
251
+ - spec/data/audio/king_nonviolence.ogg
252
+ - spec/data/audio/king_nonviolence.ra
253
+ - spec/data/audio/king_nonviolence.voc
254
+ - spec/data/audio/king_nonviolence.wav
255
+ - spec/data/audio/king_nonviolence.wma
256
+ - spec/data/audio/top_gun_secret.aac
257
+ - spec/data/audio/top_gun_secret.ac3
258
+ - spec/data/audio/top_gun_secret.aiff
259
+ - spec/data/audio/top_gun_secret.au
260
+ - spec/data/audio/top_gun_secret.flac
261
+ - spec/data/audio/top_gun_secret.m4a
262
+ - spec/data/audio/top_gun_secret.mka
263
+ - spec/data/audio/top_gun_secret.mp3
264
+ - spec/data/audio/top_gun_secret.ogg
265
+ - spec/data/audio/top_gun_secret.ra
266
+ - spec/data/audio/top_gun_secret.voc
267
+ - spec/data/audio/top_gun_secret.wav
268
+ - spec/data/audio/top_gun_secret.wma
200
269
  - spec/data/multipage.tif
201
270
  - spec/data/multipage.tif.jp2
202
271
  - spec/data/test-ead.xml
@@ -224,6 +293,23 @@ files:
224
293
  - spec/data/test.xlsx
225
294
  - spec/data/test.xml
226
295
  - spec/data/test_pdfa.pdf
296
+ - spec/data/video/SampleVideo_1080x720_2mb.flv
297
+ - spec/data/video/SampleVideo_1080x720_2mb.mkv
298
+ - spec/data/video/SampleVideo_1080x720_2mb.mp4
299
+ - spec/data/video/SampleVideo_176x144_2mb.3gp
300
+ - spec/data/video/SampleVideo_320x240_2mb.3gp
301
+ - spec/data/video/SampleVideo_360x240_2mb.flv
302
+ - spec/data/video/SampleVideo_360x240_2mb.mkv
303
+ - spec/data/video/SampleVideo_360x240_2mb.mp4
304
+ - spec/data/video/sample.avi
305
+ - spec/data/video/sample.flv
306
+ - spec/data/video/sample.mkv
307
+ - spec/data/video/sample.mov
308
+ - spec/data/video/sample.mp4
309
+ - spec/data/video/sample.mpg
310
+ - spec/data/video/sample.swf
311
+ - spec/data/video/sample.webm
312
+ - spec/data/video/sample.wmv
227
313
  - spec/identifier_spec.rb
228
314
  - spec/spec_helper.rb
229
315
  - spec/test_types.yml
@@ -264,6 +350,58 @@ test_files:
264
350
  - spec/data/Cevennes2.ppm
265
351
  - spec/data/NikonRaw-CameraRaw.TIF
266
352
  - spec/data/NikonRaw-CaptureOne.tif
353
+ - spec/data/audio/carlin_disappointed.aac
354
+ - spec/data/audio/carlin_disappointed.ac3
355
+ - spec/data/audio/carlin_disappointed.aiff
356
+ - spec/data/audio/carlin_disappointed.au
357
+ - spec/data/audio/carlin_disappointed.flac
358
+ - spec/data/audio/carlin_disappointed.m4a
359
+ - spec/data/audio/carlin_disappointed.mka
360
+ - spec/data/audio/carlin_disappointed.mp3
361
+ - spec/data/audio/carlin_disappointed.ogg
362
+ - spec/data/audio/carlin_disappointed.ra
363
+ - spec/data/audio/carlin_disappointed.voc
364
+ - spec/data/audio/carlin_disappointed.wav
365
+ - spec/data/audio/carlin_disappointed.wma
366
+ - spec/data/audio/greensleeves.aac
367
+ - spec/data/audio/greensleeves.ac3
368
+ - spec/data/audio/greensleeves.aiff
369
+ - spec/data/audio/greensleeves.au
370
+ - spec/data/audio/greensleeves.flac
371
+ - spec/data/audio/greensleeves.m4a
372
+ - spec/data/audio/greensleeves.mka
373
+ - spec/data/audio/greensleeves.mp3
374
+ - spec/data/audio/greensleeves.ogg
375
+ - spec/data/audio/greensleeves.ra
376
+ - spec/data/audio/greensleeves.voc
377
+ - spec/data/audio/greensleeves.wav
378
+ - spec/data/audio/greensleeves.wma
379
+ - spec/data/audio/king_nonviolence.aac
380
+ - spec/data/audio/king_nonviolence.ac3
381
+ - spec/data/audio/king_nonviolence.aiff
382
+ - spec/data/audio/king_nonviolence.au
383
+ - spec/data/audio/king_nonviolence.flac
384
+ - spec/data/audio/king_nonviolence.m4a
385
+ - spec/data/audio/king_nonviolence.mka
386
+ - spec/data/audio/king_nonviolence.mp3
387
+ - spec/data/audio/king_nonviolence.ogg
388
+ - spec/data/audio/king_nonviolence.ra
389
+ - spec/data/audio/king_nonviolence.voc
390
+ - spec/data/audio/king_nonviolence.wav
391
+ - spec/data/audio/king_nonviolence.wma
392
+ - spec/data/audio/top_gun_secret.aac
393
+ - spec/data/audio/top_gun_secret.ac3
394
+ - spec/data/audio/top_gun_secret.aiff
395
+ - spec/data/audio/top_gun_secret.au
396
+ - spec/data/audio/top_gun_secret.flac
397
+ - spec/data/audio/top_gun_secret.m4a
398
+ - spec/data/audio/top_gun_secret.mka
399
+ - spec/data/audio/top_gun_secret.mp3
400
+ - spec/data/audio/top_gun_secret.ogg
401
+ - spec/data/audio/top_gun_secret.ra
402
+ - spec/data/audio/top_gun_secret.voc
403
+ - spec/data/audio/top_gun_secret.wav
404
+ - spec/data/audio/top_gun_secret.wma
267
405
  - spec/data/multipage.tif
268
406
  - spec/data/multipage.tif.jp2
269
407
  - spec/data/test-ead.xml
@@ -291,6 +429,23 @@ test_files:
291
429
  - spec/data/test.xlsx
292
430
  - spec/data/test.xml
293
431
  - spec/data/test_pdfa.pdf
432
+ - spec/data/video/SampleVideo_1080x720_2mb.flv
433
+ - spec/data/video/SampleVideo_1080x720_2mb.mkv
434
+ - spec/data/video/SampleVideo_1080x720_2mb.mp4
435
+ - spec/data/video/SampleVideo_176x144_2mb.3gp
436
+ - spec/data/video/SampleVideo_320x240_2mb.3gp
437
+ - spec/data/video/SampleVideo_360x240_2mb.flv
438
+ - spec/data/video/SampleVideo_360x240_2mb.mkv
439
+ - spec/data/video/SampleVideo_360x240_2mb.mp4
440
+ - spec/data/video/sample.avi
441
+ - spec/data/video/sample.flv
442
+ - spec/data/video/sample.mkv
443
+ - spec/data/video/sample.mov
444
+ - spec/data/video/sample.mp4
445
+ - spec/data/video/sample.mpg
446
+ - spec/data/video/sample.swf
447
+ - spec/data/video/sample.webm
448
+ - spec/data/video/sample.wmv
294
449
  - spec/identifier_spec.rb
295
450
  - spec/spec_helper.rb
296
451
  - spec/test_types.yml