Class: Ffmprb::Process::Input::Cropped

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

Instance Attribute Summary collapse

Attributes inherited from Ffmprb::Process::Input

#io, #process

Instance Method Summary collapse

Methods inherited from ChainBase

#chain_copy, #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, crop:) ⇒ Cropped

Returns a new instance of Cropped.



15
16
17
18
# File 'lib/ffmprb/process/input/cropped.rb', line 15

def initialize(unfiltered, crop:)
  super unfiltered
  self.ratios = crop
end

Instance Attribute Details

#ratiosObject

Returns the value of attribute ratios.



13
14
15
# File 'lib/ffmprb/process/input/cropped.rb', line 13

def ratios
  @ratios
end

Instance Method Details

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



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ffmprb/process/input/cropped.rb', line 20

def filters_for(lbl, video:, audio:)

  # Cropping

  lbl_aux = "cp#{lbl}"
  lbl_tmp = "tmp#{lbl}"
  super(lbl_aux, video: unsize(video), audio: audio) +
    [
      *((video && channel?(:video))? [
        Filter.crop_prop(ratios, "#{lbl_aux}:v", "#{lbl_tmp}:v"),
        Filter.scale_pad(video.resolution, "#{lbl_tmp}:v", "#{lbl}:v")
      ]: nil),
      *((audio && channel?(:audio))? Filter.anull("#{lbl_aux}:a", "#{lbl}:a"): nil)
    ]
end