Sophie

Sophie

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

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: Multithreading</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="#typedef-members">Typedefs</a>  </div>
  <div class="headertitle">
<div class="title">Multithreading</div>  </div>
</div><!--header-->
<div class="contents">

<p>Multithreading.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gad369e2391d20b32a563b220e7948d135"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mt.html#gad369e2391d20b32a563b220e7948d135">gavl_video_process_func</a>) (void *data, int start, int end)</td></tr>
<tr class="memdesc:gad369e2391d20b32a563b220e7948d135"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prototype of a process function.  <a href="#gad369e2391d20b32a563b220e7948d135">More...</a><br /></td></tr>
<tr class="separator:gad369e2391d20b32a563b220e7948d135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc883fc2333a4812098c50db6b42caa3"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mt.html#gadc883fc2333a4812098c50db6b42caa3">gavl_video_run_func</a>) (<a class="el" href="group__mt.html#gad369e2391d20b32a563b220e7948d135">gavl_video_process_func</a> func, void *gavl_data, int start, int end, void *client_data, int thread)</td></tr>
<tr class="memdesc:gadc883fc2333a4812098c50db6b42caa3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run a piece of a calculation.  <a href="#gadc883fc2333a4812098c50db6b42caa3">More...</a><br /></td></tr>
<tr class="separator:gadc883fc2333a4812098c50db6b42caa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab7403177d04e77281c8f89e8ec2e7c23"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mt.html#gab7403177d04e77281c8f89e8ec2e7c23">gavl_video_stop_func</a>) (void *client_data, int thread)</td></tr>
<tr class="memdesc:gab7403177d04e77281c8f89e8ec2e7c23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait until a piece of a calculation finished.  <a href="#gab7403177d04e77281c8f89e8ec2e7c23">More...</a><br /></td></tr>
<tr class="separator:gab7403177d04e77281c8f89e8ec2e7c23"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Multithreading. </p>
<p>gavl has generic multithreading support for video processing. It's done by splitting the calculations in smaller pieces (usually slices of the destination images) and calling user supplied functions, which can transfer the tasks to worker threads. Multithreading is configured with <a class="el" href="group__video__options.html#ga3cbcf9e6e2eb3779f02fe655bda08fcf">gavl_video_options_set_num_threads</a>, <a class="el" href="group__video__options.html#ga025eb6b2868d16343996d661b6ac1706">gavl_video_options_set_run_func</a> and <a class="el" href="group__video__options.html#gaa82c8bce9206051694cf11fcb691e411">gavl_video_options_set_stop_func</a> </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gad369e2391d20b32a563b220e7948d135"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad369e2391d20b32a563b220e7948d135">&sect;&nbsp;</a></span>gavl_video_process_func</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* gavl_video_process_func) (void *data, int start, int end)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Prototype of a process function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>Private data </td></tr>
    <tr><td class="paramname">start</td><td>Where the function should start </td></tr>
    <tr><td class="paramname">end</td><td>Where the function should end (exclusive)</td></tr>
  </table>
  </dd>
</dl>
<p>This function is supplied by gavl and passed to the application, which then executes multiple instances of the functions in multiple threads </p>

</div>
</div>
<a id="gadc883fc2333a4812098c50db6b42caa3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadc883fc2333a4812098c50db6b42caa3">&sect;&nbsp;</a></span>gavl_video_run_func</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* gavl_video_run_func) (<a class="el" href="group__mt.html#gad369e2391d20b32a563b220e7948d135">gavl_video_process_func</a> func, void *gavl_data, int start, int end, void *client_data, int thread)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Run a piece of a calculation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">func</td><td>Function to execute </td></tr>
    <tr><td class="paramname">gavl_data</td><td>1. Argument for func </td></tr>
    <tr><td class="paramname">start</td><td>2. Argument for func </td></tr>
    <tr><td class="paramname">end</td><td>3. Argument for func </td></tr>
    <tr><td class="paramname">client_data</td><td>Data passed with <a class="el" href="group__video__options.html#ga025eb6b2868d16343996d661b6ac1706">gavl_video_options_set_run_func</a> </td></tr>
    <tr><td class="paramname">thread</td><td>Number of processing thread (starting with 0)</td></tr>
  </table>
  </dd>
</dl>
<p>This function supplied by the application and passed to gavl via <a class="el" href="group__video__options.html#ga025eb6b2868d16343996d661b6ac1706">gavl_video_options_set_run_func</a>. It should call func with the given parameters in a worker thread. </p>

</div>
</div>
<a id="gab7403177d04e77281c8f89e8ec2e7c23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab7403177d04e77281c8f89e8ec2e7c23">&sect;&nbsp;</a></span>gavl_video_stop_func</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* gavl_video_stop_func) (void *client_data, int thread)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wait until a piece of a calculation finished. </p>
<p>client_data Data passed with <a class="el" href="group__video__options.html#gaa82c8bce9206051694cf11fcb691e411">gavl_video_options_set_stop_func</a> </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">thread</td><td>Number of processing thread (starting with 0)</td></tr>
  </table>
  </dd>
</dl>
<p>This function must make sure that the task started by <a class="el" href="group__mt.html#gadc883fc2333a4812098c50db6b42caa3">gavl_video_run_func</a> is finished. </p>

</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>