<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>gstreamermm: Gst::Segment Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> <link href="doxygen-extra.css" rel="stylesheet" type="text/css"/> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">gstreamermm  <span id="projectnumber">1.10.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',false,false,'search.php','Search'); }); </script> <div id="main-nav"></div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceGst.html">Gst</a></li><li class="navelem"><a class="el" href="classGst_1_1Segment.html">Segment</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#related">Related Functions</a> | <a href="classGst_1_1Segment-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">Gst::Segment Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>A class that describes the configured region of interest in a media file. <a href="classGst_1_1Segment.html#details">More...</a></p> <p><code>#include <gstreamermm/segment.h></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a93349f552c878d0cfc864ddcd5223c9f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a93349f552c878d0cfc864ddcd5223c9f">Segment</a> ()</td></tr> <tr class="separator:a93349f552c878d0cfc864ddcd5223c9f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a53d348dc091f1d60b49ca4f5b3b7daa7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a53d348dc091f1d60b49ca4f5b3b7daa7">Segment</a> (GstSegment* gobject, bool make_a_copy=true)</td></tr> <tr class="separator:a53d348dc091f1d60b49ca4f5b3b7daa7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae2091311c2538ace8a40689a9187c93e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#ae2091311c2538ace8a40689a9187c93e">Segment</a> (const <a class="el" href="classGst_1_1Segment.html">Segment</a>& other)</td></tr> <tr class="separator:ae2091311c2538ace8a40689a9187c93e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab136f825fb986624e7073996e9c38b6c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGst_1_1Segment.html">Segment</a>& </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#ab136f825fb986624e7073996e9c38b6c">operator=</a> (const <a class="el" href="classGst_1_1Segment.html">Segment</a>& other)</td></tr> <tr class="separator:ab136f825fb986624e7073996e9c38b6c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af417a62312f82257fc85866e7347c229"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#af417a62312f82257fc85866e7347c229">Segment</a> (<a class="el" href="classGst_1_1Segment.html">Segment</a>&& other) noexcept</td></tr> <tr class="separator:af417a62312f82257fc85866e7347c229"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2fbc8b157cef609bb8f3d9fc4de29154"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGst_1_1Segment.html">Segment</a>& </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a2fbc8b157cef609bb8f3d9fc4de29154">operator=</a> (<a class="el" href="classGst_1_1Segment.html">Segment</a>&& other) noexcept</td></tr> <tr class="separator:a2fbc8b157cef609bb8f3d9fc4de29154"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abce8f45c753a75a8fb056fc75f3eb0f7"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#abce8f45c753a75a8fb056fc75f3eb0f7">~Segment</a> () noexcept</td></tr> <tr class="separator:abce8f45c753a75a8fb056fc75f3eb0f7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acf00ddb94538954e5b0e809960a61ab5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#acf00ddb94538954e5b0e809960a61ab5">swap</a> (<a class="el" href="classGst_1_1Segment.html">Segment</a>& other) noexcept</td></tr> <tr class="separator:acf00ddb94538954e5b0e809960a61ab5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a27d809117a1d68a72404f6c2f3499b95"><td class="memItemLeft" align="right" valign="top">GstSegment* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a27d809117a1d68a72404f6c2f3499b95">gobj</a> ()</td></tr> <tr class="memdesc:a27d809117a1d68a72404f6c2f3499b95"><td class="mdescLeft"> </td><td class="mdescRight">Provides access to the underlying C instance. <a href="#a27d809117a1d68a72404f6c2f3499b95">More...</a><br /></td></tr> <tr class="separator:a27d809117a1d68a72404f6c2f3499b95"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2f06d6011c377af566adb22ac6978fdf"><td class="memItemLeft" align="right" valign="top">const GstSegment* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a2f06d6011c377af566adb22ac6978fdf">gobj</a> () const</td></tr> <tr class="memdesc:a2f06d6011c377af566adb22ac6978fdf"><td class="mdescLeft"> </td><td class="mdescRight">Provides access to the underlying C instance. <a href="#a2f06d6011c377af566adb22ac6978fdf">More...</a><br /></td></tr> <tr class="separator:a2f06d6011c377af566adb22ac6978fdf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3c336663dcae8f657804ff4fc3b145ac"><td class="memItemLeft" align="right" valign="top">GstSegment* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a3c336663dcae8f657804ff4fc3b145ac">gobj_copy</a> () const</td></tr> <tr class="memdesc:a3c336663dcae8f657804ff4fc3b145ac"><td class="mdescLeft"> </td><td class="mdescRight">Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs. <a href="#a3c336663dcae8f657804ff4fc3b145ac">More...</a><br /></td></tr> <tr class="separator:a3c336663dcae8f657804ff4fc3b145ac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5578ab3582b55ca74a4df2c5fbd9f890"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a5578ab3582b55ca74a4df2c5fbd9f890">clip</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> format, guint64 <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01656.html#ga1bd4227a2c4a6cc74342b797384fbab2">start</a>, guint64 stop, guint64& clip_start, guint64& clip_stop) const</td></tr> <tr class="memdesc:a5578ab3582b55ca74a4df2c5fbd9f890"><td class="mdescLeft"> </td><td class="mdescRight">Clip the given <em>start</em> and <em>stop</em> values to the segment boundaries given in <em>segment</em>. <a href="#a5578ab3582b55ca74a4df2c5fbd9f890">More...</a><br /></td></tr> <tr class="separator:a5578ab3582b55ca74a4df2c5fbd9f890"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a07ebca2ab8b587993047db0b1850aa9f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a07ebca2ab8b587993047db0b1850aa9f">init</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> format)</td></tr> <tr class="memdesc:a07ebca2ab8b587993047db0b1850aa9f"><td class="mdescLeft"> </td><td class="mdescRight">The start/position fields are set to 0 and the stop/duration fields are set to -1 (unknown). <a href="#a07ebca2ab8b587993047db0b1850aa9f">More...</a><br /></td></tr> <tr class="separator:a07ebca2ab8b587993047db0b1850aa9f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0a026748daacd1571401f9831124c540"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a0a026748daacd1571401f9831124c540">set_seek</a> (double rate, <a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> format, <a class="el" href="group__gstreamermmEnums.html#ga511d96d2c1136202d0d4b90de2485cf3">SeekFlags</a> flags, <a class="el" href="group__gstreamermmEnums.html#gaa7c6407bbc8040f51718d1be753422c0">SeekType</a> start_type, gint64 <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01656.html#ga1bd4227a2c4a6cc74342b797384fbab2">start</a>, <a class="el" href="group__gstreamermmEnums.html#gaa7c6407bbc8040f51718d1be753422c0">SeekType</a> stop_type, gint64 stop, bool& update)</td></tr> <tr class="memdesc:a0a026748daacd1571401f9831124c540"><td class="mdescLeft"> </td><td class="mdescRight">Update the segment structure with the field values of a seek event (see Gst::Event::new_seek()). <a href="#a0a026748daacd1571401f9831124c540">More...</a><br /></td></tr> <tr class="separator:a0a026748daacd1571401f9831124c540"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa26a00316351932d25fe77758cb52fb6"><td class="memItemLeft" align="right" valign="top">guint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#aa26a00316351932d25fe77758cb52fb6">to_running_time</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> format, guint64 position) const</td></tr> <tr class="memdesc:aa26a00316351932d25fe77758cb52fb6"><td class="mdescLeft"> </td><td class="mdescRight">Translate <em>position</em> to the total running time using the currently configured segment. <a href="#aa26a00316351932d25fe77758cb52fb6">More...</a><br /></td></tr> <tr class="separator:aa26a00316351932d25fe77758cb52fb6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a781ba80af647919843592bae3e5c8332"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a781ba80af647919843592bae3e5c8332">to_running_time</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> format, guint64 position, guint64& running_time) const</td></tr> <tr class="memdesc:a781ba80af647919843592bae3e5c8332"><td class="mdescLeft"> </td><td class="mdescRight">Translate <em>position</em> to the total running time using the currently configured segment. <a href="#a781ba80af647919843592bae3e5c8332">More...</a><br /></td></tr> <tr class="separator:a781ba80af647919843592bae3e5c8332"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab6d394de5e257c183af45b8cabf37432"><td class="memItemLeft" align="right" valign="top">guint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#ab6d394de5e257c183af45b8cabf37432">to_stream_time</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> format, guint64 position) const</td></tr> <tr class="memdesc:ab6d394de5e257c183af45b8cabf37432"><td class="mdescLeft"> </td><td class="mdescRight">Translate <em>position</em> to stream time using the currently configured segment. <a href="#ab6d394de5e257c183af45b8cabf37432">More...</a><br /></td></tr> <tr class="separator:ab6d394de5e257c183af45b8cabf37432"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2d8a25bfa176cddcd460196eb614ab5b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a2d8a25bfa176cddcd460196eb614ab5b">to_stream_time</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> format, guint64 position, guint64& stream_time) const</td></tr> <tr class="memdesc:a2d8a25bfa176cddcd460196eb614ab5b"><td class="mdescLeft"> </td><td class="mdescRight">Translate <em>position</em> to the total stream time using the currently configured segment. <a href="#a2d8a25bfa176cddcd460196eb614ab5b">More...</a><br /></td></tr> <tr class="separator:a2d8a25bfa176cddcd460196eb614ab5b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1d3a83004f1fd8e57229dd7f7f37fda6"><td class="memItemLeft" align="right" valign="top">guint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a1d3a83004f1fd8e57229dd7f7f37fda6">to_position</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> format, guint64 running_time) const</td></tr> <tr class="memdesc:a1d3a83004f1fd8e57229dd7f7f37fda6"><td class="mdescLeft"> </td><td class="mdescRight">Convert <em>running_time</em> into a position in the segment so that <a class="el" href="classGst_1_1Segment.html#aa26a00316351932d25fe77758cb52fb6" title="Translate position to the total running time using the currently configured segment. ">to_running_time()</a> with that position returns <em>running_time</em>. <a href="#a1d3a83004f1fd8e57229dd7f7f37fda6">More...</a><br /></td></tr> <tr class="separator:a1d3a83004f1fd8e57229dd7f7f37fda6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aacf77b95725d2508a5fe2c823b6563f7"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#aacf77b95725d2508a5fe2c823b6563f7">set_running_time</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> format, guint64 running_time)</td></tr> <tr class="memdesc:aacf77b95725d2508a5fe2c823b6563f7"><td class="mdescLeft"> </td><td class="mdescRight">Adjust the start/stop and base values of <em>segment</em> such that the next valid buffer will be one with <em>running_time</em>. <a href="#aacf77b95725d2508a5fe2c823b6563f7">More...</a><br /></td></tr> <tr class="separator:aacf77b95725d2508a5fe2c823b6563f7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8126b6bea807f78455ba3e67e2aa75ad"><td class="memItemLeft" align="right" valign="top">guint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a8126b6bea807f78455ba3e67e2aa75ad">position_from_running_time</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Gst::Format</a> format, guint64 running_time) const</td></tr> <tr class="memdesc:a8126b6bea807f78455ba3e67e2aa75ad"><td class="mdescLeft"> </td><td class="mdescRight">Convert <em>running_time</em> into a position in the segment so that <a class="el" href="classGst_1_1Segment.html#aa26a00316351932d25fe77758cb52fb6" title="Translate position to the total running time using the currently configured segment. ">to_running_time()</a> with that position returns <em>running_time</em>. <a href="#a8126b6bea807f78455ba3e67e2aa75ad">More...</a><br /></td></tr> <tr class="separator:a8126b6bea807f78455ba3e67e2aa75ad"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9e17db45c9b31b3d87f90dc48a4641d1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a9e17db45c9b31b3d87f90dc48a4641d1">position_from_running_time</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Gst::Format</a> format, guint64 running_time, guint64& position) const</td></tr> <tr class="memdesc:a9e17db45c9b31b3d87f90dc48a4641d1"><td class="mdescLeft"> </td><td class="mdescRight">Translate <em>running_time</em> to the segment position using the currently configured segment. <a href="#a9e17db45c9b31b3d87f90dc48a4641d1">More...</a><br /></td></tr> <tr class="separator:a9e17db45c9b31b3d87f90dc48a4641d1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a643547d4e4b6524028115dabe78cb198"><td class="memItemLeft" align="right" valign="top">guint64 </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a643547d4e4b6524028115dabe78cb198">position_from_stream_time</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Gst::Format</a> format, guint64 stream_time) const</td></tr> <tr class="memdesc:a643547d4e4b6524028115dabe78cb198"><td class="mdescLeft"> </td><td class="mdescRight">Convert <em>stream_time</em> into a position in the segment so that <a class="el" href="classGst_1_1Segment.html#ab6d394de5e257c183af45b8cabf37432" title="Translate position to stream time using the currently configured segment. ">to_stream_time()</a> with that position returns <em>stream_time</em>. <a href="#a643547d4e4b6524028115dabe78cb198">More...</a><br /></td></tr> <tr class="separator:a643547d4e4b6524028115dabe78cb198"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a153471e95af48d99051fd3cb2d18bd1f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a153471e95af48d99051fd3cb2d18bd1f">position_from_stream_time</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Gst::Format</a> format, guint64 stream_time, guint64& position) const</td></tr> <tr class="memdesc:a153471e95af48d99051fd3cb2d18bd1f"><td class="mdescLeft"> </td><td class="mdescRight">Translate <em>stream_time</em> to the segment position using the currently configured segment. <a href="#a153471e95af48d99051fd3cb2d18bd1f">More...</a><br /></td></tr> <tr class="separator:a153471e95af48d99051fd3cb2d18bd1f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4f4aeb7786d52be9c06720f3af3fa50a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a4f4aeb7786d52be9c06720f3af3fa50a">offset_running_time</a> (<a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Gst::Format</a> format, gint64 offset)</td></tr> <tr class="memdesc:a4f4aeb7786d52be9c06720f3af3fa50a"><td class="mdescLeft"> </td><td class="mdescRight">Adjust the values in <em>segment</em> so that <em>offset</em> is applied to all future running-time calculations. <a href="#a4f4aeb7786d52be9c06720f3af3fa50a">More...</a><br /></td></tr> <tr class="separator:a4f4aeb7786d52be9c06720f3af3fa50a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac1e673082ad11bd93395f534adc49125"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#ac1e673082ad11bd93395f534adc49125">is_equal</a> (const <a class="el" href="classGst_1_1Segment.html">Gst::Segment</a>& s2) const</td></tr> <tr class="memdesc:ac1e673082ad11bd93395f534adc49125"><td class="mdescLeft"> </td><td class="mdescRight">Checks for two segments being equal. <a href="#ac1e673082ad11bd93395f534adc49125">More...</a><br /></td></tr> <tr class="separator:ac1e673082ad11bd93395f534adc49125"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> <tr class="memitem:acacd8e38d643f0fa2985a4ed9bbb2fe0"><td class="memItemLeft" align="right" valign="top">static GType </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#acacd8e38d643f0fa2985a4ed9bbb2fe0">get_type</a> ()</td></tr> <tr class="memdesc:acacd8e38d643f0fa2985a4ed9bbb2fe0"><td class="mdescLeft"> </td><td class="mdescRight">Get the GType for this class, for use with the underlying GObject type system. <a href="#acacd8e38d643f0fa2985a4ed9bbb2fe0">More...</a><br /></td></tr> <tr class="separator:acacd8e38d643f0fa2985a4ed9bbb2fe0"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:a4c39d26385a85f298f521219250e2d4c"><td class="memItemLeft" align="right" valign="top">GstSegment* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a4c39d26385a85f298f521219250e2d4c">gobject_</a></td></tr> <tr class="separator:a4c39d26385a85f298f521219250e2d4c"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="related"></a> Related Functions</h2></td></tr> <tr><td class="ititle" colspan="2"><p>(Note that these are not member functions.) </p> </td></tr> <tr class="memitem:a39ca5c00e488027ccb59f3e9384246c9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a39ca5c00e488027ccb59f3e9384246c9">swap</a> (<a class="el" href="classGst_1_1Segment.html">Segment</a>& lhs, <a class="el" href="classGst_1_1Segment.html">Segment</a>& rhs) noexcept</td></tr> <tr class="separator:a39ca5c00e488027ccb59f3e9384246c9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5280aac4c1d3e3a26c0dcf9af1a173da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGst_1_1Segment.html">Gst::Segment</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGst_1_1Segment.html#a5280aac4c1d3e3a26c0dcf9af1a173da">wrap</a> (GstSegment* object, bool take_copy=false)</td></tr> <tr class="memdesc:a5280aac4c1d3e3a26c0dcf9af1a173da"><td class="mdescLeft"> </td><td class="mdescRight">A <a class="el" href="namespaceGlib.html#a43fcab2a44083e8b7b6a1c8193acae2b">Glib::wrap()</a> method for this object. <a href="#a5280aac4c1d3e3a26c0dcf9af1a173da">More...</a><br /></td></tr> <tr class="separator:a5280aac4c1d3e3a26c0dcf9af1a173da"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>A class that describes the configured region of interest in a media file. </p> <p>This helper structure holds the relevant values for tracking the region of interest in a media file, called a segment.</p> <p>The structure can be used for two purposes:</p> <ul> <li>performing seeks (handling seek events)</li> <li>tracking playback regions (handling newsegment events)</li> </ul> <p>The segment is usually configured by the application with a seek event which is propagated upstream and eventually handled by an element that performs the seek.</p> <p>The configured segment is then propagated back downstream with a newsegment event. This information is then used to clip media to the segment boundaries.</p> <p>A segment structure is initialized with <a class="el" href="classGst_1_1Segment.html#a07ebca2ab8b587993047db0b1850aa9f" title="The start/position fields are set to 0 and the stop/duration fields are set to -1 (unknown)...">init()</a>, which takes a Format that will be used as the format of the segment values. The segment will be configured with a start value of 0 and a stop/duration of -1, which is undefined. The default rate and applied_rate is 1.0.</p> <p>The current position in the segment should be set with the set_last_stop(). The public last_stop field contains the last set stop position in the segment.</p> <p>For elements that perform seeks, the current segment should be updated with the <a class="el" href="classGst_1_1Segment.html#a0a026748daacd1571401f9831124c540" title="Update the segment structure with the field values of a seek event (see Gst::Event::new_seek()). ">set_seek()</a> and the values from the seek event. This method will update all the segment fields. The last_stop field will contain the new playback position. If the cur_type was different from <a class="el" href="namespaceGst.html#gaa7c6407bbc8040f51718d1be753422c0a34ccaeda5d3ef34e2aff08357fb98a99" title="No change in position is required. ">Gst::SEEK_TYPE_NONE</a>, playback continues from the last_stop position, possibly with updated flags or rate.</p> <p>For elements that want to synchronize to the pipeline clock, <a class="el" href="classGst_1_1Segment.html#aa26a00316351932d25fe77758cb52fb6" title="Translate position to the total running time using the currently configured segment. ">to_running_time()</a> can be used to convert a timestamp to a value that can be used to synchronize to the clock. This function takes into account all accumulated segments as well as any rate or applied_rate conversions.</p> <p>For elements that need to perform operations on media data in stream_time, <a class="el" href="classGst_1_1Segment.html#ab6d394de5e257c183af45b8cabf37432" title="Translate position to stream time using the currently configured segment. ">to_stream_time()</a> can be used to convert a timestamp and the segment info to stream time (which is always between 0 and the duration of the stream).</p> <p>Last reviewed on 2016-07-12 (1.8.0) </p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="a93349f552c878d0cfc864ddcd5223c9f"></a> <h2 class="memtitle"><span class="permalink"><a href="#a93349f552c878d0cfc864ddcd5223c9f">◆ </a></span>Segment() <span class="overload">[1/4]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Gst::Segment::Segment </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> </div> </div> <a id="a53d348dc091f1d60b49ca4f5b3b7daa7"></a> <h2 class="memtitle"><span class="permalink"><a href="#a53d348dc091f1d60b49ca4f5b3b7daa7">◆ </a></span>Segment() <span class="overload">[2/4]</span></h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Gst::Segment::Segment </td> <td>(</td> <td class="paramtype">GstSegment * </td> <td class="paramname"><em>gobject</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>make_a_copy</em> = <code>true</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">explicit</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a id="ae2091311c2538ace8a40689a9187c93e"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae2091311c2538ace8a40689a9187c93e">◆ </a></span>Segment() <span class="overload">[3/4]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Gst::Segment::Segment </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGst_1_1Segment.html">Segment</a>& </td> <td class="paramname"><em>other</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> </div> </div> <a id="af417a62312f82257fc85866e7347c229"></a> <h2 class="memtitle"><span class="permalink"><a href="#af417a62312f82257fc85866e7347c229">◆ </a></span>Segment() <span class="overload">[4/4]</span></h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Gst::Segment::Segment </td> <td>(</td> <td class="paramtype"><a class="el" href="classGst_1_1Segment.html">Segment</a>&& </td> <td class="paramname"><em>other</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a id="abce8f45c753a75a8fb056fc75f3eb0f7"></a> <h2 class="memtitle"><span class="permalink"><a href="#abce8f45c753a75a8fb056fc75f3eb0f7">◆ </a></span>~Segment()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Gst::Segment::~Segment </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a id="a5578ab3582b55ca74a4df2c5fbd9f890"></a> <h2 class="memtitle"><span class="permalink"><a href="#a5578ab3582b55ca74a4df2c5fbd9f890">◆ </a></span>clip()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Gst::Segment::clip </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>start</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>stop</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 & </td> <td class="paramname"><em>clip_start</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 & </td> <td class="paramname"><em>clip_stop</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Clip the given <em>start</em> and <em>stop</em> values to the segment boundaries given in <em>segment</em>. </p> <p><em>start</em> and <em>stop</em> are compared and clipped to <em>segment</em> start and stop values.</p> <p>If the function returns <code>false</code>, <em>start</em> and <em>stop</em> are known to fall outside of <em>segment</em> and <em>clip_start</em> and <em>clip_stop</em> are not updated.</p> <p>When the function returns <code>true</code>, <em>clip_start</em> and <em>clip_stop</em> will be updated. If <em>clip_start</em> or <em>clip_stop</em> are different from <em>start</em> or <em>stop</em> respectively, the region fell partially in the segment.</p> <p>Note that when <em>stop</em> is -1, <em>clip_stop</em> will be set to the end of the segment. Depending on the use case, this may or may not be what you want.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">start</td><td>The start position in the segment. </td></tr> <tr><td class="paramname">stop</td><td>The stop position in the segment. </td></tr> <tr><td class="paramname">clip_start</td><td>The clipped start position in the segment. </td></tr> <tr><td class="paramname">clip_stop</td><td>The clipped stop position in the segment. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd><code>true</code> if the given <em>start</em> and <em>stop</em> times fall partially or completely in <em>segment</em>, <code>false</code> if the values are completely outside of the segment. </dd></dl> </div> </div> <a id="acacd8e38d643f0fa2985a4ed9bbb2fe0"></a> <h2 class="memtitle"><span class="permalink"><a href="#acacd8e38d643f0fa2985a4ed9bbb2fe0">◆ </a></span>get_type()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static GType Gst::Segment::get_type </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get the GType for this class, for use with the underlying GObject type system. </p> </div> </div> <a id="a27d809117a1d68a72404f6c2f3499b95"></a> <h2 class="memtitle"><span class="permalink"><a href="#a27d809117a1d68a72404f6c2f3499b95">◆ </a></span>gobj() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">GstSegment* Gst::Segment::gobj </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Provides access to the underlying C instance. </p> </div> </div> <a id="a2f06d6011c377af566adb22ac6978fdf"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2f06d6011c377af566adb22ac6978fdf">◆ </a></span>gobj() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const GstSegment* Gst::Segment::gobj </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Provides access to the underlying C instance. </p> </div> </div> <a id="a3c336663dcae8f657804ff4fc3b145ac"></a> <h2 class="memtitle"><span class="permalink"><a href="#a3c336663dcae8f657804ff4fc3b145ac">◆ </a></span>gobj_copy()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GstSegment* Gst::Segment::gobj_copy </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs. </p> </div> </div> <a id="a07ebca2ab8b587993047db0b1850aa9f"></a> <h2 class="memtitle"><span class="permalink"><a href="#a07ebca2ab8b587993047db0b1850aa9f">◆ </a></span>init()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Gst::Segment::init </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> </td> <td class="paramname"><em>format</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>The start/position fields are set to 0 and the stop/duration fields are set to -1 (unknown). </p> <p>The default rate of 1.0 and no flags are set.</p> <p>Initialize <em>segment</em> to its default values.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> </table> </dd> </dl> </div> </div> <a id="ac1e673082ad11bd93395f534adc49125"></a> <h2 class="memtitle"><span class="permalink"><a href="#ac1e673082ad11bd93395f534adc49125">◆ </a></span>is_equal()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Gst::Segment::is_equal </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGst_1_1Segment.html">Gst::Segment</a>& </td> <td class="paramname"><em>s2</em></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>Checks for two segments being equal. </p> <p>Equality here is defined as perfect equality, including floating point values.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">s2</td><td>A <a class="el" href="classGst_1_1Segment.html" title="A class that describes the configured region of interest in a media file. ">Gst::Segment</a> structure. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd><code>true</code> if the segments are equal, <code>false</code> otherwise. </dd></dl> </div> </div> <a id="a4f4aeb7786d52be9c06720f3af3fa50a"></a> <h2 class="memtitle"><span class="permalink"><a href="#a4f4aeb7786d52be9c06720f3af3fa50a">◆ </a></span>offset_running_time()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Gst::Segment::offset_running_time </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Gst::Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">gint64 </td> <td class="paramname"><em>offset</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Adjust the values in <em>segment</em> so that <em>offset</em> is applied to all future running-time calculations. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">offset</td><td>The offset to apply in the segment. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd><code>true</code> if the segment could be updated successfully. If <code>false</code> is returned, <em>offset</em> is not in <em>segment</em>. </dd></dl> </div> </div> <a id="ab136f825fb986624e7073996e9c38b6c"></a> <h2 class="memtitle"><span class="permalink"><a href="#ab136f825fb986624e7073996e9c38b6c">◆ </a></span>operator=() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGst_1_1Segment.html">Segment</a>& Gst::Segment::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGst_1_1Segment.html">Segment</a>& </td> <td class="paramname"><em>other</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> </div> </div> <a id="a2fbc8b157cef609bb8f3d9fc4de29154"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2fbc8b157cef609bb8f3d9fc4de29154">◆ </a></span>operator=() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGst_1_1Segment.html">Segment</a>& Gst::Segment::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="classGst_1_1Segment.html">Segment</a>&& </td> <td class="paramname"><em>other</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a id="a8126b6bea807f78455ba3e67e2aa75ad"></a> <h2 class="memtitle"><span class="permalink"><a href="#a8126b6bea807f78455ba3e67e2aa75ad">◆ </a></span>position_from_running_time() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">guint64 Gst::Segment::position_from_running_time </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Gst::Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>running_time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Convert <em>running_time</em> into a position in the segment so that <a class="el" href="classGst_1_1Segment.html#aa26a00316351932d25fe77758cb52fb6" title="Translate position to the total running time using the currently configured segment. ">to_running_time()</a> with that position returns <em>running_time</em>. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">running_time</td><td>The running_time in the segment. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The position in the segment for <em>running_time</em>. This function returns -1 when <em>running_time</em> is -1 or when it is not inside <em>segment</em>. </dd></dl> </div> </div> <a id="a9e17db45c9b31b3d87f90dc48a4641d1"></a> <h2 class="memtitle"><span class="permalink"><a href="#a9e17db45c9b31b3d87f90dc48a4641d1">◆ </a></span>position_from_running_time() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int Gst::Segment::position_from_running_time </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Gst::Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>running_time</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 & </td> <td class="paramname"><em>position</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Translate <em>running_time</em> to the segment position using the currently configured segment. </p> <p>Compared to <a class="el" href="classGst_1_1Segment.html#a8126b6bea807f78455ba3e67e2aa75ad" title="Convert running_time into a position in the segment so that to_running_time() with that position retu...">position_from_running_time()</a> this function can return negative segment position.</p> <p>This function is typically used by elements that need to synchronize buffers against the clock or each other.</p> <p><em>running_time</em> can be any value and the result of this function for values outside of the segment is extrapolated.</p> <p>When 1 is returned, <em>running_time</em> resulted in a positive position returned in <em>position</em>.</p> <p>When this function returns -1, the returned <em>position</em> should be negated to get the real negative segment position.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">running_time</td><td>The running-time. </td></tr> <tr><td class="paramname">position</td><td>The resulting position in the segment. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A 1 or -1 on success, 0 on failure. </dd></dl> </div> </div> <a id="a643547d4e4b6524028115dabe78cb198"></a> <h2 class="memtitle"><span class="permalink"><a href="#a643547d4e4b6524028115dabe78cb198">◆ </a></span>position_from_stream_time() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">guint64 Gst::Segment::position_from_stream_time </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Gst::Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>stream_time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Convert <em>stream_time</em> into a position in the segment so that <a class="el" href="classGst_1_1Segment.html#ab6d394de5e257c183af45b8cabf37432" title="Translate position to stream time using the currently configured segment. ">to_stream_time()</a> with that position returns <em>stream_time</em>. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">stream_time</td><td>The stream_time in the segment. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The position in the segment for <em>stream_time</em>. This function returns -1 when <em>stream_time</em> is -1 or when it is not inside <em>segment</em>. </dd></dl> </div> </div> <a id="a153471e95af48d99051fd3cb2d18bd1f"></a> <h2 class="memtitle"><span class="permalink"><a href="#a153471e95af48d99051fd3cb2d18bd1f">◆ </a></span>position_from_stream_time() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int Gst::Segment::position_from_stream_time </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Gst::Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>stream_time</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 & </td> <td class="paramname"><em>position</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Translate <em>stream_time</em> to the segment position using the currently configured segment. </p> <p>Compared to <a class="el" href="classGst_1_1Segment.html#a643547d4e4b6524028115dabe78cb198" title="Convert stream_time into a position in the segment so that to_stream_time() with that position return...">position_from_stream_time()</a> this function can return negative segment position.</p> <p>This function is typically used by elements that need to synchronize buffers against the clock or each other.</p> <p><em>stream_time</em> can be any value and the result of this function for values outside of the segment is extrapolated.</p> <p>When 1 is returned, <em>stream_time</em> resulted in a positive position returned in <em>position</em>.</p> <p>When this function returns -1, the returned <em>position</em> should be negated to get the real negative segment position.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">stream_time</td><td>The stream-time. </td></tr> <tr><td class="paramname">position</td><td>The resulting position in the segment. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A 1 or -1 on success, 0 on failure. </dd></dl> </div> </div> <a id="aacf77b95725d2508a5fe2c823b6563f7"></a> <h2 class="memtitle"><span class="permalink"><a href="#aacf77b95725d2508a5fe2c823b6563f7">◆ </a></span>set_running_time()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Gst::Segment::set_running_time </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>running_time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Adjust the start/stop and base values of <em>segment</em> such that the next valid buffer will be one with <em>running_time</em>. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">running_time</td><td>The running_time in the segment. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd><code>true</code> if the segment could be updated successfully. If <code>false</code> is returned, <em>running_time</em> is -1 or not in <em>segment</em>. </dd></dl> </div> </div> <a id="a0a026748daacd1571401f9831124c540"></a> <h2 class="memtitle"><span class="permalink"><a href="#a0a026748daacd1571401f9831124c540">◆ </a></span>set_seek()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Gst::Segment::set_seek </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>rate</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga511d96d2c1136202d0d4b90de2485cf3">SeekFlags</a> </td> <td class="paramname"><em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#gaa7c6407bbc8040f51718d1be753422c0">SeekType</a> </td> <td class="paramname"><em>start_type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">gint64 </td> <td class="paramname"><em>start</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#gaa7c6407bbc8040f51718d1be753422c0">SeekType</a> </td> <td class="paramname"><em>stop_type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">gint64 </td> <td class="paramname"><em>stop</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool & </td> <td class="paramname"><em>update</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Update the segment structure with the field values of a seek event (see Gst::Event::new_seek()). </p> <p>After calling this method, the segment field position and time will contain the requested new position in the segment. The new requested position in the segment depends on <em>rate</em> and <em>start_type</em> and <em>stop_type</em>.</p> <p>For positive <em>rate</em>, the new position in the segment is the new <em>segment</em> start field when it was updated with a <em>start_type</em> different from <a class="el" href="namespaceGst.html#gaa7c6407bbc8040f51718d1be753422c0a34ccaeda5d3ef34e2aff08357fb98a99" title="No change in position is required. ">Gst::SEEK_TYPE_NONE</a>. If no update was performed on <em>segment</em> start position (<a class="el" href="namespaceGst.html#gaa7c6407bbc8040f51718d1be753422c0a34ccaeda5d3ef34e2aff08357fb98a99" title="No change in position is required. ">Gst::SEEK_TYPE_NONE</a>), <em>start</em> is ignored and <em>segment</em> position is unmodified.</p> <p>For negative <em>rate</em>, the new position in the segment is the new <em>segment</em> stop field when it was updated with a <em>stop_type</em> different from <a class="el" href="namespaceGst.html#gaa7c6407bbc8040f51718d1be753422c0a34ccaeda5d3ef34e2aff08357fb98a99" title="No change in position is required. ">Gst::SEEK_TYPE_NONE</a>. If no stop was previously configured in the segment, the duration of the segment will be used to update the stop position. If no update was performed on <em>segment</em> stop position (<a class="el" href="namespaceGst.html#gaa7c6407bbc8040f51718d1be753422c0a34ccaeda5d3ef34e2aff08357fb98a99" title="No change in position is required. ">Gst::SEEK_TYPE_NONE</a>), <em>stop</em> is ignored and <em>segment</em> position is unmodified.</p> <p>The applied rate of the segment will be set to 1.0 by default. If the caller can apply a rate change, it should update <em>segment</em> rate and applied_rate after calling this function.</p> <p><em>update</em> will be set to <code>true</code> if a seek should be performed to the segment position field. This field can be <code>false</code> if, for example, only the <em>rate</em> has been changed but not the playback position.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">rate</td><td>The rate of the segment. </td></tr> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">flags</td><td>The segment flags for the segment. </td></tr> <tr><td class="paramname">start_type</td><td>The seek method. </td></tr> <tr><td class="paramname">start</td><td>The seek start value. </td></tr> <tr><td class="paramname">stop_type</td><td>The seek method. </td></tr> <tr><td class="paramname">stop</td><td>The seek stop value. </td></tr> <tr><td class="paramname">update</td><td>Boolean holding whether position was updated. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd><code>true</code> if the seek could be performed. </dd></dl> </div> </div> <a id="acf00ddb94538954e5b0e809960a61ab5"></a> <h2 class="memtitle"><span class="permalink"><a href="#acf00ddb94538954e5b0e809960a61ab5">◆ </a></span>swap()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void Gst::Segment::swap </td> <td>(</td> <td class="paramtype"><a class="el" href="classGst_1_1Segment.html">Segment</a>& </td> <td class="paramname"><em>other</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a id="a1d3a83004f1fd8e57229dd7f7f37fda6"></a> <h2 class="memtitle"><span class="permalink"><a href="#a1d3a83004f1fd8e57229dd7f7f37fda6">◆ </a></span>to_position()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">guint64 Gst::Segment::to_position </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>running_time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Convert <em>running_time</em> into a position in the segment so that <a class="el" href="classGst_1_1Segment.html#aa26a00316351932d25fe77758cb52fb6" title="Translate position to the total running time using the currently configured segment. ">to_running_time()</a> with that position returns <em>running_time</em>. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">running_time</td><td>The running_time in the segment. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The position in the segment for <em>running_time</em>. This function returns -1 when <em>running_time</em> is -1 or when it is not inside <em>segment</em>.</dd></dl> <p>Deprecated. Use <a class="el" href="classGst_1_1Segment.html#a8126b6bea807f78455ba3e67e2aa75ad" title="Convert running_time into a position in the segment so that to_running_time() with that position retu...">position_from_running_time()</a> instead. </p> </div> </div> <a id="aa26a00316351932d25fe77758cb52fb6"></a> <h2 class="memtitle"><span class="permalink"><a href="#aa26a00316351932d25fe77758cb52fb6">◆ </a></span>to_running_time() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">guint64 Gst::Segment::to_running_time </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>position</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Translate <em>position</em> to the total running time using the currently configured segment. </p> <p>Position is a value between <em>segment</em> start and stop time.</p> <p>This function is typically used by elements that need to synchronize to the global clock in a pipeline. The running time is a constantly increasing value starting from 0. When <a class="el" href="classGst_1_1Segment.html#a07ebca2ab8b587993047db0b1850aa9f" title="The start/position fields are set to 0 and the stop/duration fields are set to -1 (unknown)...">init()</a> is called, this value will reset to 0.</p> <p>This function returns -1 if the position is outside of <em>segment</em> start and stop.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">position</td><td>The position in the segment. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The position as the total running time or -1 when an invalid position was given. </dd></dl> </div> </div> <a id="a781ba80af647919843592bae3e5c8332"></a> <h2 class="memtitle"><span class="permalink"><a href="#a781ba80af647919843592bae3e5c8332">◆ </a></span>to_running_time() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int Gst::Segment::to_running_time </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>position</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 & </td> <td class="paramname"><em>running_time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Translate <em>position</em> to the total running time using the currently configured segment. </p> <p>Compared to <a class="el" href="classGst_1_1Segment.html#aa26a00316351932d25fe77758cb52fb6" title="Translate position to the total running time using the currently configured segment. ">to_running_time()</a> this function can return negative running-time.</p> <p>This function is typically used by elements that need to synchronize buffers against the clock or eachother.</p> <p><em>position</em> can be any value and the result of this function for values outside of the segment is extrapolated.</p> <p>When 1 is returned, <em>position</em> resulted in a positive running-time returned in <em>running_time</em>.</p> <p>When this function returns -1, the returned <em>running_time</em> should be negated to get the real negative running time.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">position</td><td>The position in the segment. </td></tr> <tr><td class="paramname">running_time</td><td>Result running-time. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A 1 or -1 on success, 0 on failure. </dd></dl> </div> </div> <a id="ab6d394de5e257c183af45b8cabf37432"></a> <h2 class="memtitle"><span class="permalink"><a href="#ab6d394de5e257c183af45b8cabf37432">◆ </a></span>to_stream_time() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">guint64 Gst::Segment::to_stream_time </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>position</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Translate <em>position</em> to stream time using the currently configured segment. </p> <p>The <em>position</em> value must be between <em>segment</em> start and stop value.</p> <p>This function is typically used by elements that need to operate on the stream time of the buffers it receives, such as effect plugins. In those use cases, <em>position</em> is typically the buffer timestamp or clock time that one wants to convert to the stream time. The stream time is always between 0 and the total duration of the media stream.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">position</td><td>The position in the segment. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The position in stream_time or -1 when an invalid position was given. </dd></dl> </div> </div> <a id="a2d8a25bfa176cddcd460196eb614ab5b"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2d8a25bfa176cddcd460196eb614ab5b">◆ </a></span>to_stream_time() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int Gst::Segment::to_stream_time </td> <td>(</td> <td class="paramtype"><a class="el" href="group__gstreamermmEnums.html#ga9aeb4c7c49680888ff819ac95fb13cff">Format</a> </td> <td class="paramname"><em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 </td> <td class="paramname"><em>position</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">guint64 & </td> <td class="paramname"><em>stream_time</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Translate <em>position</em> to the total stream time using the currently configured segment. </p> <p>Compared to <a class="el" href="classGst_1_1Segment.html#ab6d394de5e257c183af45b8cabf37432" title="Translate position to stream time using the currently configured segment. ">to_stream_time()</a> this function can return negative stream-time.</p> <p>This function is typically used by elements that need to synchronize buffers against the clock or eachother.</p> <p><em>position</em> can be any value and the result of this function for values outside of the segment is extrapolated.</p> <p>When 1 is returned, <em>position</em> resulted in a positive stream-time returned in <em>stream_time</em>.</p> <p>When this function returns -1, the returned <em>stream_time</em> should be negated to get the real negative stream time.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">format</td><td>The format of the segment. </td></tr> <tr><td class="paramname">position</td><td>The position in the segment. </td></tr> <tr><td class="paramname">stream_time</td><td>Result stream-time. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A 1 or -1 on success, 0 on failure. </dd></dl> </div> </div> <h2 class="groupheader">Friends And Related Function Documentation</h2> <a id="a39ca5c00e488027ccb59f3e9384246c9"></a> <h2 class="memtitle"><span class="permalink"><a href="#a39ca5c00e488027ccb59f3e9384246c9">◆ </a></span>swap()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void swap </td> <td>(</td> <td class="paramtype"><a class="el" href="classGst_1_1Segment.html">Segment</a>& </td> <td class="paramname"><em>lhs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classGst_1_1Segment.html">Segment</a>& </td> <td class="paramname"><em>rhs</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">related</span></span> </td> </tr> </table> </div><div class="memdoc"> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">lhs</td><td>The left-hand side </td></tr> <tr><td class="paramname">rhs</td><td>The right-hand side </td></tr> </table> </dd> </dl> </div> </div> <a id="a5280aac4c1d3e3a26c0dcf9af1a173da"></a> <h2 class="memtitle"><span class="permalink"><a href="#a5280aac4c1d3e3a26c0dcf9af1a173da">◆ </a></span>wrap()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGst_1_1Segment.html">Gst::Segment</a> wrap </td> <td>(</td> <td class="paramtype">GstSegment * </td> <td class="paramname"><em>object</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>take_copy</em> = <code>false</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">related</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>A <a class="el" href="namespaceGlib.html#a43fcab2a44083e8b7b6a1c8193acae2b">Glib::wrap()</a> method for this object. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">object</td><td>The C instance. </td></tr> <tr><td class="paramname">take_copy</td><td>False if the result should take ownership of the C instance. True if it should take a new copy or ref. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A C++ instance that wraps this C instance. </dd></dl> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a id="a4c39d26385a85f298f521219250e2d4c"></a> <h2 class="memtitle"><span class="permalink"><a href="#a4c39d26385a85f298f521219250e2d4c">◆ </a></span>gobject_</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">GstSegment* Gst::Segment::gobject_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Sat Oct 21 2017 12:59:01 for gstreamermm by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.13 </small></address> </body> </html>