| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>gstprotection: GStreamer 1.0 Core Reference Manual</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"> |
| <link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual"> |
| <link rel="up" href="libgstreamer.html" title="GStreamer Core Library"> |
| <link rel="prev" href="GstPreset.html" title="GstPreset"> |
| <link rel="next" href="GstQuery.html" title="GstQuery"> |
| <meta name="generator" content="GTK-Doc V1.24 (XML mode)"> |
| <link rel="stylesheet" href="style.css" type="text/css"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> |
| <td width="100%" align="left" class="shortcuts"> |
| <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> |
| <a href="#gstreamer-gstprotection.description" class="shortcut">Description</a></span> |
| </td> |
| <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
| <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
| <td><a accesskey="p" href="GstPreset.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> |
| <td><a accesskey="n" href="GstQuery.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> |
| </tr></table> |
| <div class="refentry"> |
| <a name="gstreamer-gstprotection"></a><div class="titlepage"></div> |
| <div class="refnamediv"><table width="100%"><tr> |
| <td valign="top"> |
| <h2><span class="refentrytitle"><a name="gstreamer-gstprotection.top_of_page"></a>gstprotection</span></h2> |
| <p>gstprotection — Functions and classes to support encrypted streams.</p> |
| </td> |
| <td class="gallery_image" valign="top" align="right"></td> |
| </tr></table></div> |
| <div class="refsect1"> |
| <a name="gstreamer-gstprotection.functions"></a><h2>Functions</h2> |
| <div class="informaltable"><table width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="functions_return"> |
| <col class="functions_name"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="function_type"> |
| <a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta"><span class="returnvalue">GstProtectionMeta</span></a> * |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gstreamer-gstprotection.html#gst-buffer-add-protection-meta" title="gst_buffer_add_protection_meta ()">gst_buffer_add_protection_meta</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"> |
| <a class="link" href="gstreamer-gstprotection.html#gst-buffer-get-protection-meta" title="gst_buffer_get_protection_meta()">gst_buffer_get_protection_meta</a><span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gstreamer-gstprotection.html#gst-protection-select-system" title="gst_protection_select_system ()">gst_protection_select_system</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="refsect1"> |
| <a name="gstreamer-gstprotection.other"></a><h2>Types and Values</h2> |
| <div class="informaltable"><table width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="name"> |
| <col class="description"> |
| </colgroup> |
| <tbody><tr> |
| <td class="datatype_keyword">struct</td> |
| <td class="function_name"><a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta">GstProtectionMeta</a></td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| <div class="refsect1"> |
| <a name="gstreamer-gstprotection.includes"></a><h2>Includes</h2> |
| <pre class="synopsis">#include <gst/gstprotection.h> |
| </pre> |
| </div> |
| <div class="refsect1"> |
| <a name="gstreamer-gstprotection.description"></a><h2>Description</h2> |
| <p>The GstProtectionMeta class enables the information needed to decrypt a |
| <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to be attached to that buffer.</p> |
| <p>Typically, a demuxer element would attach GstProtectionMeta objects |
| to the buffers that it pushes downstream. The demuxer would parse the |
| protection information for a video/audio frame from its input data and use |
| this information to populate the <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> <em class="parameter"><code>info</code></em> |
| field, |
| which is then encapsulated in a GstProtectionMeta object and attached to |
| the corresponding output buffer using the <a class="link" href="gstreamer-gstprotection.html#gst-buffer-add-protection-meta" title="gst_buffer_add_protection_meta ()"><code class="function">gst_buffer_add_protection_meta()</code></a> |
| function. The information in this attached GstProtectionMeta would be |
| used by a downstream decrypter element to recover the original unencrypted |
| frame.</p> |
| </div> |
| <div class="refsect1"> |
| <a name="gstreamer-gstprotection.functions_details"></a><h2>Functions</h2> |
| <div class="refsect2"> |
| <a name="gst-buffer-add-protection-meta"></a><h3>gst_buffer_add_protection_meta ()</h3> |
| <pre class="programlisting"><a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta"><span class="returnvalue">GstProtectionMeta</span></a> * |
| gst_buffer_add_protection_meta (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>, |
| <em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *info</code></em>);</pre> |
| <p>Attaches protection metadata to a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p> |
| <div class="refsect3"> |
| <a name="id-1.3.42.7.2.5"></a><h4>Parameters</h4> |
| <div class="informaltable"><table width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="parameters_name"> |
| <col class="parameters_description"> |
| <col width="200px" class="parameters_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="parameter_name"><p>buffer</p></td> |
| <td class="parameter_description"><p><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> holding an encrypted sample, to which protection |
| metadata should be added.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>info</p></td> |
| <td class="parameter_description"><p> a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> holding cryptographic |
| information relating to the sample contained in <em class="parameter"><code>buffer</code></em> |
| . This |
| function takes ownership of <em class="parameter"><code>info</code></em> |
| . </p></td> |
| <td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="id-1.3.42.7.2.6"></a><h4>Returns</h4> |
| <p> a pointer to the added <a class="link" href="gstreamer-gstprotection.html#GstProtectionMeta" title="struct GstProtectionMeta"><span class="type">GstProtectionMeta</span></a> if successful; <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if |
| unsuccessful.</p> |
| </div> |
| <p class="since">Since: 1.6</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-buffer-get-protection-meta"></a><h3>gst_buffer_get_protection_meta()</h3> |
| <pre class="programlisting">#define gst_buffer_get_protection_meta(b)</pre> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-protection-select-system"></a><h3>gst_protection_select_system ()</h3> |
| <pre class="programlisting">const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * |
| gst_protection_select_system (<em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **system_identifiers</code></em>);</pre> |
| <p>Iterates the supplied list of UUIDs and checks the GstRegistry for |
| an element that supports one of the supplied UUIDs. If more than one |
| element matches, the system ID of the highest ranked element is selected.</p> |
| <div class="refsect3"> |
| <a name="id-1.3.42.7.4.5"></a><h4>Parameters</h4> |
| <div class="informaltable"><table width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="parameters_name"> |
| <col class="parameters_description"> |
| <col width="200px" class="parameters_annotations"> |
| </colgroup> |
| <tbody><tr> |
| <td class="parameter_name"><p>system_identifiers</p></td> |
| <td class="parameter_description"><p> A null terminated array of strings |
| that contains the UUID values of each protection system that is to be |
| checked. </p></td> |
| <td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="id-1.3.42.7.4.6"></a><h4>Returns</h4> |
| <p> One of the strings from <em class="parameter"><code>system_identifiers</code></em> |
| that |
| indicates the highest ranked element that implements the protection system |
| indicated by that system ID, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no element has been found. </p> |
| <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p> |
| </div> |
| <p class="since">Since: 1.6</p> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="gstreamer-gstprotection.other_details"></a><h2>Types and Values</h2> |
| <div class="refsect2"> |
| <a name="GstProtectionMeta"></a><h3>struct GstProtectionMeta</h3> |
| <pre class="programlisting">struct GstProtectionMeta { |
| GstMeta meta; |
| |
| GstStructure *info; |
| }; |
| </pre> |
| <p>Metadata type that holds information about a sample from a protection-protected |
| track, including the information needed to decrypt it (if it is encrypted).</p> |
| <div class="refsect3"> |
| <a name="id-1.3.42.8.2.5"></a><h4>Members</h4> |
| <div class="informaltable"><table width="100%" border="0"> |
| <colgroup> |
| <col width="300px" class="struct_members_name"> |
| <col class="struct_members_description"> |
| <col width="200px" class="struct_members_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="struct_member_name"><p><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstProtectionMeta.meta"></a>meta</code></em>;</p></td> |
| <td class="struct_member_description"><p>the parent <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *<em class="structfield"><code><a name="GstProtectionMeta.info"></a>info</code></em>;</p></td> |
| <td class="struct_member_description"><p>the cryptographic information needed to decrypt the sample.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="footer"> |
| <hr>Generated by GTK-Doc V1.24</div> |
| </body> |
| </html> |