hydra-derivatives 1.0.0.rc1 → 1.0.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.
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: