CAF Streaming Support Overview

CAF Streaming Support component comprises a framework that provides interfaces for managing Digital Rights Management (DRM) protected streamed data.

Purpose

CAF streaming framework provides interfaces for applications to access DRM protected data stream using streaming agents. A CAF streaming agent is an ECom plug-in that provides streaming DRM data support in CAF.

Device creators can use the interfaces provided by the framework to support streaming DRM content.

Key concepts

CAF streaming agent

A CAF streaming agent is an ECom plug-in that provides streaming DRM data support.

Key stream

A stream of data and meta-data required for decrypting encrypted media streams.

Key stream decoder

A key stream decoder decrypts the key stream.

Data stream

A sequence of digitally encrypted packets of data (media data).

Short-term key

A key that decrypts data packets.

Long-term key

A key that encrypts short-term keys.

Cryptographic context

The key data along with its corresponding meta-data, such as algorithms and usage parameters.

Rights Object

A file that includes long-term keys, usage rights such as the validity and expiry dates for which the subscription is purchased and post-acquisition rights.

Session Description Protocol (SDP)

The SDP protocol specifies the properties of a streaming media session. The protocol includes information such as audio and video encoding type, addresses for delivering the respective streams, protection of the streamed data and so on.

Architecture

CAF for Streaming Support handles DRM protected key stream. The framework handles specific standards including DVB-H and OMA DRM BCAST (DRM and SmartCard profiles) using CAF streaming agent. The CAF streaming agent manages the key stream, but does not process the data stream.

The agent receives a key stream containing short-term key. It checks if the received key stream is supported and if so, associates it with an appropriate key stream decoder for decryption and pushes the decrypted (cryptographic) context to data processing stack such as CommsServer for processing the data stream.

The agent and entities in the data processing stack have to be assured and maintained for setting the cryptographic context (short-term key and relevant algorithms). The processed data is then passed to the appropriate streaming player middleware (audio or video device drivers) for playback or recording using Multimedia Framework.

Figure 1. CAF Streaming Support Architecture

For information about the set-up and tear down of streaming session, see Streaming Session Sequence.

APIs

The streaming CAF interfaces are defined using the namespace StreamAccess.

Class Name Description

StreamAccess::CAgentKeyStreamDecoder

Represents the base class for a CAF streaming agent

StreamAccess::CKeyStreamDecoder

Allows clients to instantiate key stream decoders for short-term key streams in protected broadcasts.

StreamAccess::CStreamAgentFactory

Represents a factory class responsible for creating instances of StreamAccess::CKeyStreamDecoder.

StreamAccess::CKeyStreamSink

Defines the abstract class for key stream sink. Key stream sink is used for applying keys decrypted by the CAF streaming agent to their correct destination.

A CAF streaming agent plug-in must implement CAgentKeyStreamDecoder. A streaming player middleware, for example the Multimedia Framework controller (MMF controller), must use CKeyStreamDecoder. The figure below shows the key classes of CAF streaming agent.

Figure 2. Class diagram

Typical uses

CAF Streaming Support provides interfaces to create an ECom based streaming agent. A streaming player middleware such as MMF controller uses streaming agent to view and access the key stream. For more information, see CAF Streaming Support Tutorials .