CableLabs is an active member in many open source communities, with three of our recent contributions highlighted below. We’ve found that engaging with these communities and presenting our intended contributions is incredibly valuable. When our interests align with these projects we’ve generally found the open source community eager to help. Other times we get advice on the best approach for implementing our changes. Occasionally we’ve discovered that they have no interest in a particular feature, which may influence what we do.
HTML5 Signature Tests
CableLabs’ HTML5 Signature Test project created a set of tests for evaluating support for specifications referenced by DLNA’s HTML5 Remote User Interface (RUI) guidelines. While the Worldwide Web Consortium (W3C) had some functional tests available, there wasn’t a comprehensive suite suitable for validating what the cable industry required from an HTML5 RUI Client. This effort benefits cable operators by verifying that an HTML5 RUI Client on a VidiPath device supports the features they intend to use in their applications.
We created a custom test generation tool that extracted W3C’s WebIDL interface definitions from the specifications and, using some hand-built test data, created the tests. The resulting test suite is compatible with the W3C test framework, and can be run individually or in bulk.
This work is all Open Source and has been contributed to DLNA for VidiPath client certification. It will also be contributed to the W3C test effort as soon as their test framework provides sufficient HTTPS support.
Tests & test generation tool @ github
HTML5 RUI
CableLabs’ HTML5 Remote User Interface (RUI) is a custom WebKit-based browser that contains additional functionality supporting traditional cable video services on consumer-owned devices such as smart TVs, tablets, laptops and smart phones. This technology allows cable service providers to deliver interactive program guides, linear programming and on-demand services directly to an HTML5 web browser. CableLabs has made the RUI software publicly available and our contributions to the open source community have helped increase adoption by consumer electronics (CE) and browser vendors.
The HTML5 RUI is Open Source and has been used by CE vendors for their product development, and by various browser venders who “cherry picked” features to incorporate into their products. We’ve also made numerous contributions to WebKit, where one of our developers (Brendan Long) has achieved ‘committer’ status, and to Google’s Blink project, where we added alternate audio/video track selection to the media player.
HTML5 RUI @ github
GStreamer
WebKit-based browsers, by default, use the GStreamer Multimedia Framework for rendering audio and video. As part of our HTML5 RUI work, we added support for cable services to GStreamer. This includes the dlnasrc component for interacting with DLNA VidiPath servers, the ccdec component for translating CEA 708 captions into WebVTT (used by browsers) and the dtcpip component, which supports integrating a DTCP-IP library into GStreamer. Additionally, we patched the tsdemux component to extract metadata from MPEG Transport streams enabling services, like ad insertion, within a browser.
With the exception of the DTCP-IP library, which is licensed by DTLA, this work is Open Source and has been used by consumer electronics and browser vendors, and has also been contributed to GStreamer.
GStreamer @ github
https://github.com/cablelabs/gst-plugins-dlnasrc
https://github.com/cablelabs/gst-plugins-good
https://github.com/cablelabs/gst-plugins-bad
Conclusion
By participating in Open Source communities, CableLabs has made contributions that advance the platforms. Open Source distribution has increased adoption and we have gained valuable feedback throughout the process.
For more information on how to effectively participate in Open Source projects, please contact Eric Winkelman.