blob: 3de222de01f85f31af72f1f66b2c1eaa01b211d1 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>rawvideoparse: GStreamer Bad Plugins 1.0 Plugins Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GStreamer Bad Plugins 1.0 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-bad Elements">
<link rel="prev" href="gst-plugins-bad-plugins-rawaudioparse.html" title="rawaudioparse">
<link rel="next" href="gst-plugins-bad-plugins-rfbsrc.html" title="rfbsrc">
<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-bad-plugins-rawvideoparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
<a href="#gst-plugins-bad-plugins-rawvideoparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
<a href="#gst-plugins-bad-plugins-rawvideoparse.properties" class="shortcut">Properties</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="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gst-plugins-bad-plugins-rawaudioparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gst-plugins-bad-plugins-rfbsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gst-plugins-bad-plugins-rawvideoparse"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gst-plugins-bad-plugins-rawvideoparse.top_of_page"></a>rawvideoparse</span></h2>
<p>rawvideoparse</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawvideoparse.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstvideo.html#GstVideoFormat"><span class="type">GstVideoFormat</span></a></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse--format" title="The “format” property">format</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse--frame-stride" title="The “frame-stride” property">frame-stride</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">GstFraction</span></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse--framerate" title="The “framerate” property">framerate</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse--height" title="The “height” property">height</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse--interlaced" title="The “interlaced” property">interlaced</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">GstFraction</span></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse--pixel-aspect-ratio" title="The “pixel-aspect-ratio” property">pixel-aspect-ratio</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse--plane-offsets" title="The “plane-offsets” property">plane-offsets</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse--plane-strides" title="The “plane-strides” property">plane-strides</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse--top-field-first" title="The “top-field-first” property">top-field-first</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse--width" title="The “width” property">width</a></td>
<td class="property_flags">Read / Write</td>
</tr>
</tbody>
</table></div>
</div>
<a name="GstRawVideoParse"></a><div class="refsect1">
<a name="gst-plugins-bad-plugins-rawvideoparse.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="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="gst-plugins-bad-plugins-rawvideoparse.html#GstRawVideoParse-struct" title="struct GstRawVideoParse">GstRawVideoParse</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawvideoparse.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
<span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
<span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
<span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
<span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseParse.html#GstBaseParse-struct">GstBaseParse</a>
<span class="lineart">╰──</span> GstRawBaseParse
<span class="lineart">╰──</span> GstRawVideoParse
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawvideoparse.description"></a><h2>Description</h2>
<p>This element parses incoming data as raw video frames and timestamps these.
It also handles seek queries in said raw video data, and ensures that output
buffers contain exactly one frame, even if the input buffers contain only
partial frames or multiple frames. In the former case, it will continue to
receive buffers until there is enough input data to output one frame. In the
latter case, it will extract the first frame in the buffer and output it, then
the second one etc. until the remaining unparsed bytes aren't enough to form
a complete frame, and it will then continue as described in the earlier case.</p>
<p>The element implements the properties and sink caps configuration as specified
in the <span class="type">GstRawBaseParse</span> documentation. The properties configuration can be
modified by using the width, height, pixel-aspect-ratio, framerate, interlaced,
top-field-first, plane-strides, plane-offsets, and frame-stride properties.</p>
<p>If the properties configuration is used, plane strides and offsets will be
computed by using <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstvideo.html#gst-video-info-set-format"><code class="function">gst_video_info_set_format()</code></a>. This can be overridden by passing
GValueArrays to the plane-offsets and plane-strides properties. When this is
done, these custom offsets and strides are used later even if new width,
height, format etc. property values might be set. To switch back to computed
plane strides &amp; offsets, pass NULL to one or both of the plane-offset and
plane-array properties.</p>
<p>The frame stride property is useful in cases where there is extra data between
the frames (for example, trailing metadata, or headers). The parser calculates
the actual frame size out of the other properties and compares it with this
frame-stride value. If the frame stride is larger than the calculated size,
then the extra bytes after the end of the frame are skipped. For example, with
8-bit grayscale frames and a frame size of 100x10 pixels and a frame stride of
1500 bytes, there are 500 excess bytes at the end of the actual frame which
are then skipped. It is safe to set the frame stride to a value that is smaller
than the actual frame size (in fact, its default value is 0); if it is smaller,
then no trailing data will be skipped.</p>
<p>If a framerate of 0 Hz is set (for example, 0/1), then output buffers will have
no duration set. The first output buffer will have a PTS 0, all subsequent ones
an unset PTS.</p>
<div class="refsect2">
<a name="id-1.2.107.7.7"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2</pre></td>
<td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">.</span>raw <span class="gtkdoc opt">!</span> rawvideoparse use<span class="gtkdoc opt">-</span>sink<span class="gtkdoc opt">-</span>caps<span class="gtkdoc opt">=</span><span class="keyword">false</span> \
width<span class="gtkdoc opt">=</span><span class="number">500</span> height<span class="gtkdoc opt">=</span><span class="number">400</span> format<span class="gtkdoc opt">=</span>y444 <span class="gtkdoc opt">!</span> autovideosink</pre></td>
</tr>
</tbody>
</table>
</div>
Read raw data from a local file and parse it as video data with 500x400 pixels
and Y444 video format.
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3</pre></td>
<td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">.</span>raw <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> <span class="string">&quot;video/x-raw, width=320, \</span>
<span class="string"> height=240, format=I420, framerate=1/1&quot;</span> <span class="gtkdoc opt">!</span> rawvideoparse \
use<span class="gtkdoc opt">-</span>sink<span class="gtkdoc opt">-</span>caps<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> autovideosink</pre></td>
</tr>
</tbody>
</table>
</div>
Read raw data from a local file and parse it as video data with 320x240 pixels
and I420 video format. The queue element here is to force push based scheduling.
See the documentation in <span class="type">GstRawBaseParse</span> for the reason why.
</div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
<a name="id-1.2.107.7.8.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">plugin</span></p></td>
<td>
<a class="link" href="gst-plugins-bad-plugins-plugin-rawparse.html#plugin-rawparse">rawparse</a>
</td>
</tr>
<tr>
<td><p><span class="term">author</span></p></td>
<td>Carlos Rafael Giani &lt;dv@pseudoterminal.org&gt;</td>
</tr>
<tr>
<td><p><span class="term">class</span></p></td>
<td>Codec/Parser/Video</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="id-1.2.107.7.8.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">name</span></p></td>
<td>sink</td>
</tr>
<tr>
<td><p><span class="term">direction</span></p></td>
<td>sink</td>
</tr>
<tr>
<td><p><span class="term">presence</span></p></td>
<td>always</td>
</tr>
<tr>
<td><p><span class="term">details</span></p></td>
<td>video/x-unaligned-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, IYU2, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE, P010_10LE, P010_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
<td> video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, IYU2, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE, P010_10LE, P010_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
</tr>
</tbody>
</table></div>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">name</span></p></td>
<td>src</td>
</tr>
<tr>
<td><p><span class="term">direction</span></p></td>
<td>source</td>
</tr>
<tr>
<td><p><span class="term">presence</span></p></td>
<td>always</td>
</tr>
<tr>
<td><p><span class="term">details</span></p></td>
<td>video/x-raw, format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, IYU2, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE, P010_10LE, P010_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawvideoparse.functions_details"></a><h2>Functions</h2>
<p></p>
</div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawvideoparse.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstRawVideoParse-struct"></a><h3>struct GstRawVideoParse</h3>
<pre class="programlisting">struct GstRawVideoParse;</pre>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawvideoparse.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstRawVideoParse--format"></a><h3>The <code class="literal">“format”</code> property</h3>
<pre class="programlisting"> “format” <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstvideo.html#GstVideoFormat"><span class="type">GstVideoFormat</span></a></pre>
<p>Format of frames in raw stream.</p>
<p>Flags: Read / Write</p>
<p>Default value: GST_VIDEO_FORMAT_I420</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawVideoParse--frame-stride"></a><h3>The <code class="literal">“frame-stride”</code> property</h3>
<pre class="programlisting"> “frame-stride” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
<p>Stride between whole frames (0 = frames are tightly packed together).</p>
<p>Flags: Read / Write</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawVideoParse--framerate"></a><h3>The <code class="literal">“framerate”</code> property</h3>
<pre class="programlisting"> “framerate” <span class="type">GstFraction</span></pre>
<p>Rate of frames in raw stream.</p>
<p>Flags: Read / Write</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawVideoParse--height"></a><h3>The <code class="literal">“height”</code> property</h3>
<pre class="programlisting"> “height” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
<p>Height of frames in raw stream.</p>
<p>Flags: Read / Write</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 240</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawVideoParse--interlaced"></a><h3>The <code class="literal">“interlaced”</code> property</h3>
<pre class="programlisting"> “interlaced” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>True if frames in raw stream are interlaced.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawVideoParse--pixel-aspect-ratio"></a><h3>The <code class="literal">“pixel-aspect-ratio”</code> property</h3>
<pre class="programlisting"> “pixel-aspect-ratio” <span class="type">GstFraction</span></pre>
<p>Pixel aspect ratio of frames in raw stream.</p>
<p>Flags: Read / Write</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawVideoParse--plane-offsets"></a><h3>The <code class="literal">“plane-offsets”</code> property</h3>
<pre class="programlisting"> “plane-offsets” <a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre>
<p>Offsets of the planes in bytes.</p>
<p>Flags: Read / Write</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawVideoParse--plane-strides"></a><h3>The <code class="literal">“plane-strides”</code> property</h3>
<pre class="programlisting"> “plane-strides” <a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre>
<p>Strides of the planes in bytes.</p>
<p>Flags: Read / Write</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawVideoParse--top-field-first"></a><h3>The <code class="literal">“top-field-first”</code> property</h3>
<pre class="programlisting"> “top-field-first” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>True if top field in frames in raw stream come first (not used if frames aren't interlaced).</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawVideoParse--width"></a><h3>The <code class="literal">“width”</code> property</h3>
<pre class="programlisting"> “width” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
<p>Width of frames in raw stream.</p>
<p>Flags: Read / Write</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 320</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25</div>
</body>
</html>