Module: TSparser

Extended by:
TSparser
Included in:
TSparser
Defined in:
lib/ts.rb,
lib/epg.rb,
lib/binary.rb,
lib/parsing.rb,
lib/tsparser.rb,
lib/psi_section_reader.rb,
lib/arib_string_decoder.rb,
lib/definition/arib_time.rb,
lib/definition/eit_event.rb,
lib/definition/descriptor.rb,
lib/definition/event_list.rb,
lib/definition/arib_string.rb,
lib/definition/arib_duration.rb,
lib/definition/descriptor_list.rb,
lib/definition/transport_packet.rb,
lib/definition/event_information_section.rb,
lib/definition/descriptor/content_descriptor.rb,
lib/definition/descriptor/unknown_descriptor.rb,
lib/definition/descriptor/component_descriptor.rb,
lib/definition/descriptor/event_group_descriptor.rb,
lib/definition/descriptor/short_event_descriptor.rb,
lib/definition/descriptor/data_content_descriptor.rb,
lib/definition/descriptor/extended_event_descriptor.rb,
lib/definition/descriptor/audio_component_descriptor.rb,
lib/definition/descriptor/digital_copy_control_descriptor.rb,
lib/definition/descriptor/ca_contract_information_descriptor.rb

Defined Under Namespace

Modules: AribStringDecoder, Parsing Classes: AdaptationField, AribDuration, AribString, AribTime, AudioComponentDescriptor, Binary, CAContractInformationDescriptor, ComponentDescriptor, ContentDescriptor, DataContentDescriptor, Descriptor, DescriptorList, DigitalCopyControlDescriptor, EITEvent, EITEventList, EPG, EventGroupDescriptor, EventInformationSection, ExtendedEventDescriptor, PSISectionReader, ShortEventDescriptor, TS, TransportPacket, UnknownDescriptor

Constant Summary collapse

LIBRARY_ROOT_PATH =
File.expand_path(File.dirname(__FILE__))
MAIN_FILES =
['/binary.rb',
 '/parsing.rb',
 '/ts.rb',
 '/psi_section_reader.rb',
 '/arib_string_decoder.rb',
 '/epg.rb'
]
DEFINITION_DESCRIPTOR_FILES =
['/short_event_descriptor.rb',
 '/extended_event_descriptor.rb',
 '/component_descriptor.rb',
 '/content_descriptor.rb',
 '/digital_copy_control_descriptor.rb',
 '/audio_component_descriptor.rb',
 '/data_content_descriptor.rb',
 '/ca_contract_information_descriptor.rb',
 '/event_group_descriptor.rb',
 '/unknown_descriptor.rb'
]
DEFINITION_FILES =
['/descriptor.rb',
 '/descriptor_list.rb',
 '/eit_event.rb',
 '/event_information_section.rb',
 '/event_list.rb',
 '/transport_packet.rb',
 '/arib_duration.rb',
 '/arib_time.rb',
 '/arib_string.rb'
]

Instance Method Summary collapse

Instance Method Details

#open_ts(input) ⇒ Object



65
66
67
68
69
70
71
72
73
74
# File 'lib/tsparser.rb', line 65

def open_ts(input)
  case input
  when String
    return TS.new(File.open(input, "rb"))
  when IO
    return TS.new(input)
  else
    raise "arugument should be TS file path(String) or IO"
  end
end

#parse_epg(input) ⇒ Object



54
55
56
57
58
59
60
61
62
63
# File 'lib/tsparser.rb', line 54

def parse_epg(input)
  epg = EPG.new
  section_stream = PSISectionReader.new(0x12, open_ts(input))
  while section_binary = section_stream.read
    next unless EventInformationSection.section_length_enough?(section_binary)        
    eis = EventInformationSection.new(section_binary)
    epg = epg + eis.to_epg
  end
  return epg
end