Page tree

Skip to end of metadata
Go to start of metadata
  • No labels


  1. Hi Sunny

       Can you explain a little bit more what exactly you are looking for.




  2. Hi Ajay,

    Sorry for unclear question. What I am planning to do is to integrate my own DTCP codes of sink's side (decrypt) to RDK. After reviewing wiki pages of RDK pages, I think it should be done through:

    1). implementing the wrapper functions defined in dtcp/sample/dtcpmgr.cpp, adding low-level code/lib under the same directory and modify its makefile for compilation;

    2). enabling compilation of gst-plugins because wiki pages mentions it utilizes dtcp's APIs;

    3). test the feature.


    Please help correct the above understanding. However, the questions comes accordingly such as:

    a).  if my goal is only to implement DTCP-sink (DMP)'s functionality, several functions from dtcpmgr.cpp, like DTCPMgrCreateSourceSession(), DTCPMgrStartSource(), or DTCPMgrStopSource(), are not required to be overwritten, correct?

    b). as for DTCPMgrProcessPacket() in dtcpmgr.cpp, the comment says:

    "Source - Encrypt the provided buffers and create a DTCPIP packet

    * Sink - Process the packet and return decrypted buffers".

    Does it imply both source and sink apps need to call this same function for encrypt/decrypt? If true, how can I only overwrite the decrypt feature in the function for sink only despite source part?

    c). is it good enough only to merge codes under dtcp/sample/, including key exchange, obtaining key label, random number, AES decrypt of video data, etc? No need to merge something under gst-plugins?

    d). gst-plugins is a set of lib, and who is on top of it to link the dtcp feature, mediaplayer? This question is also related to testing procedure. Assuming mediaplayer calls gst-plugins' APIs, so I have to add mediaplayer into build range and run it for real test case. As well, how about the DTCP-server (source) part for testing? Which component under RDK provides source feature?

    Some of questions above may be straightforward or might be figured out on wiki pages. If you can give some hints of them or relevant links to read, it will surely speed up my understanding of RDM structure. Thanks a lot much.


    Best Regards


  3. Hi Sunny,

      Your understanding is correct from the top level except some minor differences.  DTCP mgr APIs are utilize by the dtcpdecrypt and dtcpencrypt which is called from HN source. So it is not mediaplayer directly, but the HN source which will utilize the dtcp gst plugin which will internally call the DTCP mgr APIs.For more information you can refer to hnsource.cpp .

    Your understanding regarding the APIs is correct and you don't need to include dtcpencrypt   hence source encryption functionality is not required.