diff options
author | Brendan Long <self@brendanlong.com> | 2013-11-25 14:41:26 -0800 |
---|---|---|
committer | Brendan Long <self@brendanlong.com> | 2013-11-25 14:41:26 -0800 |
commit | a7a10d24ce963dd9cb20495abcd2e89aad2f59ee (patch) | |
tree | 3fff63000eded632ac6ffe435a9b0aa29cf11037 | |
parent | 420d79a608a62294cb4799254cb87e30f1c65d23 (diff) | |
parent | 9b3c83377fcbb1b30b00c2e39873df7f9ec43b98 (diff) |
Merge pull request #120 from cablelabs/dlnasrc-116-dtcpip-passthrough-support
Changed logic so dtcpip element is setup regardless if decrypting is nee...
-rw-r--r-- | src/gstdlnasrc.c | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/src/gstdlnasrc.c b/src/gstdlnasrc.c index e7b0957..b360624 100644 --- a/src/gstdlnasrc.c +++ b/src/gstdlnasrc.c @@ -1573,25 +1573,15 @@ dlna_src_setup_bin (GstDlnaSrc * dlna_src) } else GST_INFO_OBJECT (dlna_src, "Not setting URI of souphttpsrc"); - /* Setup dtcp element if necessary */ - if (dlna_src->is_encrypted) { - GST_INFO_OBJECT (dlna_src, "Setting up dtcp"); - if (!dlna_src_setup_dtcp (dlna_src)) { - GST_ERROR_OBJECT (dlna_src, "Problems setting up dtcp elements"); - return FALSE; - } - GST_INFO_OBJECT (dlna_src, "DTCP setup successful"); - } else - GST_INFO_OBJECT (dlna_src, "No DTCP setup required"); + /* Setup dtcp element regardless */ + if (!dlna_src_setup_dtcp (dlna_src)) { + GST_ERROR_OBJECT (dlna_src, "Problems setting up dtcp elements"); + return FALSE; + } /* Create src ghost pad of dlna src so playbin will recognize element as a src */ - if (dlna_src->is_encrypted) { - GST_DEBUG_OBJECT (dlna_src, "Getting decrypter src pad"); - pad = gst_element_get_static_pad (dlna_src->dtcp_decrypter, "src"); - } else { - GST_DEBUG_OBJECT (dlna_src, "Getting http src pad"); - pad = gst_element_get_static_pad (dlna_src->http_src, "src"); - } + GST_DEBUG_OBJECT (dlna_src, "Getting decrypter src pad"); + pad = gst_element_get_static_pad (dlna_src->dtcp_decrypter, "src"); if (!pad) { GST_ERROR_OBJECT (dlna_src, "Could not get pad to ghost pad for dlnasrc. Exiting."); @@ -1650,11 +1640,13 @@ dlna_src_setup_dtcp (GstDlnaSrc * dlna_src) return FALSE; } + if (dlna_src->is_encrypted) { g_object_set (G_OBJECT (dlna_src->dtcp_decrypter), "dtcp1host", dlna_src->server_info->dtcp_host, NULL); g_object_set (G_OBJECT (dlna_src->dtcp_decrypter), "dtcp1port", dlna_src->server_info->dtcp_port, NULL); + } gst_bin_add (GST_BIN (&dlna_src->bin), dlna_src->dtcp_decrypter); @@ -1667,6 +1659,10 @@ dlna_src_setup_dtcp (GstDlnaSrc * dlna_src) g_object_set (dlna_src->http_src, "blocksize", dlna_src->dtcp_blocksize, NULL); + /* Make sure passthru mode is either disabled or enabled depending on content encryption */ + g_object_set (dlna_src->dtcp_decrypter, "passthru-mode", + !dlna_src->is_encrypted, NULL); + return TRUE; } |