GURU Image
 

StreamGuru





Professional MPEG & DVB Software

Example TTX renderings

We offer a wide range of software components. All components listed on this page are typically licensed on a (very affordable) royalty-free source code basis.

Teletext

Our DVB-Teletext decoder is available for source code licensing by 3rd-parties. The code is written in portable C/C++ (basic object oriented code, no exceptions, no STL/no templates).

Specification compliance

  • ETSI EN 300 706 (DVB Teletext)
  • ETSI EN 300 472
    (Specification for conveying ITU-R System B Teletext in DVB bitstreams)
  • TOP-Text

The software implements Teletext level 1.5, including all specified national option subsets used in Europe and features quick TOP-Text based navigation using colour keys. A RAM based cache can optionally be enabled for accelerated page access. This is the same teletext decoder codebase as in our MPEG Analyzer TTX decoder module.

 

 

 

sub



Subtitling

 

Specification compliance

  • EN 300 743 - V1.5.1 DVB Subtitling systems
  • DVB Bluebook A009 11/2017
  • UK D-Book (HD subtitling)

Our software-based DVB-Subtitling decoder is available for source code licensing by 3rd-parties. The code decodes incoming PES packets filtered by a demux into palettized or ARGB32 images/framebuffers that can be used as source for an independend graphics layer or as basis for a blending operations to other rendering surfaces. This is the same teletext decoder codebase as in our MPEG Analyzer Subtitling decoder module. The current codebase has been tested and deployed for SD & HD devices/projects. 3D and UHD subtitling parameters are ignored/discarded.

SSL / TLS

As part of the Browser project and the Interaction channel extension for our MHEG-5 engine, we also developed an implementation of SSL/TLS 1.2 and parts of TLS1.3 with support for the following cipher suites:

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (with x25519 curve)
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (with x25519 curve)
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (with x25519 curve)
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (with x25519 curve)
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (with x25519 curve)
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (with x25519 curve)
  • TLS_ECDH_anon_WITH_AES_128_CBC_SHA (with x25519 curve)
  • TLS_ECDH_anon_WITH_AES_256_CBC_SHA (with x25519 curve)
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_DH_anon_WITH_AES_128_CBC_SHA256
  • TLS_DH_anon_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DH_anon_WITH_AES_128_GCM_SHA256
  • TLS_DH_anon_WITH_AES_256_GCM_SHA384

Support for legacy ciphersuites (DES, RC4) is part of the codebase but disabled by default for security purposes.

This SSL implementation is highly portable and could be used to replace OpenSSL or similar packages in all projects requiring TLS support on top of a bsd-like socket interface.

SAT>IP

The code driving the SAT>IP support in our MPEG analyzer can also be licensed individually. Our SAT>IP software package consists of:

  • SSDP uPnP SAT>IP device discovery
  • RFC 2326 RTSP (Real Time Streaming Protocol) client
  • RFC 3550 - RTP  A Transport Protocol for Real-Time Applications
  • RTCP (Real Time Control Protocol) client
  • HTTP client
  • uPnP XML device description parser (based on tinyxml 3rdparty library)

All delivery protocols defined in the SAT>IP 1.2.2 specification are supported:

  • Unicast (RTP)
  • Unicast (HTTP)
  • Multicast RTP

All code is based on our OS-agnostic network HAL API and runs on embedded targets as well as PCs running Windows or Linux.

DVB-CISSA reference (de)scrambler

We can provide validated DVB-CISSA (see ETSI TS 103 127) transport stream packet scrambling and descrambling code and tools. The code is written in ANSI-C depends on nothing but standard public domain AES backend code and comes with the necessary code to validate against the test vectors from the specification.