Class: Hornetseye::AVInput
- Includes:
- ReaderConversion
- Defined in:
- docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb
Class Method Summary collapse
Instance Method Summary collapse
- #aspect_ratio ⇒ Object
- #audio_pos ⇒ Object
- #audio_start_time ⇒ Object
- #duration ⇒ Object
- #enqueue_frame ⇒ Object
- #orig_aspect_ratio ⇒ Object
- #orig_audio_start_time ⇒ Object
- #orig_duration ⇒ Object
- #orig_video_start_time ⇒ Object
- #pos=(timestamp) ⇒ Object
- #read ⇒ Object
- #read_audio ⇒ Object
- #read_video ⇒ Object
- #shape ⇒ Object
- #video_pos ⇒ Object (also: #pos)
- #video_start_time ⇒ Object
Class Method Details
.new(mrl, audio = true) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 26 def new( mrl, audio = true ) retval = orig_new mrl, audio retval.instance_eval do @frame = nil @video = Queue.new @audio = Queue.new @video_pts = AV_NOPTS_VALUE @audio_pts = AV_NOPTS_VALUE end retval end |
.orig_new ⇒ Object
24 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 24 alias_method :orig_new, :new |
Instance Method Details
#aspect_ratio ⇒ Object
114 115 116 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 114 def aspect_ratio orig_aspect_ratio == 0 ? 1 : orig_aspect_ratio end |
#audio_pos ⇒ Object
88 89 90 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 88 def audio_pos @audio_pts == AV_NOPTS_VALUE ? nil : @audio_pts * audio_time_base end |
#audio_start_time ⇒ Object
107 108 109 110 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 107 def audio_start_time retval = orig_audio_start_time retval == AV_NOPTS_VALUE ? nil : retval * audio_time_base end |
#duration ⇒ Object
94 95 96 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 94 def duration orig_duration == AV_NOPTS_VALUE ? nil : orig_duration * video_time_base end |
#enqueue_frame ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 60 def enqueue_frame frame = read_av if frame.is_a? Frame_ @video.enq [frame, video_pts] @frame = frame else n = channels samples = MultiArray.import(SINT, frame.memory, n, frame.size / (2 * n)) @audio.enq [samples, audio_pts] end end |
#orig_aspect_ratio ⇒ Object
112 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 112 alias_method :orig_aspect_ratio, :aspect_ratio |
#orig_audio_start_time ⇒ Object
105 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 105 alias_method :orig_audio_start_time, :audio_start_time |
#orig_duration ⇒ Object
92 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 92 alias_method :orig_duration, :duration |
#orig_video_start_time ⇒ Object
98 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 98 alias_method :orig_video_start_time, :video_start_time |
#pos=(timestamp) ⇒ Object
72 73 74 75 76 77 78 79 80 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 72 def pos=( ) unless @frame begin read_video rescue Exception end end seek * AV_TIME_BASE end |
#read ⇒ Object
50 51 52 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 50 def read has_video? ? read_video : read_audio end |
#read_audio ⇒ Object
54 55 56 57 58 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 54 def read_audio enqueue_frame while @audio.empty? frame, @audio_pts = @audio.deq frame end |
#read_video ⇒ Object
44 45 46 47 48 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 44 def read_video enqueue_frame while @video.empty? frame, @video_pts = @video.deq frame end |
#shape ⇒ Object
40 41 42 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 40 def shape [ width, height ] end |
#video_pos ⇒ Object Also known as: pos
82 83 84 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 82 def video_pos @video_pts == AV_NOPTS_VALUE ? nil : @video_pts * video_time_base end |
#video_start_time ⇒ Object
100 101 102 103 |
# File 'docs/hornetseye-ffmpeg/lib/hornetseye-ffmpeg/avinput.rb', line 100 def video_start_time retval = orig_video_start_time retval == AV_NOPTS_VALUE ? nil : retval * video_time_base end |