DTCP
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.
- 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) - 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
- In case of live stream, the HTTPReqHandler will receive a request from client box and the Media Streamer will sets an pipeline between QAM Source and HN Sink.
- QAM Src element receives the data from the tuner and sends to the HN Sink.
- In the client side another pipeline has created between HNSrc and MediaPlayerSink.
- HNSrc receive the incoming data from HNSink and feeds to the MediaPlayerSink for live playback.
- DTCP encryption and decryption are used for protecting contents over network.
DTCP Interface Specifications
Please refer to API Documentation for more details about API specifications.