Overview

Digital Transmission Content Protection ("DTCP") technology protects high-value digital motion pictures, television programs and audio against unauthorized interception and copying in the home and personal environment (e.g., between a digital set top box and gateway or between a personal computer and a digital TV). 

There are two gstreamer filter elements that are used for content encryption/decryption. 

  1. DTCP Encrypt: 
    The "dtcpencrypt" is a gstreamer filter element which encrypts incoming MPEG 2 SPTS stream and pushes encrypted data to the source pad. DTCP encrypt requires initialization of DTCP libs done in RMF application (e.g Media Streamer) which includes creating socket and listening for AKE request, authenticate and send exchange key to Sink device upon DTCP request from sink EMO It support Authentication and Key Exchange (AKE) from DTCP client. It encrypts the video stream using DTCP Encryption Mode Indicator (EMI)

  2. DTCP Decrypt:
    The "dtcpdecrypt" is a gstreamer filter element is used to decrypt the MPEG2 SPTS video streams. It performs Authentication and Key Exchange (AKE) to DTCP server.

DTCP Protection

A device enabled with DTCP determines whether it is connected to other devices that implement the DTCP protection technology. Content encoded for DTCP protection is encrypted and securely transmitted only to recording and display devices that implement DTCP.  The content carries information indicating whether and to what extent the content may be copied.

All DTCP encryption and decryption uses common set of provided gstreamer elements, The gstreamer elements uses DTCP manager API. Each SoC provides binary DTCP encryption/decryption library to support the DTCP Manager API.

DTCP Disable Procedure for Gateway boxes

At first, please verify that the current build of the box supports to disable DTCP. If it's yes, follow the next steps

Copy rmfConfig.ini under /etc to /opt

  • cp /etc/rmfconfig.ini /opt

Change value of this string "FEATURE.DTCP.SUPPORT" in /opt/rmfconfig.ini from TRUE to FALSE

  • vi /opt/rmfconfig.ini
  • Find FEATURE.DTCP.SUPPORT
  • Change value of "FEATURE.DTCP.SUPPORT" from TRUE to FALSE
  • Save and Exit

Create receiver_config.ini.user under /opt

  • touch /opt/receiver_config.ini.user
  • sync

Reboot
Edit receiver_config.ini.user under /opt

  • echo enableDtcpIp=false > /opt/receiver_config.ini.user
  • sync

Reboot


Check AV for the box once it's up. This step can manually check or use script as below.

DTCP Use Case: Live Playback using QAM Source


DTCP Interface Specifications

Please refer to API Documentation for more details about API specifications.

References

http://www.dtcp.com/documents/dtcp/dtcp-overview-20180531.pdf

http://www.dtcp.com/faq.aspx