Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 874255f3b26b44feb57fbe38a7384518 > files > 266

gmerlin-0.4.1-2mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>gmerlin: bg_ov_plugin_s Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>bg_ov_plugin_s Struct Reference<br>
<small>
[<a class="el" href="group__plugin__ov.html">Video output</a>]</small>
</h1><!-- doxytag: class="bg_ov_plugin_s" -->Video output plugin.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="plugin_8h_source.html">plugin.h</a>&gt;</code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structbg__plugin__common__s.html">bg_plugin_common_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#7bc5ca47641c32534e8ddd53fb8f4d33">common</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Infos and functions common to all plugin types.  <a href="#7bc5ca47641c32534e8ddd53fb8f4d33"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#ce66eb4abc7103cdf21a9bdb8d9e9681">set_window</a> )(void *priv, const char *window_id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set window.  <a href="#ce66eb4abc7103cdf21a9bdb8d9e9681"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#6c28a900ba5b2b6a30e1e870939c91af">get_window</a> )(void *priv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get window.  <a href="#6c28a900ba5b2b6a30e1e870939c91af"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#fb6380642791a80d322f8918d19c53fa">set_window_title</a> )(void *priv, const char *title)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set window title.  <a href="#fb6380642791a80d322f8918d19c53fa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#545228390cff0ea25308dcd06d12a088">set_callbacks</a> )(void *priv, <a class="el" href="structbg__ov__callbacks__s.html">bg_ov_callbacks_t</a> *callbacks)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set callbacks.  <a href="#545228390cff0ea25308dcd06d12a088"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#c2a6e79c88c44a1a824aca3e2b78b097">open</a> )(void *priv, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__format__s.html">gavl_video_format_t</a> *format, int keep_aspect)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open plugin.  <a href="#c2a6e79c88c44a1a824aca3e2b78b097"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__frame__s.html">gavl_video_frame_t</a> *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#edce89a3a7865fa2df83d15f885097a2">create_frame</a> )(void *priv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate a video frame.  <a href="#edce89a3a7865fa2df83d15f885097a2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#e93ec0989ad84a0cfef848c295982c9e">add_overlay_stream</a> )(void *priv, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__format__s.html">gavl_video_format_t</a> *format)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a stream for transparent overlays.  <a href="#e93ec0989ad84a0cfef848c295982c9e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__overlay__t.html">gavl_overlay_t</a> *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#b13f2229391164c2c320df9b71865269">create_overlay</a> )(void *priv, int id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate an overlay.  <a href="#b13f2229391164c2c320df9b71865269"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#b1e34d6949656000116cb68851c37f96">set_overlay</a> )(void *priv, int stream, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__overlay__t.html">gavl_overlay_t</a> *ovl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set an overlay for a specific stream.  <a href="#b1e34d6949656000116cb68851c37f96"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#f4ced3cae7e24046d5346ee4d38b9740">put_video</a> )(void *priv, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__frame__s.html">gavl_video_frame_t</a> *frame)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display a frame of a video stream.  <a href="#f4ced3cae7e24046d5346ee4d38b9740"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#2ad862d214e2079de9ed32c1960a14b9">put_still</a> )(void *priv, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__frame__s.html">gavl_video_frame_t</a> *frame)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Display a still image.  <a href="#2ad862d214e2079de9ed32c1960a14b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#03e2dbec9a8175464f4de24fc18e06ac">handle_events</a> )(void *priv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get all events from the queue and handle them.  <a href="#03e2dbec9a8175464f4de24fc18e06ac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#8d51c7bb5990134ff2293bdd3ccd6669">update_aspect</a> )(void *priv, int pixel_width, int pixel_height)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Update aspect ratio.  <a href="#8d51c7bb5990134ff2293bdd3ccd6669"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#a35847dd75e9815e48b668601aa1579a">destroy_frame</a> )(void *priv, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__frame__s.html">gavl_video_frame_t</a> *frame)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free a frame created with the <a class="el" href="structbg__ov__plugin__s.html#edce89a3a7865fa2df83d15f885097a2" title="Allocate a video frame.">create_frame()</a> method.  <a href="#a35847dd75e9815e48b668601aa1579a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#9ed87cdc0c64610c92755b3bd4954166">destroy_overlay</a> )(void *priv, int id, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__overlay__t.html">gavl_overlay_t</a> *ovl)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free an overlay created with the <a class="el" href="structbg__ov__plugin__s.html#b13f2229391164c2c320df9b71865269" title="Allocate an overlay.">create_overlay()</a> method.  <a href="#9ed87cdc0c64610c92755b3bd4954166"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#2efa8197c2918b3937c889128cfc87b1">close</a> )(void *priv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the plugin.  <a href="#2efa8197c2918b3937c889128cfc87b1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structbg__ov__plugin__s.html#539eb21872bc222f995269ec51489b3e">show_window</a> )(void *priv, int show)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Show or hide the window.  <a href="#539eb21872bc222f995269ec51489b3e"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Video output plugin. 
<p>
This handles video output and still-image display. In a window based system, it will typically open a new window, which is owned by the plugin. <hr><h2>Field Documentation</h2>
<a class="anchor" name="7bc5ca47641c32534e8ddd53fb8f4d33"></a><!-- doxytag: member="bg_ov_plugin_s::common" ref="7bc5ca47641c32534e8ddd53fb8f4d33" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structbg__plugin__common__s.html">bg_plugin_common_t</a> <a class="el" href="structbg__ov__plugin__s.html#7bc5ca47641c32534e8ddd53fb8f4d33">bg_ov_plugin_s::common</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Infos and functions common to all plugin types. 
<p>

</div>
</div><p>
<a class="anchor" name="ce66eb4abc7103cdf21a9bdb8d9e9681"></a><!-- doxytag: member="bg_ov_plugin_s::set_window" ref="ce66eb4abc7103cdf21a9bdb8d9e9681" args=")(void *priv, const char *window_id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#ce66eb4abc7103cdf21a9bdb8d9e9681">bg_ov_plugin_s::set_window</a>)(void *priv, const char *window_id)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set window. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>window</em>&nbsp;</td><td>Window identifier</td></tr>
  </table>
</dl>
Call this immediately after creation of the plugin to embed video output into a foreign application. For X11, the window identifier has the form &lt;display_name&gt;:&lt;normal_id&gt;:&lt;fullscreen_id&gt;. 
</div>
</div><p>
<a class="anchor" name="6c28a900ba5b2b6a30e1e870939c91af"></a><!-- doxytag: member="bg_ov_plugin_s::get_window" ref="6c28a900ba5b2b6a30e1e870939c91af" args=")(void *priv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char*(* <a class="el" href="structbg__ov__plugin__s.html#6c28a900ba5b2b6a30e1e870939c91af">bg_ov_plugin_s::get_window</a>)(void *priv)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get window. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Window identifier </dd></dl>

</div>
</div><p>
<a class="anchor" name="fb6380642791a80d322f8918d19c53fa"></a><!-- doxytag: member="bg_ov_plugin_s::set_window_title" ref="fb6380642791a80d322f8918d19c53fa" args=")(void *priv, const char *title)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#fb6380642791a80d322f8918d19c53fa">bg_ov_plugin_s::set_window_title</a>)(void *priv, const char *title)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set window title. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>title</em>&nbsp;</td><td>The title for the window </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="545228390cff0ea25308dcd06d12a088"></a><!-- doxytag: member="bg_ov_plugin_s::set_callbacks" ref="545228390cff0ea25308dcd06d12a088" args=")(void *priv, bg_ov_callbacks_t *callbacks)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#545228390cff0ea25308dcd06d12a088">bg_ov_plugin_s::set_callbacks</a>)(void *priv, <a class="el" href="structbg__ov__callbacks__s.html">bg_ov_callbacks_t</a> *callbacks)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set callbacks. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>callbacks</em>&nbsp;</td><td>Callback structure initialized by the caller before </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="c2a6e79c88c44a1a824aca3e2b78b097"></a><!-- doxytag: member="bg_ov_plugin_s::open" ref="c2a6e79c88c44a1a824aca3e2b78b097" args=")(void *priv, gavl_video_format_t *format, int keep_aspect)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="structbg__ov__plugin__s.html#c2a6e79c88c44a1a824aca3e2b78b097">bg_ov_plugin_s::open</a>)(void *priv, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__format__s.html">gavl_video_format_t</a> *format, int keep_aspect)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Open plugin. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>Video format </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>window_title</em>&nbsp;</td><td>Window title</td></tr>
  </table>
</dl>
The format will be changed to the nearest format, which is supported by the plugin. To convert the source format to the output format, use a <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//group__video__converter.html#ga0">gavl_video_converter_t</a> 
</div>
</div><p>
<a class="anchor" name="edce89a3a7865fa2df83d15f885097a2"></a><!-- doxytag: member="bg_ov_plugin_s::create_frame" ref="edce89a3a7865fa2df83d15f885097a2" args=")(void *priv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__frame__s.html">gavl_video_frame_t</a>*(* <a class="el" href="structbg__ov__plugin__s.html#edce89a3a7865fa2df83d15f885097a2">bg_ov_plugin_s::create_frame</a>)(void *priv)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate a video frame. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a newly allocated video frame</dd></dl>
This optional method allocates a video frame in a plugin specific manner (e.g. in a shared memory segment). If this funtion is defined, all frames which are passed to the plugin, must be allocated by this function. Before the plugin is closed, all created frames must be freed with the <a class="el" href="structbg__ov__plugin__s.html#a35847dd75e9815e48b668601aa1579a" title="Free a frame created with the create_frame() method.">destroy_frame()</a> method. 
</div>
</div><p>
<a class="anchor" name="e93ec0989ad84a0cfef848c295982c9e"></a><!-- doxytag: member="bg_ov_plugin_s::add_overlay_stream" ref="e93ec0989ad84a0cfef848c295982c9e" args=")(void *priv, gavl_video_format_t *format)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* <a class="el" href="structbg__ov__plugin__s.html#e93ec0989ad84a0cfef848c295982c9e">bg_ov_plugin_s::add_overlay_stream</a>)(void *priv, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__format__s.html">gavl_video_format_t</a> *format)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a stream for transparent overlays. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>Format of the overlays </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The index of the overlay stream</dd></dl>
It's up to the plugin, if they are realized in hardware or with a gavl_overlay_blend_context_t, but they must be there. <a class="el" href="structbg__ov__plugin__s.html#e93ec0989ad84a0cfef848c295982c9e" title="Add a stream for transparent overlays.">add_overlay_stream()</a> must be called after <a class="el" href="structbg__ov__plugin__s.html#c2a6e79c88c44a1a824aca3e2b78b097" title="Open plugin.">open()</a><p>
An application can have more than one overlay stream. Typical is one for subtitles and one for OSD. 
</div>
</div><p>
<a class="anchor" name="b13f2229391164c2c320df9b71865269"></a><!-- doxytag: member="bg_ov_plugin_s::create_overlay" ref="b13f2229391164c2c320df9b71865269" args=")(void *priv, int id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__overlay__t.html">gavl_overlay_t</a>*(* <a class="el" href="structbg__ov__plugin__s.html#b13f2229391164c2c320df9b71865269">bg_ov_plugin_s::create_overlay</a>)(void *priv, int id)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate an overlay. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The id returned by the <a class="el" href="structbg__ov__plugin__s.html#e93ec0989ad84a0cfef848c295982c9e" title="Add a stream for transparent overlays.">add_overlay_stream()</a> method </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a newly allocated overlay</dd></dl>
This optional method allocates an overlay in a plugin specific manner (e.g. in a shared memory segment). If this funtion is defined, all overlays which are passed to the plugin, must be allocated by this function. Before the plugin is closed, all created overlays must be freed with the <a class="el" href="structbg__ov__plugin__s.html#9ed87cdc0c64610c92755b3bd4954166" title="Free an overlay created with the create_overlay() method.">destroy_overlay()</a> method. 
</div>
</div><p>
<a class="anchor" name="b1e34d6949656000116cb68851c37f96"></a><!-- doxytag: member="bg_ov_plugin_s::set_overlay" ref="b1e34d6949656000116cb68851c37f96" args=")(void *priv, int stream, gavl_overlay_t *ovl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#b1e34d6949656000116cb68851c37f96">bg_ov_plugin_s::set_overlay</a>)(void *priv, int stream, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__overlay__t.html">gavl_overlay_t</a> *ovl)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set an overlay for a specific stream. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>stream</em>&nbsp;</td><td>Stream index returned by <a class="el" href="structbg__ov__plugin__s.html#e93ec0989ad84a0cfef848c295982c9e" title="Add a stream for transparent overlays.">add_overlay_stream()</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ovl</em>&nbsp;</td><td>New overlay or NULL </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="f4ced3cae7e24046d5346ee4d38b9740"></a><!-- doxytag: member="bg_ov_plugin_s::put_video" ref="f4ced3cae7e24046d5346ee4d38b9740" args=")(void *priv, gavl_video_frame_t *frame)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#f4ced3cae7e24046d5346ee4d38b9740">bg_ov_plugin_s::put_video</a>)(void *priv, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__frame__s.html">gavl_video_frame_t</a> *frame)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Display a frame of a video stream. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>frame</em>&nbsp;</td><td>Frame to display</td></tr>
  </table>
</dl>
This is for video playback 
</div>
</div><p>
<a class="anchor" name="2ad862d214e2079de9ed32c1960a14b9"></a><!-- doxytag: member="bg_ov_plugin_s::put_still" ref="2ad862d214e2079de9ed32c1960a14b9" args=")(void *priv, gavl_video_frame_t *frame)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#2ad862d214e2079de9ed32c1960a14b9">bg_ov_plugin_s::put_still</a>)(void *priv, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__frame__s.html">gavl_video_frame_t</a> *frame)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Display a still image. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>frame</em>&nbsp;</td><td>Frame to display</td></tr>
  </table>
</dl>
This function is like <a class="el" href="structbg__ov__plugin__s.html#f4ced3cae7e24046d5346ee4d38b9740" title="Display a frame of a video stream.">put_video()</a> with the diffderence, that the frame will be remembered and redisplayed, when an expose event is received. 
</div>
</div><p>
<a class="anchor" name="03e2dbec9a8175464f4de24fc18e06ac"></a><!-- doxytag: member="bg_ov_plugin_s::handle_events" ref="03e2dbec9a8175464f4de24fc18e06ac" args=")(void *priv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#03e2dbec9a8175464f4de24fc18e06ac">bg_ov_plugin_s::handle_events</a>)(void *priv)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get all events from the queue and handle them. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method</td></tr>
  </table>
</dl>
This function processes and handles all events, which were received from the windowing system. It calls mouse and key-callbacks, and redisplays the image when in still mode. 
</div>
</div><p>
<a class="anchor" name="8d51c7bb5990134ff2293bdd3ccd6669"></a><!-- doxytag: member="bg_ov_plugin_s::update_aspect" ref="8d51c7bb5990134ff2293bdd3ccd6669" args=")(void *priv, int pixel_width, int pixel_height)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#8d51c7bb5990134ff2293bdd3ccd6669">bg_ov_plugin_s::update_aspect</a>)(void *priv, int pixel_width, int pixel_height)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Update aspect ratio. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pixel_width</em>&nbsp;</td><td>New pixel width </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pixel_height</em>&nbsp;</td><td>New pixel height </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="a35847dd75e9815e48b668601aa1579a"></a><!-- doxytag: member="bg_ov_plugin_s::destroy_frame" ref="a35847dd75e9815e48b668601aa1579a" args=")(void *priv, gavl_video_frame_t *frame)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#a35847dd75e9815e48b668601aa1579a">bg_ov_plugin_s::destroy_frame</a>)(void *priv, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__video__frame__s.html">gavl_video_frame_t</a> *frame)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free a frame created with the <a class="el" href="structbg__ov__plugin__s.html#edce89a3a7865fa2df83d15f885097a2" title="Allocate a video frame.">create_frame()</a> method. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>frame</em>&nbsp;</td><td>The frame to be freed </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="9ed87cdc0c64610c92755b3bd4954166"></a><!-- doxytag: member="bg_ov_plugin_s::destroy_overlay" ref="9ed87cdc0c64610c92755b3bd4954166" args=")(void *priv, int id, gavl_overlay_t *ovl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#9ed87cdc0c64610c92755b3bd4954166">bg_ov_plugin_s::destroy_overlay</a>)(void *priv, int id, <a class="elRef" doxygen="gavl.tags:http://gmerlin.sourceforge.net/doc/gavl//" href="http://gmerlin.sourceforge.net/doc/gavl//structgavl__overlay__t.html">gavl_overlay_t</a> *ovl)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free an overlay created with the <a class="el" href="structbg__ov__plugin__s.html#b13f2229391164c2c320df9b71865269" title="Allocate an overlay.">create_overlay()</a> method. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The id returned by the <a class="el" href="structbg__ov__plugin__s.html#e93ec0989ad84a0cfef848c295982c9e" title="Add a stream for transparent overlays.">add_overlay_stream()</a> method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ovl</em>&nbsp;</td><td>The overlay to be freed </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="2efa8197c2918b3937c889128cfc87b1"></a><!-- doxytag: member="bg_ov_plugin_s::close" ref="2efa8197c2918b3937c889128cfc87b1" args=")(void *priv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#2efa8197c2918b3937c889128cfc87b1">bg_ov_plugin_s::close</a>)(void *priv)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Close the plugin. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method</td></tr>
  </table>
</dl>
Close everything so the plugin can be opened with a differtent format after. 
</div>
</div><p>
<a class="anchor" name="539eb21872bc222f995269ec51489b3e"></a><!-- doxytag: member="bg_ov_plugin_s::show_window" ref="539eb21872bc222f995269ec51489b3e" args=")(void *priv, int show)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* <a class="el" href="structbg__ov__plugin__s.html#539eb21872bc222f995269ec51489b3e">bg_ov_plugin_s::show_window</a>)(void *priv, int show)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Show or hide the window. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>priv</em>&nbsp;</td><td>The handle returned by the create() method </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>show</em>&nbsp;</td><td>1 for showing, 0 for hiding </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>/home/mandrake/rpm/BUILD/gmerlin-0.4.1/include/gmerlin/<a class="el" href="plugin_8h_source.html">plugin.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sat Aug 22 01:28:05 2009 for gmerlin by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>