hydra-derivatives 1.0.0.rc1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a187e27d98d4794b3b08e838f1447ab327c3c087
4
- data.tar.gz: af4f7cb52f6ba4baa4030fec666246c56d15f316
3
+ metadata.gz: fcf72cd8457040e024d1afc7165e39fcd934b9e6
4
+ data.tar.gz: c32e5d6d99fd839685c76d3e7ae5f535ee9a2df5
5
5
  SHA512:
6
- metadata.gz: 088f11cb8055706f5598635efa2cfa2b30f3c9cb68da5569b462fc416198a19aad676464fa3696e41d21810e00414033e1cca6cfb328e52772ca68cb39e33b4e
7
- data.tar.gz: bb4f41955207630d92d09bc3c7e53b1a1a93b5c1e46efe711eb6136725d3205d02d7495a2be775b1e669bb6a8895c341d70fbda51de61adfafa1804e6dd9ec42
6
+ metadata.gz: d0a0f31a6c6be71ed6d88ea9504cc6f16800449dd44d70c8b5c487cbcd232fee19acccb64c4f1b71a7d64a5029307a014b29698253d5433db6e945ff69399d56
7
+ data.tar.gz: 33c5c95a19390035f4b4227acae0dd78ccf6053de8b9215f25b0f29559a9b9e3dc03cfe544d92bc15a20708f67f1a76a66aedc400fbae0179ef148381422fdbb
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0.rc1
1
+ 1.0.0
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
  version = File.read(File.expand_path("../VERSION", __FILE__)).strip
3
3
 
4
+
4
5
  Gem::Specification.new do |spec|
5
6
  spec.name = "hydra-derivatives"
6
7
  spec.version = version
@@ -16,15 +17,16 @@ Gem::Specification.new do |spec|
16
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
18
  spec.require_paths = ["lib"]
18
19
 
19
- spec.add_development_dependency "bundler", "~> 1.3"
20
- spec.add_development_dependency "rake"
21
- spec.add_development_dependency "jettywrapper"
22
- spec.add_development_dependency "rspec"
20
+ spec.add_development_dependency 'bundler', '~> 1.3'
21
+ spec.add_development_dependency 'rake', '~> 10.1'
22
+ spec.add_development_dependency 'jettywrapper', '~> 2.0'
23
+ spec.add_development_dependency 'rspec', '~> 3.1'
23
24
 
24
- spec.add_dependency 'active-fedora', '~> 9.0.0.rc2'
25
- spec.add_dependency 'hydra-file_characterization'
26
- spec.add_dependency 'mini_magick'
27
- spec.add_dependency 'activesupport', '>= 3.2.13', '< 5.0'
28
- spec.add_dependency 'mime-types'
29
- spec.add_dependency 'deprecation'
25
+ spec.add_dependency 'active-fedora', '~> 9.0'
26
+ spec.add_dependency 'hydra-file_characterization', '~> 0.3'
27
+ spec.add_dependency 'mini_magick', '>= 3.2', '< 5'
28
+ spec.add_dependency 'activesupport', '~> 4.0'
29
+ spec.add_dependency 'mime-types', '~> 2.3'
30
+ spec.add_dependency 'deprecation', '~> 0.1'
30
31
  end
32
+
@@ -20,6 +20,9 @@ module Hydra
20
20
  autoload :Jpeg2kImage
21
21
  autoload :Logger
22
22
 
23
+ # Raised if the timout elapses
24
+ class TimeoutError < ::Timeout::Error; end
25
+
23
26
  def self.config
24
27
  @config ||= reset_config!
25
28
  end
@@ -79,8 +82,17 @@ module Hydra
79
82
  # transform_file :content, { :mp4 => {format: 'mp4'}, :webm => {format: 'webm'} }, processor: :video
80
83
  #
81
84
  def transform_file(file_name, transform_directives, opts={})
82
- processor = opts[:processor] ? opts[:processor] : :image
83
- "Hydra::Derivatives::#{processor.to_s.classify}".constantize.new(self, file_name, transform_directives).process
85
+ processor = processor_class(opts[:processor] || :image)
86
+ processor.new(self, file_name, transform_directives).process
87
+ end
88
+
89
+ def processor_class(processor)
90
+ case processor
91
+ when :video
92
+ Hydra::Derivatives::Video::Processor
93
+ else
94
+ "Hydra::Derivatives::#{processor.to_s.classify}".constantize
95
+ end
84
96
  end
85
97
 
86
98
  def transform_datastream(file_name, transform_directives, opts={})
@@ -9,7 +9,7 @@ module Hydra
9
9
  execute "#{Hydra::Derivatives.libreoffice_path} --invisible --headless --convert-to #{format} --outdir #{outdir} #{path}"
10
10
  end
11
11
 
12
- def encode_file(dest_dsid, file_suffix, mime_type, options = '')
12
+ def encode_file(dest_path, file_suffix, mime_type, options = '')
13
13
  new_output = ''
14
14
  source_file.to_tempfile do |f|
15
15
  if mime_type == 'image/jpeg'
@@ -24,7 +24,7 @@ module Hydra
24
24
  end
25
25
  end
26
26
  out_file = File.open(new_output, "rb")
27
- object.add_file_datastream(out_file.read, dsid: dest_dsid, mime_type: mime_type)
27
+ object.add_file(out_file.read, path: dest_path, mime_type: mime_type)
28
28
  File.unlink(out_file)
29
29
  end
30
30
 
@@ -25,7 +25,7 @@ module Hydra
25
25
  end
26
26
  end
27
27
 
28
- def encode_file(dest_dsid, recipe, opts={})
28
+ def encode_file(dest_path, recipe, opts={})
29
29
  output_file = self.class.tmp_file('.jp2')
30
30
  if opts[:file_path]
31
31
  self.class.encode(opts[:file_path], recipe, output_file)
@@ -35,7 +35,7 @@ module Hydra
35
35
  end
36
36
  end
37
37
  out_file = File.open(output_file, "rb")
38
- object.add_file_datastream(out_file.read, dsid: dest_dsid, mime_type: 'image/jp2')
38
+ object.add_file(out_file.read, path: dest_path, mime_type: 'image/jp2')
39
39
  File.unlink(output_file)
40
40
  end
41
41
 
@@ -9,6 +9,7 @@ module Hydra
9
9
  extend ActiveSupport::Concern
10
10
 
11
11
  included do
12
+ class_attribute :timeout
12
13
  extend Open3
13
14
  end
14
15
 
@@ -26,20 +27,44 @@ module Hydra
26
27
  def options_for(format)
27
28
  end
28
29
 
29
- def encode_file(dest_dsid, file_suffix, mime_type, options = '')
30
+ def encode_file(dest_path, file_suffix, mime_type, options = '')
30
31
  out_file = nil
31
32
  output_file = Dir::Tmpname.create(['sufia', ".#{file_suffix}"], Hydra::Derivatives.temp_file_base){}
32
33
  source_file.to_tempfile do |f|
33
34
  self.class.encode(f.path, options, output_file)
34
35
  end
35
36
  out_file = File.open(output_file, "rb")
36
- object.add_file_datastream(out_file.read, dsid: dest_dsid, mime_type: mime_type)
37
+ object.add_file(out_file.read, path: dest_path, mime_type: mime_type)
37
38
  File.unlink(output_file)
38
39
  end
39
40
 
40
41
  module ClassMethods
42
+
41
43
  def execute(command)
44
+ context = {}
45
+ if timeout
46
+ execute_with_timeout(timeout, command, context)
47
+ else
48
+ execute_without_timeout(command, context)
49
+ end
50
+ end
51
+
52
+ def execute_with_timeout(timeout, command, context)
53
+ begin
54
+ status = Timeout::timeout(timeout) do
55
+ execute_without_timeout(command, context)
56
+ end
57
+ rescue Timeout::Error => ex
58
+ pid = context[:pid]
59
+ Process.kill("KILL", pid)
60
+ raise Hydra::Derivatives::TimeoutError, "Unable to execute command \"#{command}\"\nThe command took longer than #{timeout} seconds to execute"
61
+ end
62
+
63
+ end
64
+
65
+ def execute_without_timeout(command, context)
42
66
  stdin, stdout, stderr, wait_thr = popen3(command)
67
+ context[:pid] = wait_thr[:pid]
43
68
  stdin.close
44
69
  out = stdout.read
45
70
  stdout.close
@@ -1,58 +1,10 @@
1
- module Hydra
2
- module Derivatives
3
- class Video < Processor
4
- include Ffmpeg
1
+ module Hydra::Derivatives
2
+ module Video
3
+ extend ActiveSupport::Autoload
5
4
 
6
- protected
7
-
8
- def options_for(format)
9
- input_options=""
10
- output_options = "-s #{size_attributes} #{codecs(format)}"
11
-
12
- if (format == "jpg")
13
- input_options +=" -itsoffset -2"
14
- output_options+= " -vframes 1 -an -f rawvideo"
15
- else
16
- output_options +=" #{video_attributes} #{audio_attributes}"
17
- end
18
-
19
- { Ffmpeg::OUTPUT_OPTIONS => output_options, Ffmpeg::INPUT_OPTIONS => input_options}
20
- end
21
-
22
- def video_bitrate
23
- '345k'
24
- end
25
-
26
- def video_attributes
27
- "-g 30 -b:v #{video_bitrate}"
28
- end
29
-
30
- def size_attributes
31
- "320x240"
32
- end
33
-
34
- def audio_attributes
35
- "-ac 2 -ab 96k -ar 44100"
36
- end
37
-
38
- def codecs(format)
39
- case format
40
- when 'mp4'
41
- "-vcodec libx264 -acodec libfdk_aac"
42
- when 'webm'
43
- "-vcodec libvpx -acodec libvorbis"
44
- when "mkv"
45
- "-vcodec ffv1"
46
- when "jpg"
47
- "-vcodec mjpeg"
48
- else
49
- raise ArgumentError, "Unknown format `#{format}'"
50
- end
51
- end
52
-
53
- def new_mime_type(format)
54
- format == "jpg" ? "image/jpeg" : "video/#{format}"
55
- end
5
+ eager_autoload do
6
+ autoload :Processor
7
+ autoload :Config
56
8
  end
57
9
  end
58
10
  end
@@ -0,0 +1,67 @@
1
+ module Hydra::Derivatives::Video
2
+ class Config
3
+ attr_writer :video_bitrate, :video_attributes, :size_attributes, :audio_attributes
4
+
5
+ def video_bitrate
6
+ @video_bitrate ||= default_video_bitrate
7
+ end
8
+
9
+ def video_attributes
10
+ @video_attributes ||= default_video_attributes
11
+ end
12
+
13
+ def size_attributes
14
+ @size_attributes ||= default_size_attributes
15
+ end
16
+
17
+ def audio_attributes
18
+ @audio_attributes ||= default_audio_attributes
19
+ end
20
+
21
+ def mpeg4
22
+ @mpeg4 ||= CodecConfig.new('-vcodec libx264 -acodec libfdk_aac')
23
+ end
24
+
25
+ def webm
26
+ @webm ||= CodecConfig.new('-vcodec libvpx -acodec libvorbis')
27
+ end
28
+
29
+ def mkv
30
+ @mkv ||= CodecConfig.new('-vcodec ffv1')
31
+ end
32
+
33
+ def jpeg
34
+ @jpeg ||= CodecConfig.new('-vcodec mjpeg')
35
+ end
36
+
37
+ class CodecConfig
38
+ attr_writer :codec
39
+
40
+ def initialize(default)
41
+ @codec = default
42
+ end
43
+
44
+ def codec
45
+ @codec
46
+ end
47
+ end
48
+
49
+
50
+ protected
51
+ def default_video_bitrate
52
+ '345k'
53
+ end
54
+
55
+ def default_video_attributes
56
+ "-g 30 -b:v #{video_bitrate}"
57
+ end
58
+
59
+ def default_size_attributes
60
+ "320x240"
61
+ end
62
+
63
+ def default_audio_attributes
64
+ "-ac 2 -ab 96k -ar 44100"
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,47 @@
1
+ module Hydra::Derivatives
2
+ module Video
3
+ class Processor < Hydra::Derivatives::Processor
4
+ include Ffmpeg
5
+
6
+ class_attribute :config
7
+ self.config = Config.new
8
+
9
+ protected
10
+
11
+ def options_for(format)
12
+ input_options=""
13
+ output_options = "-s #{config.size_attributes} #{codecs(format)}"
14
+
15
+ if (format == "jpg")
16
+ input_options +=" -itsoffset -2"
17
+ output_options+= " -vframes 1 -an -f rawvideo"
18
+ else
19
+ output_options +=" #{config.video_attributes} #{config.audio_attributes}"
20
+ end
21
+
22
+ { Ffmpeg::OUTPUT_OPTIONS => output_options, Ffmpeg::INPUT_OPTIONS => input_options}
23
+ end
24
+
25
+ def codecs(format)
26
+ case format
27
+ when 'mp4'
28
+ config.mpeg4.codec
29
+ when 'webm'
30
+ config.webm.codec
31
+ when "mkv"
32
+ config.mkv.codec
33
+ when "jpg"
34
+ config.jpeg.codec
35
+ else
36
+ raise ArgumentError, "Unknown format `#{format}'"
37
+ end
38
+ end
39
+
40
+ def new_mime_type(format)
41
+ format == "jpg" ? "image/jpeg" : "video/#{format}"
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+
@@ -138,6 +138,19 @@ describe "Transcoder" do
138
138
  expect(file.attached_files['thumbnail']).to have_content
139
139
  expect(file.attached_files['thumbnail'].mime_type).to eq('image/jpeg')
140
140
  end
141
+
142
+ context "and the timeout is set" do
143
+ before do
144
+ Hydra::Derivatives::Video::Processor.timeout = 1 # one second
145
+ end
146
+ after do
147
+ Hydra::Derivatives::Video::Processor.timeout = nil # clear timeout
148
+ end
149
+
150
+ it "should raise a timeout" do
151
+ expect { file.create_derivatives }.to raise_error Hydra::Derivatives::TimeoutError
152
+ end
153
+ end
141
154
  end
142
155
 
143
156
  describe "using callback methods" do
@@ -1,10 +1,26 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Hydra::Derivatives::Video do
4
- describe "when arguments are passed as a hash" do
5
- describe "and datastream is provided as an argument" do
6
- let(:directives) {{ :thumb => {format: "webm", datastream: 'thumbnail'} }}
7
- subject { Hydra::Derivatives::Video.new(double(:obj), 'content', directives)}
3
+ describe Hydra::Derivatives::Video::Processor do
4
+ subject { described_class.new(double(:obj), 'content', directives)}
5
+
6
+ describe ".config" do
7
+ before do
8
+ @original_config = described_class.config.dup
9
+ described_class.config.mpeg4.codec = "-vcodec mpeg4 -acodec aac -strict -2"
10
+ end
11
+
12
+ after { described_class.config = @original_config }
13
+ let(:directives) {{ thumb: { format: "mp4", datastream: 'thumbnail' } }}
14
+
15
+ it "should be configurable" do
16
+ expect(subject).to receive(:encode_file).with("thumbnail", "mp4", 'video/mp4', {Hydra::Derivatives::Ffmpeg::OUTPUT_OPTIONS =>"-s 320x240 -vcodec mpeg4 -acodec aac -strict -2 -g 30 -b:v 345k -ac 2 -ab 96k -ar 44100", Hydra::Derivatives::Ffmpeg::INPUT_OPTIONS=>""})
17
+ subject.process
18
+ end
19
+ end
20
+
21
+ context "when arguments are passed as a hash" do
22
+ context "and datastream is provided as an argument" do
23
+ let(:directives) {{ thumb: { format: "webm", datastream: 'thumbnail' } }}
8
24
  it "should create a datastream with the specified name" do
9
25
  expect(subject).to receive(:encode_file).with("thumbnail", "webm", 'video/webm', {Hydra::Derivatives::Ffmpeg::OUTPUT_OPTIONS =>"-s 320x240 -vcodec libvpx -acodec libvorbis -g 30 -b:v 345k -ac 2 -ab 96k -ar 44100", Hydra::Derivatives::Ffmpeg::INPUT_OPTIONS=>""})
10
26
  subject.process
@@ -12,9 +28,8 @@ describe Hydra::Derivatives::Video do
12
28
  end
13
29
  end
14
30
 
15
- describe "and datastream is not provided as an argument" do
16
- let(:directives) {{ :thumb => {format: "webm"} }}
17
- subject { Hydra::Derivatives::Video.new(double(:obj), 'content', directives)}
31
+ context "and datastream is not provided as an argument" do
32
+ let(:directives) {{ thumb: { format: "webm" } }}
18
33
  it "should create a datastream and infer the name" do
19
34
  expect(subject).to receive(:encode_file).with("content_thumb", "webm", 'video/webm', {Hydra::Derivatives::Ffmpeg::OUTPUT_OPTIONS =>"-s 320x240 -vcodec libvpx -acodec libvorbis -g 30 -b:v 345k -ac 2 -ab 96k -ar 44100", Hydra::Derivatives::Ffmpeg::INPUT_OPTIONS=>""})
20
35
  subject.process
@@ -22,9 +37,8 @@ describe Hydra::Derivatives::Video do
22
37
  end
23
38
  end
24
39
 
25
- describe "and jpg is requested" do
26
- let(:directives) {{ :thumb => {:format => 'jpg' , datastream: 'thumbnail'} }}
27
- subject { Hydra::Derivatives::Video.new(double(:obj), 'content', directives)}
40
+ context "and jpg is requested" do
41
+ let(:directives) {{ thumb: { format: 'jpg' , datastream: 'thumbnail'} }}
28
42
  it "should create a datastream and infer the name" do
29
43
  expect(subject).to receive(:encode_file).with("thumbnail", "jpg", "image/jpeg", {:output_options=>"-s 320x240 -vcodec mjpeg -vframes 1 -an -f rawvideo", :input_options=>" -itsoffset -2"})
30
44
  subject.process
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hydra-derivatives
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-07 00:00:00.000000000 Z
11
+ date: 2015-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,134 +28,134 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '10.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '10.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: jettywrapper
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '2.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '2.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '3.1'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '3.1'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: active-fedora
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 9.0.0.rc2
75
+ version: '9.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 9.0.0.rc2
82
+ version: '9.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: hydra-file_characterization
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '0.3'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '0.3'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: mini_magick
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '3.2'
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: '5'
104
107
  type: :runtime
105
108
  prerelease: false
106
109
  version_requirements: !ruby/object:Gem::Requirement
107
110
  requirements:
108
111
  - - ">="
109
112
  - !ruby/object:Gem::Version
110
- version: '0'
113
+ version: '3.2'
114
+ - - "<"
115
+ - !ruby/object:Gem::Version
116
+ version: '5'
111
117
  - !ruby/object:Gem::Dependency
112
118
  name: activesupport
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: 3.2.13
118
- - - "<"
121
+ - - "~>"
119
122
  - !ruby/object:Gem::Version
120
- version: '5.0'
123
+ version: '4.0'
121
124
  type: :runtime
122
125
  prerelease: false
123
126
  version_requirements: !ruby/object:Gem::Requirement
124
127
  requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- version: 3.2.13
128
- - - "<"
128
+ - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '5.0'
130
+ version: '4.0'
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: mime-types
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - ">="
135
+ - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '0'
137
+ version: '2.3'
138
138
  type: :runtime
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - ">="
142
+ - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: '0'
144
+ version: '2.3'
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: deprecation
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - ">="
149
+ - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: '0'
151
+ version: '0.1'
152
152
  type: :runtime
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - ">="
156
+ - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '0'
158
+ version: '0.1'
159
159
  description: Derivative generation plugin for hydra
160
160
  email:
161
161
  - justin@curationexperts.com
@@ -191,6 +191,8 @@ files:
191
191
  - lib/hydra/derivatives/railtie.rb
192
192
  - lib/hydra/derivatives/shell_based_processor.rb
193
193
  - lib/hydra/derivatives/video.rb
194
+ - lib/hydra/derivatives/video/config.rb
195
+ - lib/hydra/derivatives/video/processor.rb
194
196
  - spec/fixtures/FlashPix.ppt
195
197
  - spec/fixtures/adobe1998.tif
196
198
  - spec/fixtures/countdown.avi
@@ -229,12 +231,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
229
231
  version: '0'
230
232
  required_rubygems_version: !ruby/object:Gem::Requirement
231
233
  requirements:
232
- - - ">"
234
+ - - ">="
233
235
  - !ruby/object:Gem::Version
234
- version: 1.3.1
236
+ version: '0'
235
237
  requirements: []
236
238
  rubyforge_project:
237
- rubygems_version: 2.4.3
239
+ rubygems_version: 2.2.2
238
240
  signing_key:
239
241
  specification_version: 4
240
242
  summary: Derivative generation plugin for hydra
@@ -262,3 +264,4 @@ test_files:
262
264
  - spec/units/logger_spec.rb
263
265
  - spec/units/transcoding_spec.rb
264
266
  - spec/units/video_spec.rb
267
+ has_rdoc: