Class: Ffmprb::Process::Input::Loud

Inherits:
ChainBase show all
Defined in:
lib/ffmprb/process/input/loud.rb

Instance Attribute Summary

Attributes inherited from Ffmprb::Process::Input

#io, #process

Instance Method Summary collapse

Methods inherited from ChainBase

#chain_copy, #channel, #unfiltered, #unfiltered=

Methods inherited from Ffmprb::Process::Input

#args, #audio, audio_args, #chain_copy, #channel, #channel?, #copy, #crop, #cut, #loop, #mute, #pace, #pp, resolve, #reverse, #temporise_io!, #video, video_args, #volume

Constructor Details

#initialize(unfiltered, volume:) ⇒ Loud

Returns a new instance of Loud.



17
18
19
20
21
22
# File 'lib/ffmprb/process/input/loud.rb', line 17

def initialize(unfiltered, volume:)
  super unfiltered
  @volume = volume

  fail Error, "volume cannot be nil"  if volume.nil?
end

Instance Method Details

#filters_for(lbl, video:, audio:) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ffmprb/process/input/loud.rb', line 24

def filters_for(lbl, video:, audio:)

  # Modulating volume

  lbl_aux = "ld#{lbl}"
  super(lbl_aux, video: video, audio: audio) +
    [
      *((video && channel?(:video))? Filter.copy("#{lbl_aux}:v", "#{lbl}:v"): nil),
      *((audio && channel?(:audio))? Filter.volume(@volume, "#{lbl_aux}:a", "#{lbl}:a"): nil)
    ]
end