class TSparser::TS
Public Class Methods
new(io, filtering_procs=[])
click to toggle source
# File lib/ts.rb, line 4 def initialize(io, filtering_procs=[]) @io = io @filtering_procs = filtering_procs end
Public Instance Methods
close()
click to toggle source
# File lib/ts.rb, line 36 def close @io.close end
eof?()
click to toggle source
# File lib/ts.rb, line 32 def eof? return @io.eof? end
filter(*pids, &block)
click to toggle source
# File lib/ts.rb, line 9 def filter(*pids, &block) new_filtering_procs = @filtering_procs if pids.length > 0 new_filtering_procs = [Proc.new{|packet| pids.include?(packet.pid)}] + new_filtering_procs end if block new_filtering_procs = new_filtering_procs + [block] end return TS.new(@io, new_filtering_procs) end
read()
click to toggle source
# File lib/ts.rb, line 20 def read loop do return nil if eof? packet_binary = Binary.new(@io.read(188)) if packet_binary.length != 188 raise "Bytes less than 188byte (#{packet_bytes.length}byte) were read from TS file." end packet = TransportPacket.new(packet_binary) return packet if @filtering_procs.all?{|filter| filter.call(packet)} end end