File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -123,15 +123,18 @@ def adjusted_video_bit_rate(target_value)
123123 # @param target_value [Integer, String] The target audio bit rate.
124124 # @return [String]
125125 def adjusted_audio_bit_rate ( target_value )
126+
126127 min_bit_rate ( media . audio_bit_rate , target_value )
127128 end
128129
129130 private
130131
131132 def min_bit_rate ( *values )
132133 bit_rate =
133- values . compact . map do |value |
134- next value if value . is_a? ( Integer )
134+ values . filter_map do |value |
135+ # Some muxers (webm) might not expose birate under certain conditions
136+ next false if value . nil?
137+ next ( value > 0 ? value : false ) if value . is_a? ( Integer )
135138
136139 unless value . is_a? ( String )
137140 raise ArgumentError ,
Original file line number Diff line number Diff line change @@ -96,6 +96,14 @@ module FFMPEG
9696 expect ( args . to_a ) . to eq ( %w[ ] )
9797 end
9898 end
99+
100+ context 'when the reported media bitrate is 0' do
101+ it "returns the requested bitrate" do
102+ media = instance_double ( Media , video_bit_rate : 0 )
103+ args = CommandArgs . compose ( media ) { min_video_bit_rate '2M' }
104+ expect ( args . to_a ) . to eq ( %w[ -minrate 2000k ] )
105+ end
106+ end
99107 end
100108
101109 describe '#max_video_bit_rate' do
You can’t perform that action at this time.
0 commit comments