bulldog 0.0.7 → 0.0.8

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,3 +1,7 @@
1
+ == 0.0.8 2009-11-18
2
+
3
+ * Fix invocations of ffmpeg over multiple styles.
4
+
1
5
  == 0.0.7 2009-11-17
2
6
 
3
7
  * Allow configuration through config/bulldog.yml in Rails.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bulldog}
8
- s.version = "0.0.7"
8
+ s.version = "0.0.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["George Ogata"]
12
- s.date = %q{2009-11-17}
12
+ s.date = %q{2009-11-18}
13
13
  s.description = %q{= Bulldog
14
14
 
15
15
  Flexible file attachments for active record.
@@ -7,7 +7,6 @@ module Bulldog
7
7
 
8
8
  def initialize(*args)
9
9
  super
10
- @operation = nil
11
10
  @arguments = style_list_map
12
11
  @still_frame_callbacks = style_list_map
13
12
  end
@@ -15,13 +14,14 @@ module Bulldog
15
14
  def process
16
15
  return if styles.empty?
17
16
  super
18
- run_ffmpeg
19
17
  run_still_frame_callbacks
20
18
  end
21
19
 
22
20
  def process_style(*args)
21
+ @operation = nil
23
22
  super
24
- run_default_operation
23
+ set_default_operation
24
+ run_ffmpeg
25
25
  end
26
26
 
27
27
  def use_threads(num_threads)
@@ -37,6 +37,7 @@ module Bulldog
37
37
  style_option '-acodec', params[:audio_codec]
38
38
  preset_option '-vpre', params[:video_preset]
39
39
  preset_option '-apre', params[:audio_preset]
40
+ preset_option '-spre', params[:subtitle_preset]
40
41
  operate '-s', attachment.dimensions(style.name).join('x') if params[:size]
41
42
  style_option '-r', params[:frame_rate]
42
43
  style_option '-b', params[:video_bit_rate]
@@ -50,7 +51,6 @@ module Bulldog
50
51
  style_option '-coder', params[:coder]
51
52
  style_option '-v', params[:verbosity]
52
53
  style_option '-flags', params[:flags]
53
- preset_option '-spre', params[:subtitle_preset]
54
54
  style_option '-y', output_file(style.name)
55
55
  end
56
56
 
@@ -91,7 +91,7 @@ module Bulldog
91
91
  @arguments[style].concat args.map(&:to_s)
92
92
  end
93
93
 
94
- def run_default_operation
94
+ def set_default_operation
95
95
  encode if @operation.nil?
96
96
  end
97
97
 
@@ -152,13 +152,11 @@ module Bulldog
152
152
  end
153
153
 
154
154
  def run_ffmpeg
155
- @arguments.each do |style, arguments|
156
- command = [self.class.ffmpeg_path]
157
- command << '-i' << input_file
158
- command.concat(arguments)
159
- Bulldog.run(*command) or
160
- record.errors.add name, "convert failed (status #$?)"
161
- end
155
+ command = [self.class.ffmpeg_path]
156
+ command << '-i' << input_file
157
+ command.concat(@arguments[style])
158
+ Bulldog.run(*command) or
159
+ record.errors.add name, "convert failed (status #$?)"
162
160
  end
163
161
 
164
162
  def run_still_frame_callbacks
@@ -29,8 +29,8 @@ describe Processor::Ffmpeg do
29
29
  "#{temporary_directory}/video.original.mov"
30
30
  end
31
31
 
32
- def output_video_path
33
- "#{temporary_directory}/video.output.mov"
32
+ def output_video_path(style=:output)
33
+ "#{temporary_directory}/video.#{style}.mov"
34
34
  end
35
35
 
36
36
  def original_frame_path
@@ -55,16 +55,14 @@ describe Processor::Ffmpeg do
55
55
  end
56
56
 
57
57
  describe "#process" do
58
- before do
59
- video_style :output
60
- end
61
-
62
58
  it "should run ffmpeg" do
59
+ video_style :output
63
60
  Bulldog.expects(:run).once.with(ffmpeg, '-i', original_video_path, '-y', output_video_path)
64
61
  process_video
65
62
  end
66
63
 
67
64
  it "should log the command run" do
65
+ video_style :output
68
66
  log_path = "#{temporary_directory}/log"
69
67
  open(log_path, 'w') do |file|
70
68
  Bulldog.logger = Logger.new(file)
@@ -95,6 +93,14 @@ describe Processor::Ffmpeg do
95
93
  process_video{encode}
96
94
  end
97
95
 
96
+ it "should run ffmpeg once for each style" do
97
+ video_style :one
98
+ video_style :two
99
+ Bulldog.expects(:run).once.with(ffmpeg, '-i', original_video_path, '-y', output_video_path(:one))
100
+ Bulldog.expects(:run).once.with(ffmpeg, '-i', original_video_path, '-y', output_video_path(:two))
101
+ process_video
102
+ end
103
+
98
104
  it "should allow overriding style attributes from parameters" do
99
105
  video_style :output, :video_codec => 'libx264'
100
106
  Bulldog.expects(:run).once.with(ffmpeg, '-i', original_video_path, '-vcodec', 'libtheora', '-y', output_video_path)
@@ -216,6 +222,14 @@ describe Processor::Ffmpeg do
216
222
  end
217
223
 
218
224
  describe "encoding style attributes" do
225
+ it "should add arguments for style attributes to the relevant invocation" do
226
+ video_style :one, :verbosity => 1
227
+ video_style :two, :verbosity => 2
228
+ Bulldog.expects(:run).once.with(ffmpeg, '-i', original_video_path, '-v', '1', '-y', output_video_path(:one))
229
+ Bulldog.expects(:run).once.with(ffmpeg, '-i', original_video_path, '-v', '2', '-y', output_video_path(:two))
230
+ process_video{encode}
231
+ end
232
+
219
233
  describe "video" do
220
234
  it "should interpret '30fps' as a frame rate of 30fps" do
221
235
  video_style :output, :video => '30fps'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bulldog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - George Ogata
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-17 00:00:00 -05:00
12
+ date: 2009-11-18 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency