NaCl Player Terminology

This is a reference page containing terminology used in the NaCl Player-related articles.


  • Adaptive Streaming
    This term refers to the technology that provides means to adapt to varying networking connection conditions between a server serving content and a client which consumes this content. Depending on where the adaptation takes place these systems can be divided into:
    • client side - in this scheme the server provides more than one representation for the same track (video and audio) which usually differs by resolution/sampling and encoding quality and thus by a bandwidth required for smooth playback. The client then chooses a representation most suitable for current network conditions. Examples of such technologies are HLS (HTTP Live Streaming) and DASH (Dynamic Adaptive Streaming over HTTP),
    • server side - in this scenario the server monitors network conditions and provides the most suitable content to the user. An example of such technology is RTSP (Real Time Streaming Protocol).
  • Codec
    A scheme describing transformations used to compress (usually lossy) and decompress visual or audio data. Examples are AVC (H.264 / MPEG4) and HEVC (H.264) for video and AAC or MP3 for audio.
  • Container (also Media Container)
    An entity that contains interleaved (multiplexed) encoded multimedia data (like audio/video/…) with all necessary information (metadata) describing these streams and how to access them. An example of such container is ISO BMFF (described in ISO 14496-12 standard) colloquially called MP4.
  • DTS (Decode Timestamp)
    An information telling the decoder when it should start decoding the given packet, in order to present the decoded output on time. This timestamp is given in time units relative to the beginning of the played clip.
  • DRM (Digital Rights Management)
    A system used to protect content from being copied and redistributed without authorization. Usually this includes encryption of encoded multimedia data and a proper infrastructure to securely deliver the decryption key to the authenticated and authorized user. An example of such system is Microsoft PlayReady.
  • Elementary Stream
    An entity that contains only one type of encoded multimedia data.
  • Encoded data
    Audio or visual data compressed using a specified codec.
  • Frame/Sample
    Raw data which can be rendered on the screen (video output) or played on the speakers (audio output).
  • Key (also Cryptographic Key)
    A cryptographic entity which can be used to decrypt data.
  • License
    A set of keys associated with multimedia content and containing policies regulating usage of the content. A form of the license and its details are DRM system specific.
  • Packet
    An encoded data block forming a single frame or a sample with timing information, such as PTS (Presentation Timestamp) and DTS (Decode Timestamp). Optionally, the packet may contain information necessary for its decryption (e.g. which key is needed to decrypt data in this packet).
  • PTS (Presentation Timestamp)
    An information telling the decoder when the decoded data should be presented to the user (either rendered on the screen or played on the speakers). This timestamp is given in time units relative to the beginning of a played clip.
  • Track/Stream Representation
    A sequence of encoded data with timing information that forms one particular Elementary Stream (e.g. an English audio track, a Spanish audio track).

The Media Container Structure

The diagram below shows an overview of the Media Container structure. Such container can be viewed as consisting of:

  • metadata describing the container itself, how many Elementary Streams it contains and what are their types (audio/video/…),
  • one or more Elementary Streams, which contains:
    • metadata describing codec specific information like:
      • resolution, frame rate and so on - for video content,
      • sampling rate, number of channels and so on - for audio content,
      • codec specific data necessary to decode the content properly;
    • packets containing:
      • synchronization information (PTS, DTS, duration, …),
      • optional information necessary for decryption,
      • frame/sample data (clear or encrypted).