<!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: basics/init_gstreamermm.cc</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><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">basics/init_gstreamermm.cc</div> </div> </div><!--header--> <div class="contents"> <p>A gstreamermm init example.</p> <div class="fragment"><div class="line"><span class="comment">/*</span></div><div class="line"><span class="comment"> * The example presents how to initialize gstreamermm, read</span></div><div class="line"><span class="comment"> * version of GStreamer, and use GStreamer option group together</span></div><div class="line"><span class="comment"> * with your application's option group.</span></div><div class="line"><span class="comment"> */</span></div><div class="line"><span class="preprocessor">#include <gstreamermm.h></span></div><div class="line"><span class="preprocessor">#include <glibmm/optioncontext.h></span></div><div class="line"></div><div class="line"><span class="preprocessor">#include <<a class="codeRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01265.html">iostream</a>></span></div><div class="line"></div><div class="line"><span class="keyword">class </span>MainOptionGroup : <span class="keyword">public</span> Glib::OptionGroup</div><div class="line">{</div><div class="line"><span class="keyword">public</span>:</div><div class="line"> MainOptionGroup();</div><div class="line"></div><div class="line"> <span class="keywordtype">bool</span> <a class="code" href="namespaceGst.html#a1e757d30f1384d26ebeaee382adaf029">version</a>;</div><div class="line">};</div><div class="line"></div><div class="line">MainOptionGroup::MainOptionGroup()</div><div class="line">: Glib::OptionGroup(<span class="stringliteral">"main_group"</span>, <span class="stringliteral">"main group"</span>),</div><div class="line"> <a class="code" href="namespaceGst.html#a1e757d30f1384d26ebeaee382adaf029">version</a>(<span class="keyword">false</span>)</div><div class="line">{</div><div class="line"> Glib::OptionEntry entry1;</div><div class="line"> entry1.set_long_name(<span class="stringliteral">"version"</span>);</div><div class="line"> entry1.set_short_name(<span class="charliteral">'v'</span>);</div><div class="line"> entry1.set_description(<span class="stringliteral">"Show gstreamer version"</span>);</div><div class="line"> add_entry(entry1, <a class="code" href="namespaceGst.html#a1e757d30f1384d26ebeaee382adaf029">version</a>);</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> print_gstreamer_version()</div><div class="line">{</div><div class="line"> guint major, minor, micro, nano;</div><div class="line"></div><div class="line"> <span class="comment">// Read GStreamer version</span></div><div class="line"> <a name="a0"></a><a class="code" href="namespaceGst.html#a1e757d30f1384d26ebeaee382adaf029">Gst::version</a>(major, minor, micro, nano);</div><div class="line"></div><div class="line"> <a name="_a1"></a><a class="codeRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00454.html">std::string</a> nano_str;</div><div class="line"></div><div class="line"> <span class="keywordflow">switch</span> (nano) {</div><div class="line"> <span class="keywordflow">case</span> 1: nano_str = <span class="stringliteral">"(CSV)"</span>; <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> 2: nano_str = <span class="stringliteral">"(Prerelease)"</span>; <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"></div><div class="line"> <a name="a2"></a>std::cout << <span class="stringliteral">"This program is linked against GStreamer "</span></div><div class="line"> << major << <span class="stringliteral">"."</span> << minor << <span class="stringliteral">"."</span> << micro << <span class="stringliteral">"."</span></div><div class="line"> << nano << <span class="stringliteral">" "</span> << nano_str << <a name="a3"></a><a class="codeRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01616.html#a8b3758bb8f17c440c7963363f42f69f3">std::endl</a>;</div><div class="line">}</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[])</div><div class="line">{</div><div class="line"> <span class="comment">// Initialize gstreamermm</span></div><div class="line"> <a name="a4"></a><a class="code" href="namespaceGst.html#a4368f0336db20f7dae336c97ebce0ef1">Gst::init</a>(argc, argv);</div><div class="line"></div><div class="line"> Glib::OptionContext context(<span class="stringliteral">"- gstreamermm init example"</span>);</div><div class="line"></div><div class="line"> MainOptionGroup main_group;</div><div class="line"> context.set_main_group(main_group);</div><div class="line"></div><div class="line"> <span class="comment">// Get GStreamer option group and add it to the context</span></div><div class="line"> Glib::OptionGroup gst_group = <a name="a5"></a><a class="code" href="namespaceGst.html#aff7db258517df2bcca32e41893607435">Gst::get_option_group</a>();</div><div class="line"> context.add_group(gst_group);</div><div class="line"></div><div class="line"> <span class="keywordflow">try</span></div><div class="line"> {</div><div class="line"> context.parse(argc, argv);</div><div class="line"> }</div><div class="line"> <span class="keywordflow">catch</span> (<span class="keyword">const</span> Glib::Error& ex)</div><div class="line"> {</div><div class="line"> <a name="a6"></a>std::cerr << <span class="stringliteral">"Failed to initialize: "</span> << ex.what() << <a class="codeRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01616.html#a8b3758bb8f17c440c7963363f42f69f3">std::endl</a>;</div><div class="line"> <span class="keywordflow">return</span> 1;</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (main_group.version)</div><div class="line"> {</div><div class="line"> print_gstreamer_version();</div><div class="line"> }</div><div class="line"></div><div class="line"> std::cout << <span class="stringliteral">"Run me with --help to see the Application options appended."</span> << <a class="codeRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01616.html#a8b3758bb8f17c440c7963363f42f69f3">std::endl</a>;</div><div class="line"></div><div class="line"> <span class="keywordflow">return</span> 0;</div><div class="line">}</div></div><!-- fragment --> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Sat Oct 21 2017 12:59:00 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>