Kamaelia docs : Kamaelia.Device.DVB.Receiver

DVB-T (Digital Terrestrial TV) Tuner & Demuxing Service

Tunes to the specified frequency, using the specified parameters, using a DVB tuner device; then demultiplexes packets by packet ID (PID) from DVB/MPEG transport streams. Provides this as a service, to which other components can subscribe as clients, requesting to receive packets with certain PIDs.

This is a prefab component built out of a Tuner and DemuxerService component.

Example Usage

(Using experimental Kamaelia.Experimental.Services components)

Set up receiver as a named public service, then subscribe to specific PIDs for recording a stream and some event information:

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,
}

RegisterService( Receiver(505.833330, feparams),
                 {"DEMUXER":"inbox"}
               ).activate()

Pipeline( Subscribe("DEMUXER", [600,601]),
          SimpleFileWriter("recording_of_600_and_601.ts"),
        ).activate()

Pipeline( Subscribe("DEMUXER", [18]),
          SimpleFileWriter("event_information_data.ts")
        ).run()

How does it work?

This component is a prefab combining a Tuner and a DemuxerService component.

Use this component in exactly the same way as you would use the Kamaelia.Device.DVB.DemuxerService component. The only difference is that requests should be sent to the "inbox" inbox, instead of a different one.

To request to be sent packets with particular PIDs, send messages of the form:

("ADD", (dest_component, dest_inboxname), [pid, pid, ...]) ("REMOVE", (dest_component, dest_inboxname), [pid, pid, ...])

For more details, see Kamaelia.Device.DVB.DemuxerService.

Internally, the DemuxerService component is wired so that its requests for PIDs go straight back to the Tuner component. When a client makes a request, the DemuxerService therefore automatically asks the Tuner to give it only the packets it needs to satisfy all its current clients.

This component will terminate if a shutdownMicroprocess or producerFinished message is sent to the "control" inbox. The message will be forwarded on out of the "signal" outbox just before termination.


Kamaelia.Device.DVB.Receiver.Receiver

prefab: Receiver

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


Kamaelia is an open source project originated from and guided by BBC Research. For more information browse the site or get in contact.

This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC. (the site is powered by a wiki engine)

(C) Copyright 2008 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved.

This web site is powered by the same code created for the bicker manor project. For more details, contact Michael Sparks at BBC Research directly (cf contact)