class Ffprober::Wrapper
Attributes
format[R]
json[R]
Public Class Methods
new(json)
click to toggle source
# File lib/ffprober/wrapper.rb, line 15 def initialize(json) raise FfprobeError, json[:error] if json[:error] @json = json @format = T.let(Format.new(json[:format]), Ffprober::Format) @video_streams = T.let(nil, T.nilable(T::Array[Ffprober::VideoStream])) @audio_streams = T.let(nil, T.nilable(T::Array[Ffprober::AudioStream])) @data_streams = T.let(nil, T.nilable(T::Array[Ffprober::DataStream])) @subtitle_streams = T.let(nil, T.nilable(T::Array[Ffprober::SubtitleStream])) @chapters = T.let(nil, T.nilable(T::Array[Ffprober::Chapter])) end
Public Instance Methods
audio_streams()
click to toggle source
# File lib/ffprober/wrapper.rb, line 36 def audio_streams @audio_streams ||= stream_by_codec('audio').map do |data| AudioStream.new(data) end end
chapters()
click to toggle source
# File lib/ffprober/wrapper.rb, line 50 def chapters @chapters ||= json[:chapters].map { |chapter| Chapter.new(chapter) } end
data_streams()
click to toggle source
# File lib/ffprober/wrapper.rb, line 43 def data_streams @data_streams ||= stream_by_codec('data').map do |data| DataStream.new(data) end end
subtitle_streams()
click to toggle source
# File lib/ffprober/wrapper.rb, line 55 def subtitle_streams @subtitle_streams ||= stream_by_codec('subtitle').map do |stream| SubtitleStream.new(stream) end end
video_streams()
click to toggle source
# File lib/ffprober/wrapper.rb, line 29 def video_streams @video_streams ||= stream_by_codec('video').map do |data| VideoStream.new(data) end end
Private Instance Methods
stream_by_codec(codec_type)
click to toggle source
# File lib/ffprober/wrapper.rb, line 63 def stream_by_codec(codec_type) streams.select { |stream| stream[:codec_type] == codec_type } end
streams()
click to toggle source
# File lib/ffprober/wrapper.rb, line 67 def streams json[:streams] end