Sophie

Sophie

distrib > Mageia > 6 > armv7hl > by-pkgid > b4d0ffc838646a67b3dd59a6006ff212 > files > 62

libgavl-devel-1.4.0-7.mga6.armv7hl.rpm

<!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.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>gavl: Overlay blending</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" />
</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">gavl
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<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="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Overlay blending<div class="ingroups"><a class="el" href="group__video.html">Video</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__overlay__t.html">gavl_overlay_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overlay structure.  <a href="structgavl__overlay__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gab03135cd919dbd7cfce24574ed5ff2c7"><td class="memItemLeft" align="right" valign="top">typedef struct gavl_overlay_blend_context_s&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a></td></tr>
<tr class="memdesc:gab03135cd919dbd7cfce24574ed5ff2c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque blend context.  <a href="#gab03135cd919dbd7cfce24574ed5ff2c7">More...</a><br /></td></tr>
<tr class="separator:gab03135cd919dbd7cfce24574ed5ff2c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga711ff6748a0d6916d876acdb01647c31"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__blend.html#ga711ff6748a0d6916d876acdb01647c31">gavl_overlay_blend_context_create</a> ()</td></tr>
<tr class="memdesc:ga711ff6748a0d6916d876acdb01647c31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a blend context.  <a href="#ga711ff6748a0d6916d876acdb01647c31">More...</a><br /></td></tr>
<tr class="separator:ga711ff6748a0d6916d876acdb01647c31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadadf950d6e1279c3555d4249550d85a3"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__blend.html#gadadf950d6e1279c3555d4249550d85a3">gavl_overlay_blend_context_destroy</a> (<a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *ctx)</td></tr>
<tr class="memdesc:gadadf950d6e1279c3555d4249550d85a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a blend context and free all associated memory.  <a href="#gadadf950d6e1279c3555d4249550d85a3">More...</a><br /></td></tr>
<tr class="separator:gadadf950d6e1279c3555d4249550d85a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee93db1b692d9caba37cec3153e9c1ce"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="group__video__options.html#ga661526ac8e31c3a162f8607c2bcda6ee">gavl_video_options_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__blend.html#gaee93db1b692d9caba37cec3153e9c1ce">gavl_overlay_blend_context_get_options</a> (<a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *ctx)</td></tr>
<tr class="memdesc:gaee93db1b692d9caba37cec3153e9c1ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get options from a blend context.  <a href="#gaee93db1b692d9caba37cec3153e9c1ce">More...</a><br /></td></tr>
<tr class="separator:gaee93db1b692d9caba37cec3153e9c1ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f94b2f7f888fc8066b2e4e2e2f73f5a"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__blend.html#ga9f94b2f7f888fc8066b2e4e2e2f73f5a">gavl_overlay_blend_context_init</a> (<a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *ctx, const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *frame_format, <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *overlay_format)</td></tr>
<tr class="memdesc:ga9f94b2f7f888fc8066b2e4e2e2f73f5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the blend context.  <a href="#ga9f94b2f7f888fc8066b2e4e2e2f73f5a">More...</a><br /></td></tr>
<tr class="separator:ga9f94b2f7f888fc8066b2e4e2e2f73f5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b9d4d35aa14e2312ab54c24bf43a607"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__blend.html#ga6b9d4d35aa14e2312ab54c24bf43a607">gavl_overlay_blend_context_set_overlay</a> (<a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *ctx, <a class="el" href="structgavl__overlay__t.html">gavl_overlay_t</a> *ovl)</td></tr>
<tr class="memdesc:ga6b9d4d35aa14e2312ab54c24bf43a607"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a new overlay.  <a href="#ga6b9d4d35aa14e2312ab54c24bf43a607">More...</a><br /></td></tr>
<tr class="separator:ga6b9d4d35aa14e2312ab54c24bf43a607"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00746f11bc191a0e8f0ed080fcecd3c1"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__blend.html#ga00746f11bc191a0e8f0ed080fcecd3c1">gavl_overlay_blend</a> (<a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *ctx, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst_frame)</td></tr>
<tr class="memdesc:ga00746f11bc191a0e8f0ed080fcecd3c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blend overlay onto video frame.  <a href="#ga00746f11bc191a0e8f0ed080fcecd3c1">More...</a><br /></td></tr>
<tr class="separator:ga00746f11bc191a0e8f0ed080fcecd3c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Overlay blending does one elemental operation: Take a partly transparent overlay (in an alpha capable pixelformat) and blend it onto a video frame. Blending can be used for subtitles or OSD in playback applications, and also for lots of weird effects. In the current implementation, there is only one overlay pixelformat, which can be blended onto a cetrtain destination format. Therefore, the incoming overlay will be converted to the pixelformat necessary for the conversion. For OSD and Subtitle applications, this happens only once for each overlay, since the converted overlay is remembered by the blend context.</p>
<p>Note that gavl doesn't (and never will) support text subtitles. To blend text strings onto a video frame, you must render it into a <a class="el" href="structgavl__overlay__t.html" title="Overlay structure. ">gavl_overlay_t</a> with some typesetting library (e.g. freetype) first. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gab03135cd919dbd7cfce24574ed5ff2c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab03135cd919dbd7cfce24574ed5ff2c7">&sect;&nbsp;</a></span>gavl_overlay_blend_context_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct gavl_overlay_blend_context_s <a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Opaque blend context. </p>
<p>You don't want to know what's inside. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga711ff6748a0d6916d876acdb01647c31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga711ff6748a0d6916d876acdb01647c31">&sect;&nbsp;</a></span>gavl_overlay_blend_context_create()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a>* gavl_overlay_blend_context_create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a blend context. </p>
<dl class="section return"><dt>Returns</dt><dd>A newly allocated blend context. </dd></dl>

</div>
</div>
<a id="gadadf950d6e1279c3555d4249550d85a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadadf950d6e1279c3555d4249550d85a3">&sect;&nbsp;</a></span>gavl_overlay_blend_context_destroy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_overlay_blend_context_destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destroy a blend context and free all associated memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>A blend context </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaee93db1b692d9caba37cec3153e9c1ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaee93db1b692d9caba37cec3153e9c1ce">&sect;&nbsp;</a></span>gavl_overlay_blend_context_get_options()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="group__video__options.html#ga661526ac8e31c3a162f8607c2bcda6ee">gavl_video_options_t</a>* gavl_overlay_blend_context_get_options </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get options from a blend context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>A blend context </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Options (See <a class="el" href="group__video__options.html">Video conversion options</a>) </dd></dl>

</div>
</div>
<a id="ga9f94b2f7f888fc8066b2e4e2e2f73f5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9f94b2f7f888fc8066b2e4e2e2f73f5a">&sect;&nbsp;</a></span>gavl_overlay_blend_context_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int gavl_overlay_blend_context_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>frame_format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>overlay_format</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize the blend context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>A blend context </td></tr>
    <tr><td class="paramname">frame_format</td><td>The format of the destination frames </td></tr>
    <tr><td class="paramname">overlay_format</td><td>The format of the overlays</td></tr>
  </table>
  </dd>
</dl>
<p>Initialize a blend context for a given frame- and overlayformat. The image_width and image_height members for the overlay format represent the maximum overlay size. The actual displayed size will be determined by the ovl_rect of the overlay. The overlay_format might be changed to something, which can directly be blended. Make sure you have a <a class="el" href="group__video__converter.html#ga8608b4a917f962a192fbb4e7d1a180f5">gavl_video_converter_t</a> nearby. </p>

</div>
</div>
<a id="ga6b9d4d35aa14e2312ab54c24bf43a607"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6b9d4d35aa14e2312ab54c24bf43a607">&sect;&nbsp;</a></span>gavl_overlay_blend_context_set_overlay()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_overlay_blend_context_set_overlay </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__overlay__t.html">gavl_overlay_t</a> *&#160;</td>
          <td class="paramname"><em>ovl</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a new overlay. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>A blend context </td></tr>
    <tr><td class="paramname">ovl</td><td>An overlay</td></tr>
  </table>
  </dd>
</dl>
<p>This function sets a new overlay, regardless of whether the last one has expired or not. </p>

</div>
</div>
<a id="ga00746f11bc191a0e8f0ed080fcecd3c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga00746f11bc191a0e8f0ed080fcecd3c1">&sect;&nbsp;</a></span>gavl_overlay_blend()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_overlay_blend </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video__blend.html#gab03135cd919dbd7cfce24574ed5ff2c7">gavl_overlay_blend_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst_frame</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Blend overlay onto video frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>A blend context </td></tr>
    <tr><td class="paramname">dst_frame</td><td>Destination frame </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.12
</small></address>
</body>
</html>