This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

  • `How to install <#install-the-code>`__
  • `Read the documentation <#read-the-documentation>`__
  • `Run the examples <#run-the-examples>`__

pydvbcss is a set of Python 2.7 libraries that implement some of the protocols defined in the DVB CSS specification (published as ETSI 103-286 part 2). These protocols enable synchronisation of media presentation between a TV and Companion devices (mobiles, tablets, etc).

This library includes simple to use high level abstractions that wrap up the server or client behaviour for each protocol as well as low level code for packing and unpacking messages sent across the protocols. There are also objects that work with the rest of the library to represent clocks and timelines.

This code is intended as an informal reference and is suitable for building prototypes and testing tools that implement TV (server) or Companion (client) behaviour. It is not considered production ready or suitable for integration into consumer products.

The code does not implement media playback functionality and this is not a planned feature.

The DVB CSS specification was formerly published as DVB Bluebook A167-2. This is deprecated in favour of the ETSI spec.

Getting started

pydvbcss requires ws4py for use in clients and servers, and also cherrypy for server implementations. The steps below describe how to install these.

pydvbcss has been developed on Mac OS X 10.10 but has also been used successfully on Microsoft Windows 7 and Ubuntu 14.04.

Read the Documentation

The docs for the library can be read online on readthedocs.org:

Links are also available from those pages through to documentation for earlier releases.

Install the code …

On Mac OS X and Linux you may need to run one or more of the commands as root.

Using PyPi (core library only, no examples)

If you ONLY want the library (not the code examples ) and if you don’t require the very latest bugfixes, then you can install a recent release package from the Python Package Index (PyPI) using pip:

$ pip install pydvbcss

From Github or a release tarball (library and examples)

The master branch is the latest state of the code, including any recent bugfixes. It is mostly stable but might have occasional small API changes. Release snapshots are also available but won’t contain the very latest bugfixes or new features. Both of these options include the full code, including examples.

First you need to install dependencies…

We recommend using pip to install dependencies from the Python Package Index PyPI:

$ pip install cherrypy
$ pip install ws4py

Then take (or update) your clone of the repository master branch, or download and unzip a snapshot release and run the setup.py script to install:

$ python setup.py install

This will install all module packages under ‘dvbcss’.

There is a limited test suite (it only tests certain classes at the moment). Run it via setup.py:

$ python setup.py test

This checks some timing sensitive implementation issues, so ensure you are not running any CPU intensive tasks at the time.

Run the examples

There is a set of examples demonstrating simple servers and clients for the protocols included with the library. See the quick start guide in the documentation to see how to run them.

They demonstrate simple clients and servers. As appropriate, they pretend that there is content playing and that it has a progressing timeline. These examples serve to demonstrate how to use the library. They are not intended as finished and useful tools.

Super-quick introduction to the protocols

DVB has defined 3 protocols for communicating between a companion and TV in order to create synchronised second screen / dual screen / companion experiences (choose whatever term you prefer!) that are implemented here:

  • CSS-CII - A WebSockets+JSON protocol that conveys state from the TV, such as the ID of the content being shown at the time. It also carries the URLs to connect to the other two protocols.
  • CSS-WC - A simple UDP protocol (like NTP but simplified) that establishes a common shared clock (a “wall clock”) between the TV and companion, compensating for network delays.
  • CSS-TS - Another WebSockets+JSON protocol that communicates timestamps from TV to Companion that describe the current timeline position.

The TV implements servers for all 3 protocols. The Companion implements clients.

There are other protocols defined in the specification (CSS-TE and CSS-MRS) that are not currently implemented by this library.

Building the documentation for yourself

You can also build the documentation yourself. It is written using the sphinx documentation build system.

Building the documentation requires sphinx and the sphinx “read the docs” theme. The easiest way is using PyPI:

$ pip install sphinx
$ pip install sphinx_rtd_theme

The docs directory contains the configuration and main documentation sources that descibe the structure. Most of the actual words are in the inline docstrings in the source code. These structural pages pull these in.

To build docs in HTML format, either:

$ python setup.py build_sphinx

or:

$ cd docs
$ make html

Contact and discuss

Discuss and ask questions on the pydvbcss google group.

The original author is Matt Hammond ‘at’ bbc.co.uk

Licence

All code and documentation is licensed under the Apache License v2.0.

Contributing

If you would like to contribute to this project, see CONTRIBUTING for details.

Release History

Release History

0.4.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.3.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pydvbcss-0.4.0.tar.gz (86.7 kB) Copy SHA256 Checksum SHA256 Source Sep 1, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting