August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)

Kamaelia.Device.DVB.PSITables

Processing Parsed DVB PSI Tables

Components for filtering and processing parsed Programme Status Information (PSI) tables - that is the output from components in Kamaelia.Device.DVB.Parse

Selecting 'currently' valid tables

FilterOutNotCurrent takes in parsed DVB PSI tables, but only outputs the ones that are marked as being currently-valid. Tables that are not yet valid are simply dropped.

NOTE: whether a table is currently-valid or not is different from concepts such as present-following (now & next) used for event/programme information. See DVB specification documents for a more detailed explanation.

Example Usage

Tuning to a particular broadcast multiplex and displaying the current selection of services (channels) in the multiplex (as opposed to any future descriptions of services that may be appearing later):

frequency = 505833330.0/1000000.0
feparams = {
    "inversion" : dvb3.frontend.INVERSION_AUTO,
    "constellation" : dvb3.frontend.QAM_16,
    "code_rate_HP" : dvb3.frontend.FEC_3_4,
    "code_rate_LP" : dvb3.frontend.FEC_3_4,
}

PAT_PID=0

Pipeline( DVB_Multiplex([PAT_PID], feparams),
          DVB_Demuxer({ PAT_PID:["outbox"]}),
          ReassemblePSITables(),
          ParseProgramAssociationTable(),
          FilterOutNotCurrent(),
          PrettifyProgramAssociationTable(),
          ConsoleEchoer(),
        ).run()

Behaviour

Send parsed DVB PSI tables to this component's "inbox" inbox. If the table is a currently-valid one it will immediately be sent on out of the "outbox" outbox.

Tables that are not-yet-valid will be ignored.

If a shutdownMicroprocess or producerFinished message is received on this component's "control" inbox, it will be immediately sent on out of the "signal" outbox and the component will terminate.

How does it work?

The parsed tables you send to this component are dictionaries. This component simply checks the value of the 'current' key in the dictionary.


Kamaelia.Device.DVB.PSITables.FilterOutNotCurrent

class FilterOutNotCurrent(Axon.Component.component)

Filters out any parsed tables not labelled as currently valid

Inboxes

Outboxes

Methods defined here

Warning!

You should be using the inbox/outbox interface, not these methods (except construction). This documentation is designed as a roadmap as to their functionalilty for maintainers and new component developers.

main(self)

shutdown(self)

Feedback

Got a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording!

Please leave you feedback here in reply to the documentation thread in the Kamaelia blog.

-- Automatic documentation generator, 05 Jun 2009 at 03:01:38 UTC/GMT