| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>GstVideoEncoder: GStreamer Base Plugins 1.0 Library Reference Manual</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> |
| <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual"> |
| <link rel="up" href="gstreamer-video.html" title="Video Library"> |
| <link rel="prev" href="gst-plugins-base-libs-GstVideoDecoder.html" title="GstVideoDecoder"> |
| <link rel="next" href="gst-plugins-base-libs-GstVideoPool.html" title="GstVideoPool"> |
| <meta name="generator" content="GTK-Doc V1.25 (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="#gst-plugins-base-libs-GstVideoEncoder.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="gstreamer-video.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
| <td><a accesskey="p" href="gst-plugins-base-libs-GstVideoDecoder.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> |
| <td><a accesskey="n" href="gst-plugins-base-libs-GstVideoPool.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> |
| </tr></table> |
| <div class="refentry"> |
| <a name="gst-plugins-base-libs-GstVideoEncoder"></a><div class="titlepage"></div> |
| <div class="refnamediv"><table width="100%"><tr> |
| <td valign="top"> |
| <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoEncoder.top_of_page"></a>GstVideoEncoder</span></h2> |
| <p>GstVideoEncoder — Base class for video encoders</p> |
| </td> |
| <td class="gallery_image" valign="top" align="right"></td> |
| </tr></table></div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-libs-GstVideoEncoder.functions"></a><h2>Functions</h2> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="functions_return"> |
| <col class="functions_name"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-CAST:CAPS" title="GST_VIDEO_ENCODER_CAST()">GST_VIDEO_ENCODER_CAST</a><span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SINK-PAD:CAPS" title="GST_VIDEO_ENCODER_SINK_PAD()">GST_VIDEO_ENCODER_SINK_PAD</a><span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SRC-PAD:CAPS" title="GST_VIDEO_ENCODER_SRC_PAD()">GST_VIDEO_ENCODER_SRC_PAD</a><span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-INPUT-SEGMENT:CAPS" title="GST_VIDEO_ENCODER_INPUT_SEGMENT()">GST_VIDEO_ENCODER_INPUT_SEGMENT</a><span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-OUTPUT-SEGMENT:CAPS" title="GST_VIDEO_ENCODER_OUTPUT_SEGMENT()">GST_VIDEO_ENCODER_OUTPUT_SEGMENT</a><span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-STREAM-LOCK:CAPS" title="GST_VIDEO_ENCODER_STREAM_LOCK()">GST_VIDEO_ENCODER_STREAM_LOCK</a><span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-STREAM-UNLOCK:CAPS" title="GST_VIDEO_ENCODER_STREAM_UNLOCK()">GST_VIDEO_ENCODER_STREAM_UNLOCK</a><span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> * |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-allocate-output-buffer" title="gst_video_encoder_allocate_output_buffer ()">gst_video_encoder_allocate_output_buffer</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-allocate-output-frame" title="gst_video_encoder_allocate_output_frame ()">gst_video_encoder_allocate_output_frame</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <span class="returnvalue">void</span> |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-allocator" title="gst_video_encoder_get_allocator ()">gst_video_encoder_get_allocator</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-finish-frame" title="gst_video_encoder_finish_frame ()">gst_video_encoder_finish_frame</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-negotiate" title="gst_video_encoder_negotiate ()">gst_video_encoder_negotiate</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-frame" title="gst_video_encoder_get_frame ()">gst_video_encoder_get_frame</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-frames" title="gst_video_encoder_get_frames ()">gst_video_encoder_get_frames</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-oldest-frame" title="gst_video_encoder_get_oldest_frame ()">gst_video_encoder_get_oldest_frame</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <span class="returnvalue">void</span> |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-headers" title="gst_video_encoder_set_headers ()">gst_video_encoder_set_headers</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <span class="returnvalue">void</span> |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-latency" title="gst_video_encoder_get_latency ()">gst_video_encoder_get_latency</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <span class="returnvalue">void</span> |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-latency" title="gst_video_encoder_set_latency ()">gst_video_encoder_set_latency</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-output-state" title="gst_video_encoder_set_output_state ()">gst_video_encoder_set_output_state</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-get-output-state" title="gst_video_encoder_get_output_state ()">gst_video_encoder_get_output_state</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> * |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-proxy-getcaps" title="gst_video_encoder_proxy_getcaps ()">gst_video_encoder_proxy_getcaps</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| <tr> |
| <td class="function_type"> |
| <span class="returnvalue">void</span> |
| </td> |
| <td class="function_name"> |
| <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-merge-tags" title="gst_video_encoder_merge_tags ()">gst_video_encoder_merge_tags</a> <span class="c_punctuation">()</span> |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-libs-GstVideoEncoder.other"></a><h2>Types and Values</h2> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="name"> |
| <col class="description"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-DROPPED:CAPS" title="GST_VIDEO_ENCODER_FLOW_DROPPED">GST_VIDEO_ENCODER_FLOW_DROPPED</a></td> |
| </tr> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-NEED-DATA:CAPS" title="GST_VIDEO_ENCODER_FLOW_NEED_DATA">GST_VIDEO_ENCODER_FLOW_NEED_DATA</a></td> |
| </tr> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SINK-NAME:CAPS" title="GST_VIDEO_ENCODER_SINK_NAME">GST_VIDEO_ENCODER_SINK_NAME</a></td> |
| </tr> |
| <tr> |
| <td class="define_keyword">#define</td> |
| <td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-SRC-NAME:CAPS" title="GST_VIDEO_ENCODER_SRC_NAME">GST_VIDEO_ENCODER_SRC_NAME</a></td> |
| </tr> |
| <tr> |
| <td class="datatype_keyword">struct</td> |
| <td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder">GstVideoEncoder</a></td> |
| </tr> |
| <tr> |
| <td class="datatype_keyword">struct</td> |
| <td class="function_name"><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass" title="struct GstVideoEncoderClass">GstVideoEncoderClass</a></td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-libs-GstVideoEncoder.description"></a><h2>Description</h2> |
| <p>This base class is for video encoders turning raw video into |
| encoded video data.</p> |
| <p>GstVideoEncoder and subclass should cooperate as follows.</p> |
| <div class="orderedlist"><ol class="orderedlist" type="1"> |
| <li class="listitem"><div class="itemizedlist"> |
| <p class="title"><b>Configuration</b></p> |
| <ul class="itemizedlist" style="list-style-type: disc; "> |
| <li class="listitem"><p> |
| Initially, GstVideoEncoder calls <em class="parameter"><code>start</code></em> when the encoder element |
| is activated, which allows subclass to perform any global setup. |
| </p></li> |
| <li class="listitem"><p> |
| GstVideoEncoder calls <em class="parameter"><code>set_format</code></em> to inform subclass of the format |
| of input video data that it is about to receive. Subclass should |
| setup for encoding and configure base class as appropriate |
| (e.g. latency). While unlikely, it might be called more than once, |
| if changing input parameters require reconfiguration. Baseclass |
| will ensure that processing of current configuration is finished. |
| </p></li> |
| <li class="listitem"><p> |
| GstVideoEncoder calls <em class="parameter"><code>stop</code></em> at end of all processing. |
| </p></li> |
| </ul> |
| </div></li> |
| <li class="listitem"><div class="itemizedlist"> |
| <p class="title"><b>Data processing</b></p> |
| <ul class="itemizedlist" style="list-style-type: disc; "> |
| <li class="listitem"><p> |
| Base class collects input data and metadata into a frame and hands |
| this to subclass' <em class="parameter"><code>handle_frame</code></em>. |
| </p></li> |
| <li class="listitem"><p> |
| If codec processing results in encoded data, subclass should call |
| <em class="parameter"><code>gst_video_encoder_finish_frame</code></em> to have encoded data pushed |
| downstream. |
| </p></li> |
| <li class="listitem"><p> |
| If implemented, baseclass calls subclass <em class="parameter"><code>pre_push</code></em> just prior to |
| pushing to allow subclasses to modify some metadata on the buffer. |
| If it returns GST_FLOW_OK, the buffer is pushed downstream. |
| </p></li> |
| <li class="listitem"><p> |
| GstVideoEncoderClass will handle both srcpad and sinkpad events. |
| Sink events will be passed to subclass if <em class="parameter"><code>event</code></em> callback has been |
| provided. |
| </p></li> |
| </ul> |
| </div></li> |
| <li class="listitem"><div class="itemizedlist"> |
| <p class="title"><b>Shutdown phase</b></p> |
| <ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> |
| GstVideoEncoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data |
| parsing will be stopped. |
| </p></li></ul> |
| </div></li> |
| </ol></div> |
| <p>Subclass is responsible for providing pad template caps for |
| source and sink pads. The pads need to be named "sink" and "src". It should |
| also be able to provide fixed src pad caps in <em class="parameter"><code>getcaps</code></em> |
| by the time it calls |
| <em class="parameter"><code>gst_video_encoder_finish_frame</code></em> |
| .</p> |
| <p>Things that subclass need to take care of:</p> |
| <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
| <li class="listitem"><p>Provide pad templates</p></li> |
| <li class="listitem"><p> |
| Provide source pad caps before pushing the first buffer |
| </p></li> |
| <li class="listitem"><p> |
| Accept data in <em class="parameter"><code>handle_frame</code></em> and provide encoded results to |
| <em class="parameter"><code>gst_video_encoder_finish_frame</code></em>. |
| </p></li> |
| </ul></div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-libs-GstVideoEncoder.functions_details"></a><h2>Functions</h2> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-CAST:CAPS"></a><h3>GST_VIDEO_ENCODER_CAST()</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_CAST(enc) ((GstVideoEncoder*)enc) |
| </pre> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-SINK-PAD:CAPS"></a><h3>GST_VIDEO_ENCODER_SINK_PAD()</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_SINK_PAD(obj) (((GstVideoEncoder *) (obj))->sinkpad) |
| </pre> |
| <p>Gives the pointer to the sink <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p> |
| <div class="refsect3"> |
| <a name="GST-VIDEO-ENCODER-SINK-PAD.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>obj</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-SRC-PAD:CAPS"></a><h3>GST_VIDEO_ENCODER_SRC_PAD()</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_SRC_PAD(obj) (((GstVideoEncoder *) (obj))->srcpad) |
| </pre> |
| <p>Gives the pointer to the source <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p> |
| <div class="refsect3"> |
| <a name="GST-VIDEO-ENCODER-SRC-PAD.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>obj</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-INPUT-SEGMENT:CAPS"></a><h3>GST_VIDEO_ENCODER_INPUT_SEGMENT()</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_INPUT_SEGMENT(obj) (GST_VIDEO_ENCODER_CAST (obj)->input_segment) |
| </pre> |
| <p>Gives the segment of the element.</p> |
| <div class="refsect3"> |
| <a name="GST-VIDEO-ENCODER-INPUT-SEGMENT.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>obj</p></td> |
| <td class="parameter_description"><p>base parse instance</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-OUTPUT-SEGMENT:CAPS"></a><h3>GST_VIDEO_ENCODER_OUTPUT_SEGMENT()</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_OUTPUT_SEGMENT(obj) (GST_VIDEO_ENCODER_CAST (obj)->output_segment) |
| </pre> |
| <p>Gives the segment of the element.</p> |
| <div class="refsect3"> |
| <a name="GST-VIDEO-ENCODER-OUTPUT-SEGMENT.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>obj</p></td> |
| <td class="parameter_description"><p>base parse instance</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-STREAM-LOCK:CAPS"></a><h3>GST_VIDEO_ENCODER_STREAM_LOCK()</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_STREAM_LOCK(encoder) g_rec_mutex_lock (&GST_VIDEO_ENCODER (encoder)->stream_lock) |
| </pre> |
| <p>Obtain a lock to protect the encoder function from concurrent access.</p> |
| <div class="refsect3"> |
| <a name="GST-VIDEO-ENCODER-STREAM-LOCK.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>video encoder instance</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-STREAM-UNLOCK:CAPS"></a><h3>GST_VIDEO_ENCODER_STREAM_UNLOCK()</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_STREAM_UNLOCK(encoder) g_rec_mutex_unlock (&GST_VIDEO_ENCODER (encoder)->stream_lock) |
| </pre> |
| <p>Release the lock that protects the encoder function from concurrent access.</p> |
| <div class="refsect3"> |
| <a name="GST-VIDEO-ENCODER-STREAM-UNLOCK.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>video encoder instance</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-allocate-output-buffer"></a><h3>gst_video_encoder_allocate_output_buffer ()</h3> |
| <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> * |
| gst_video_encoder_allocate_output_buffer |
| (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre> |
| <p>Helper function that allocates a buffer to hold an encoded video frame |
| for <em class="parameter"><code>encoder</code></em> |
| 's current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-allocate-output-buffer.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>size</p></td> |
| <td class="parameter_description"><p>size of the buffer</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-allocate-output-buffer.returns"></a><h4>Returns</h4> |
| <p> allocated buffer. </p> |
| <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-allocate-output-frame"></a><h3>gst_video_encoder_allocate_output_frame ()</h3> |
| <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> |
| gst_video_encoder_allocate_output_frame |
| (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>, |
| <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre> |
| <p>Helper function that allocates a buffer to hold an encoded video frame for <em class="parameter"><code>encoder</code></em> |
| 's |
| current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>. Subclass should already have configured video |
| state and set src pad caps.</p> |
| <p>The buffer allocated here is owned by the frame and you should only |
| keep references to the frame, not the buffer.</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-allocate-output-frame.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>frame</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>size</p></td> |
| <td class="parameter_description"><p>size of the buffer</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-allocate-output-frame.returns"></a><h4>Returns</h4> |
| <p> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-OK:CAPS"><code class="literal">GST_FLOW_OK</code></a> if an output buffer could be allocated</p> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-get-allocator"></a><h3>gst_video_encoder_get_allocator ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| gst_video_encoder_get_allocator (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a> **allocator</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocationParams-struct"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre> |
| <p>Lets <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> sub-classes to know the memory <em class="parameter"><code>allocator</code></em> |
| |
| used by the base class and its <em class="parameter"><code>params</code></em> |
| .</p> |
| <p>Unref the <em class="parameter"><code>allocator</code></em> |
| after use it.</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-get-allocator.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>allocator</p></td> |
| <td class="parameter_description"><p> the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a> |
| used. </p></td> |
| <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>params</p></td> |
| <td class="parameter_description"><p> the |
| <span class="type">GstAllocatorParams</span> of <em class="parameter"><code>allocator</code></em> |
| . </p></td> |
| <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-finish-frame"></a><h3>gst_video_encoder_finish_frame ()</h3> |
| <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> |
| gst_video_encoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>, |
| <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre> |
| <p><em class="parameter"><code>frame</code></em> |
| must have a valid encoded data buffer, whose metadata fields |
| are then appropriately set according to frame data or no buffer at |
| all if the frame should be dropped. |
| It is subsequently pushed downstream or provided to <em class="parameter"><code>pre_push</code></em> |
| . |
| In any case, the frame is considered finished and released.</p> |
| <p>After calling this function the output buffer of the frame is to be |
| considered read-only. This function will also change the metadata |
| of the buffer.</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-finish-frame.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>frame</p></td> |
| <td class="parameter_description"><p> an encoded <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </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="gst-video-encoder-finish-frame.returns"></a><h4>Returns</h4> |
| <p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> resulting from sending data downstream</p> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-negotiate"></a><h3>gst_video_encoder_negotiate ()</h3> |
| <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> |
| gst_video_encoder_negotiate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre> |
| <p>Negotiate with downstream elements to currently configured <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>. |
| Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if |
| negotiate fails.</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-negotiate.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-negotiate.returns"></a><h4>Returns</h4> |
| <p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-get-frame"></a><h3>gst_video_encoder_get_frame ()</h3> |
| <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * |
| gst_video_encoder_get_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>, |
| <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);</pre> |
| <p>Get a pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-get-frame.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <span class="type">GstVideoEnccoder</span></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>frame_number</p></td> |
| <td class="parameter_description"><p>system_frame_number of a frame</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-get-frame.returns"></a><h4>Returns</h4> |
| <p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> identified by <em class="parameter"><code>frame_number</code></em> |
| . </p> |
| <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-get-frames"></a><h3>gst_video_encoder_get_frames ()</h3> |
| <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * |
| gst_video_encoder_get_frames (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre> |
| <p>Get all pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-get-frames.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-get-frames.returns"></a><h4>Returns</h4> |
| <p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p> |
| <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstVideoCodecFrame]</span></p> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-get-oldest-frame"></a><h3>gst_video_encoder_get_oldest_frame ()</h3> |
| <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> * |
| gst_video_encoder_get_oldest_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre> |
| <p>Get the oldest unfinished pending <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-get-oldest-frame.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-get-oldest-frame.returns"></a><h4>Returns</h4> |
| <p> oldest unfinished pending <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p> |
| <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-set-headers"></a><h3>gst_video_encoder_set_headers ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| gst_video_encoder_set_headers (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *headers</code></em>);</pre> |
| <p>Set the codec headers to be sent downstream whenever requested.</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-set-headers.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>headers</p></td> |
| <td class="parameter_description"><p> a list of <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> containing the codec header. </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>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstBuffer]</span></td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-get-latency"></a><h3>gst_video_encoder_get_latency ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| gst_video_encoder_get_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre> |
| <p>Query the configured encoding latency. Results will be returned via |
| <em class="parameter"><code>min_latency</code></em> |
| and <em class="parameter"><code>max_latency</code></em> |
| .</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-get-latency.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>min_latency</p></td> |
| <td class="parameter_description"><p> address of variable in which to store the |
| configured minimum latency, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td> |
| <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>max_latency</p></td> |
| <td class="parameter_description"><p> address of variable in which to store the |
| configured maximum latency, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td> |
| <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-set-latency"></a><h3>gst_video_encoder_set_latency ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| gst_video_encoder_set_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre> |
| <p>Informs baseclass of encoding latency.</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-set-latency.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>min_latency</p></td> |
| <td class="parameter_description"><p>minimum latency</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>max_latency</p></td> |
| <td class="parameter_description"><p>maximum latency</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-set-output-state"></a><h3>gst_video_encoder_set_output_state ()</h3> |
| <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * |
| gst_video_encoder_set_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>, |
| <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *reference</code></em>);</pre> |
| <p>Creates a new <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> with the specified caps as the output state |
| for the encoder. |
| Any previously set output state on <em class="parameter"><code>encoder</code></em> |
| will be replaced by the newly |
| created one.</p> |
| <p>The specified <em class="parameter"><code>caps</code></em> |
| should not contain any resolution, pixel-aspect-ratio, |
| framerate, codec-data, .... Those should be specified instead in the returned |
| <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.</p> |
| <p>If the subclass wishes to copy over existing fields (like pixel aspect ratio, |
| or framerate) from an existing <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>, it can be provided as a |
| <em class="parameter"><code>reference</code></em> |
| .</p> |
| <p>If the subclass wishes to override some fields from the output state (like |
| pixel-aspect-ratio or framerate) it can do so on the returned <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.</p> |
| <p>The new output state will only take effect (set on pads and buffers) starting |
| from the next call to <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-finish-frame" title="gst_video_encoder_finish_frame ()"><code class="function">gst_video_encoder_finish_frame()</code></a>.</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-set-output-state.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>caps</p></td> |
| <td class="parameter_description"><p> the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> to use for the output. </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> |
| <tr> |
| <td class="parameter_name"><p>reference</p></td> |
| <td class="parameter_description"><p> An optional reference <em class="parameter"><code>GstVideoCodecState</code></em> |
| . </p></td> |
| <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<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="gst-video-encoder-set-output-state.returns"></a><h4>Returns</h4> |
| <p> the newly configured output state. </p> |
| <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-get-output-state"></a><h3>gst_video_encoder_get_output_state ()</h3> |
| <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> * |
| gst_video_encoder_get_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre> |
| <p>Get the current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a></p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-get-output-state.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-get-output-state.returns"></a><h4>Returns</h4> |
| <p> <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> describing format of video data. </p> |
| <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-proxy-getcaps"></a><h3>gst_video_encoder_proxy_getcaps ()</h3> |
| <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> * |
| gst_video_encoder_proxy_getcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *enc</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *filter</code></em>);</pre> |
| <p>Returns caps that express <em class="parameter"><code>caps</code></em> |
| (or sink template caps if <em class="parameter"><code>caps</code></em> |
| == NULL) |
| restricted to resolution/format/... combinations supported by downstream |
| elements (e.g. muxers).</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-proxy-getcaps.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>enc</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>caps</p></td> |
| <td class="parameter_description"><p> initial caps. </p></td> |
| <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>filter</p></td> |
| <td class="parameter_description"><p> filter caps. </p></td> |
| <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-proxy-getcaps.returns"></a><h4>Returns</h4> |
| <p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> owned by caller. </p> |
| <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="gst-video-encoder-merge-tags"></a><h3>gst_video_encoder_merge_tags ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| gst_video_encoder_merge_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>, |
| <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *tags</code></em>, |
| <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre> |
| <p>Sets the video encoder tags and how they should be merged with any |
| upstream stream tags. This will override any tags previously-set |
| with <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-merge-tags" title="gst_video_encoder_merge_tags ()"><code class="function">gst_video_encoder_merge_tags()</code></a>.</p> |
| <p>Note that this is provided for convenience, and the subclass is |
| not required to use this and can still do tag handling on its own.</p> |
| <p>MT safe.</p> |
| <div class="refsect3"> |
| <a name="gst-video-encoder-merge-tags.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" 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>encoder</p></td> |
| <td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>tags</p></td> |
| <td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> to merge, or NULL to unset |
| previously-set tags. </p></td> |
| <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>mode</p></td> |
| <td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use, usually <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-MERGE-REPLACE:CAPS"><span class="type">GST_TAG_MERGE_REPLACE</span></a></p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-libs-GstVideoEncoder.other_details"></a><h2>Types and Values</h2> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-FLOW-DROPPED:CAPS"></a><h3>GST_VIDEO_ENCODER_FLOW_DROPPED</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS_1 |
| </pre> |
| <div class="warning"> |
| <p><code class="literal">GST_VIDEO_ENCODER_FLOW_DROPPED</code> is deprecated and should not be used in newly-written code.</p> |
| <p>since 1.8. use gst_video_encoder_finish_frame with |
| a <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> frame->output_buffer to drop the frame instead.</p> |
| </div> |
| <p>Returned when the event/buffer should be dropped.</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-FLOW-NEED-DATA:CAPS"></a><h3>GST_VIDEO_ENCODER_FLOW_NEED_DATA</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS |
| </pre> |
| <p>Returned while parsing to indicate more data is needed.</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-SINK-NAME:CAPS"></a><h3>GST_VIDEO_ENCODER_SINK_NAME</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_SINK_NAME "sink" |
| </pre> |
| <p>The name of the templates for the sink pad.</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GST-VIDEO-ENCODER-SRC-NAME:CAPS"></a><h3>GST_VIDEO_ENCODER_SRC_NAME</h3> |
| <pre class="programlisting">#define GST_VIDEO_ENCODER_SRC_NAME "src" |
| </pre> |
| <p>The name of the templates for the source pad.</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstVideoEncoder"></a><h3>struct GstVideoEncoder</h3> |
| <pre class="programlisting">struct GstVideoEncoder { |
| }; |
| </pre> |
| <p>The opaque <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> data structure.</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstVideoEncoderClass"></a><h3>struct GstVideoEncoderClass</h3> |
| <pre class="programlisting">struct GstVideoEncoderClass { |
| /* virtual methods for subclasses */ |
| gboolean (*open) (GstVideoEncoder *encoder); |
| |
| gboolean (*close) (GstVideoEncoder *encoder); |
| |
| gboolean (*start) (GstVideoEncoder *encoder); |
| |
| gboolean (*stop) (GstVideoEncoder *encoder); |
| |
| gboolean (*set_format) (GstVideoEncoder *encoder, |
| GstVideoCodecState *state); |
| |
| GstFlowReturn (*handle_frame) (GstVideoEncoder *encoder, |
| GstVideoCodecFrame *frame); |
| |
| gboolean (*reset) (GstVideoEncoder *encoder, |
| gboolean hard); |
| |
| GstFlowReturn (*finish) (GstVideoEncoder *encoder); |
| |
| GstFlowReturn (*pre_push) (GstVideoEncoder *encoder, |
| GstVideoCodecFrame *frame); |
| |
| GstCaps * (*getcaps) (GstVideoEncoder *enc, |
| GstCaps *filter); |
| |
| gboolean (*sink_event) (GstVideoEncoder *encoder, |
| GstEvent *event); |
| |
| gboolean (*src_event) (GstVideoEncoder *encoder, |
| GstEvent *event); |
| |
| gboolean (*negotiate) (GstVideoEncoder *encoder); |
| |
| gboolean (*decide_allocation) (GstVideoEncoder *encoder, GstQuery *query); |
| |
| gboolean (*propose_allocation) (GstVideoEncoder * encoder, |
| GstQuery * query); |
| gboolean (*flush) (GstVideoEncoder *encoder); |
| |
| gboolean (*sink_query) (GstVideoEncoder *encoder, |
| GstQuery *query); |
| |
| gboolean (*src_query) (GstVideoEncoder *encoder, |
| GstQuery *query); |
| |
| gboolean (*transform_meta) (GstVideoEncoder *encoder, |
| GstVideoCodecFrame *frame, |
| GstMeta * meta); |
| }; |
| </pre> |
| <p>Subclasses can override any of the available virtual methods or not, as |
| needed. At minimum <em class="parameter"><code>handle_frame</code></em> |
| needs to be overridden, and <em class="parameter"><code>set_format</code></em> |
| |
| and <em class="parameter"><code>get_caps</code></em> |
| are likely needed as well.</p> |
| <div class="refsect3"> |
| <a name="GstVideoEncoderClass.members"></a><h4>Members</h4> |
| <div class="informaltable"><table class="informaltable" 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><em class="structfield"><code><a name="GstVideoEncoderClass.open"></a>open</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Called when the element changes to GST_STATE_READY. |
| Allows opening external resources.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.close"></a>close</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Called when the element changes to GST_STATE_NULL. |
| Allows closing external resources.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.start"></a>start</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Called when the element starts processing. |
| Allows opening external resources.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.stop"></a>stop</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Called when the element stops processing. |
| Allows closing external resources.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.set-format"></a>set_format</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Notifies subclass of incoming data format. |
| GstVideoCodecState fields have already been |
| set according to provided caps.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.handle-frame"></a>handle_frame</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Provides input frame to subclass.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.reset"></a>reset</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Allows subclass (encoder) to perform post-seek semantics reset. |
| Deprecated.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.finish"></a>finish</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Called to request subclass to dispatch any pending remaining |
| data (e.g. at EOS).</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.pre-push"></a>pre_push</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Allows subclass to push frame downstream in whatever |
| shape or form it deems appropriate. If not provided, |
| provided encoded frame data is simply pushed downstream.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.getcaps"></a>getcaps</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Allows for a custom sink getcaps implementation (e.g. |
| for multichannel input specification). If not implemented, |
| default returns gst_video_encoder_proxy_getcaps |
| applied to sink template caps.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.sink-event"></a>sink_event</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Event handler on the sink pad. This function should return |
| TRUE if the event was handled and should be discarded |
| (i.e. not unref'ed). |
| Subclasses should chain up to the parent implementation to |
| invoke the default handler.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.src-event"></a>src_event</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Event handler on the source pad. This function should return |
| TRUE if the event was handled and should be discarded |
| (i.e. not unref'ed). |
| Subclasses should chain up to the parent implementation to |
| invoke the default handler.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.negotiate"></a>negotiate</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Negotiate with downstream and configure buffer pools, etc. |
| Subclasses should chain up to the parent implementation to |
| invoke the default handler.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.decide-allocation"></a>decide_allocation</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Setup the allocation parameters for allocating output |
| buffers. The passed in query contains the result of the |
| downstream allocation query. |
| Subclasses should chain up to the parent implementation to |
| invoke the default handler.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.propose-allocation"></a>propose_allocation</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Propose buffer allocation parameters for upstream elements. |
| Subclasses should chain up to the parent implementation to |
| invoke the default handler.</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.flush"></a>flush</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Flush all remaining data from the encoder without |
| pushing it downstream. Since: 1.2</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.sink-query"></a>sink_query</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Query handler on the sink pad. This function should |
| return TRUE if the query could be performed. Subclasses |
| should chain up to the parent implementation to invoke the |
| default handler. Since 1.4</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.src-query"></a>src_query</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. |
| Query handler on the source pad. This function should |
| return TRUE if the query could be performed. Subclasses |
| should chain up to the parent implementation to invoke the |
| default handler. Since 1.4</p></td> |
| <td class="struct_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.transform-meta"></a>transform_meta</code></em> ()</p></td> |
| <td class="struct_member_description"><p>Optional. Transform the metadata on the input buffer to the |
| output buffer. By default this method is copies all meta without |
| tags and meta with only the "video" tag. subclasses can |
| implement this method and return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the metadata is to be |
| copied. Since 1.6</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.25</div> |
| </body> |
| </html> |