Sophie

Sophie

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

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: gavl_dsp_funcs_t Struct 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" />
</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="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<div class="title">gavl_dsp_funcs_t Struct Reference<div class="ingroups"><a class="el" href="group__dsp.html">DSP Context</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Function table.  
 <a href="structgavl__dsp__funcs__t.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="gavldsp_8h_source.html">gavldsp.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:aeaa8bedb168a6bf427caa5e72ae6dce0"><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#aeaa8bedb168a6bf427caa5e72ae6dce0">sad_rgb15</a> )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)</td></tr>
<tr class="memdesc:aeaa8bedb168a6bf427caa5e72ae6dce0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the sum of absolute differences (RGB/BGR15)  <a href="#aeaa8bedb168a6bf427caa5e72ae6dce0">More...</a><br /></td></tr>
<tr class="separator:aeaa8bedb168a6bf427caa5e72ae6dce0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0670afa250247d4ac8a2fc3af069ddb3"><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a0670afa250247d4ac8a2fc3af069ddb3">sad_rgb16</a> )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)</td></tr>
<tr class="memdesc:a0670afa250247d4ac8a2fc3af069ddb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the sum of absolute differences (RGB/BGR16)  <a href="#a0670afa250247d4ac8a2fc3af069ddb3">More...</a><br /></td></tr>
<tr class="separator:a0670afa250247d4ac8a2fc3af069ddb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02dc49823801b2f7a25ba9b5597e24d9"><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a02dc49823801b2f7a25ba9b5597e24d9">sad_8</a> )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)</td></tr>
<tr class="memdesc:a02dc49823801b2f7a25ba9b5597e24d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the sum of absolute differences (8 bit)  <a href="#a02dc49823801b2f7a25ba9b5597e24d9">More...</a><br /></td></tr>
<tr class="separator:a02dc49823801b2f7a25ba9b5597e24d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40c8afdc07417ac6cf34015383e17e9c"><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a40c8afdc07417ac6cf34015383e17e9c">sad_16</a> )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)</td></tr>
<tr class="memdesc:a40c8afdc07417ac6cf34015383e17e9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the sum of absolute differences (16 bit)  <a href="#a40c8afdc07417ac6cf34015383e17e9c">More...</a><br /></td></tr>
<tr class="separator:a40c8afdc07417ac6cf34015383e17e9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a880cdb32554d42c9f49e8391d9af521e"><td class="memItemLeft" align="right" valign="top">float(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a880cdb32554d42c9f49e8391d9af521e">sad_f</a> )(const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)</td></tr>
<tr class="memdesc:a880cdb32554d42c9f49e8391d9af521e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the sum of absolute differences (float)  <a href="#a880cdb32554d42c9f49e8391d9af521e">More...</a><br /></td></tr>
<tr class="separator:a880cdb32554d42c9f49e8391d9af521e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a8976ceb387fcf1cc613fb5ee68c91d"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a3a8976ceb387fcf1cc613fb5ee68c91d">average_rgb15</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td></tr>
<tr class="memdesc:a3a8976ceb387fcf1cc613fb5ee68c91d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Average 2 scanlines (RGB/BGR15)  <a href="#a3a8976ceb387fcf1cc613fb5ee68c91d">More...</a><br /></td></tr>
<tr class="separator:a3a8976ceb387fcf1cc613fb5ee68c91d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab588de8fbaddd5f025c21fa60a7d9b69"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ab588de8fbaddd5f025c21fa60a7d9b69">average_rgb16</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td></tr>
<tr class="memdesc:ab588de8fbaddd5f025c21fa60a7d9b69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Average 2 scanlines (RGB/BGR16)  <a href="#ab588de8fbaddd5f025c21fa60a7d9b69">More...</a><br /></td></tr>
<tr class="separator:ab588de8fbaddd5f025c21fa60a7d9b69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2c1114ecc839e7a9a2c2790dd47e4ba"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#af2c1114ecc839e7a9a2c2790dd47e4ba">average_8</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td></tr>
<tr class="memdesc:af2c1114ecc839e7a9a2c2790dd47e4ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Average 2 scanlines (8 bit)  <a href="#af2c1114ecc839e7a9a2c2790dd47e4ba">More...</a><br /></td></tr>
<tr class="separator:af2c1114ecc839e7a9a2c2790dd47e4ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c93d00d677c50265b3de5b5bc484ed7"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a0c93d00d677c50265b3de5b5bc484ed7">average_16</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td></tr>
<tr class="memdesc:a0c93d00d677c50265b3de5b5bc484ed7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Average 2 scanlines (16 bit)  <a href="#a0c93d00d677c50265b3de5b5bc484ed7">More...</a><br /></td></tr>
<tr class="separator:a0c93d00d677c50265b3de5b5bc484ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e42b01354f7881292b5e5a5bd0a2d39"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a0e42b01354f7881292b5e5a5bd0a2d39">average_f</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td></tr>
<tr class="memdesc:a0e42b01354f7881292b5e5a5bd0a2d39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Average 2 scanlines (float)  <a href="#a0e42b01354f7881292b5e5a5bd0a2d39">More...</a><br /></td></tr>
<tr class="separator:a0e42b01354f7881292b5e5a5bd0a2d39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa623bb54b0850ac9e4676c6ffc73fb96"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#aa623bb54b0850ac9e4676c6ffc73fb96">interpolate_rgb15</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float)</td></tr>
<tr class="memdesc:aa623bb54b0850ac9e4676c6ffc73fb96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpolate 2 scanlines (RGB/BGR15)  <a href="#aa623bb54b0850ac9e4676c6ffc73fb96">More...</a><br /></td></tr>
<tr class="separator:aa623bb54b0850ac9e4676c6ffc73fb96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af17f966c931268c162fa4a30e15a7a42"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#af17f966c931268c162fa4a30e15a7a42">interpolate_rgb16</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)</td></tr>
<tr class="memdesc:af17f966c931268c162fa4a30e15a7a42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpolate 2 scanlines (RGB/BGR16)  <a href="#af17f966c931268c162fa4a30e15a7a42">More...</a><br /></td></tr>
<tr class="separator:af17f966c931268c162fa4a30e15a7a42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25e0de1769cf75a812f7afd65df6d22d"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a25e0de1769cf75a812f7afd65df6d22d">interpolate_8</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)</td></tr>
<tr class="memdesc:a25e0de1769cf75a812f7afd65df6d22d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpolate 2 scanlines (8 bit)  <a href="#a25e0de1769cf75a812f7afd65df6d22d">More...</a><br /></td></tr>
<tr class="separator:a25e0de1769cf75a812f7afd65df6d22d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a897c5d6fabefe58196d53a554e627e1b"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a897c5d6fabefe58196d53a554e627e1b">interpolate_16</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)</td></tr>
<tr class="memdesc:a897c5d6fabefe58196d53a554e627e1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpolate 2 scanlines (16 bit)  <a href="#a897c5d6fabefe58196d53a554e627e1b">More...</a><br /></td></tr>
<tr class="separator:a897c5d6fabefe58196d53a554e627e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af73d6acf8c34ed3f8faf09ccfc8b7c21"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#af73d6acf8c34ed3f8faf09ccfc8b7c21">interpolate_f</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)</td></tr>
<tr class="memdesc:af73d6acf8c34ed3f8faf09ccfc8b7c21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interpolate 2 scanlines (float)  <a href="#af73d6acf8c34ed3f8faf09ccfc8b7c21">More...</a><br /></td></tr>
<tr class="separator:af73d6acf8c34ed3f8faf09ccfc8b7c21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5f981c92495e1b33d652d0b0f26f95a"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ac5f981c92495e1b33d652d0b0f26f95a">bswap_16</a> )(void *ptr, int len)</td></tr>
<tr class="memdesc:ac5f981c92495e1b33d652d0b0f26f95a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do 16 bit endian swapping.  <a href="#ac5f981c92495e1b33d652d0b0f26f95a">More...</a><br /></td></tr>
<tr class="separator:ac5f981c92495e1b33d652d0b0f26f95a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57ccfe852c18eb2501cf57155345eaec"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a57ccfe852c18eb2501cf57155345eaec">bswap_32</a> )(void *ptr, int len)</td></tr>
<tr class="memdesc:a57ccfe852c18eb2501cf57155345eaec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do 32 byte endian swapping.  <a href="#a57ccfe852c18eb2501cf57155345eaec">More...</a><br /></td></tr>
<tr class="separator:a57ccfe852c18eb2501cf57155345eaec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1d3dde623d94952ef34718e1f6be67b"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#af1d3dde623d94952ef34718e1f6be67b">bswap_64</a> )(void *ptr, int len)</td></tr>
<tr class="memdesc:af1d3dde623d94952ef34718e1f6be67b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do 64 byte endian swapping.  <a href="#af1d3dde623d94952ef34718e1f6be67b">More...</a><br /></td></tr>
<tr class="separator:af1d3dde623d94952ef34718e1f6be67b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c0fd08f8afe22a54897d7fe34130474"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a8c0fd08f8afe22a54897d7fe34130474">add_u8</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a8c0fd08f8afe22a54897d7fe34130474"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add 2 uint8_t vectors.  <a href="#a8c0fd08f8afe22a54897d7fe34130474">More...</a><br /></td></tr>
<tr class="separator:a8c0fd08f8afe22a54897d7fe34130474"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f45131cec8c56c3d3018a59374dc3ec"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a4f45131cec8c56c3d3018a59374dc3ec">add_u8_s</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a4f45131cec8c56c3d3018a59374dc3ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add 2 uint8_t vectors (for audio stored as unsigned)  <a href="#a4f45131cec8c56c3d3018a59374dc3ec">More...</a><br /></td></tr>
<tr class="separator:a4f45131cec8c56c3d3018a59374dc3ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a532d7d1dbd48e6aa2ac138b456d51206"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a532d7d1dbd48e6aa2ac138b456d51206">add_s8</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a532d7d1dbd48e6aa2ac138b456d51206"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add 2 int8_t vectors.  <a href="#a532d7d1dbd48e6aa2ac138b456d51206">More...</a><br /></td></tr>
<tr class="separator:a532d7d1dbd48e6aa2ac138b456d51206"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88063234b2355d0155414ed244abb97a"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a88063234b2355d0155414ed244abb97a">add_u16</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a88063234b2355d0155414ed244abb97a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add 2 uint16_t vectors.  <a href="#a88063234b2355d0155414ed244abb97a">More...</a><br /></td></tr>
<tr class="separator:a88063234b2355d0155414ed244abb97a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a431901e3f92e67689029802673d8ef01"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a431901e3f92e67689029802673d8ef01">add_u16_s</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a431901e3f92e67689029802673d8ef01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add 2 uint16_t vectors (for audio stored as unsigned)  <a href="#a431901e3f92e67689029802673d8ef01">More...</a><br /></td></tr>
<tr class="separator:a431901e3f92e67689029802673d8ef01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae69c8be603b064ddaf94849353eee8c"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#aae69c8be603b064ddaf94849353eee8c">add_s16</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:aae69c8be603b064ddaf94849353eee8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add 2 int16_t vectors.  <a href="#aae69c8be603b064ddaf94849353eee8c">More...</a><br /></td></tr>
<tr class="separator:aae69c8be603b064ddaf94849353eee8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c3a05e1b1e7bf931e2042e6c7cc4d2c"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a3c3a05e1b1e7bf931e2042e6c7cc4d2c">add_s32</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a3c3a05e1b1e7bf931e2042e6c7cc4d2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add 2 int32_t vectors.  <a href="#a3c3a05e1b1e7bf931e2042e6c7cc4d2c">More...</a><br /></td></tr>
<tr class="separator:a3c3a05e1b1e7bf931e2042e6c7cc4d2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3e1d70948530d696d789109057ddded"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ab3e1d70948530d696d789109057ddded">add_float</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:ab3e1d70948530d696d789109057ddded"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add 2 float vectors.  <a href="#ab3e1d70948530d696d789109057ddded">More...</a><br /></td></tr>
<tr class="separator:ab3e1d70948530d696d789109057ddded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f913ef67d671ebb6489e6c91475ca4c"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a5f913ef67d671ebb6489e6c91475ca4c">add_double</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a5f913ef67d671ebb6489e6c91475ca4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add 2 float vectors.  <a href="#a5f913ef67d671ebb6489e6c91475ca4c">More...</a><br /></td></tr>
<tr class="separator:a5f913ef67d671ebb6489e6c91475ca4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09df479ab728643e5280ab70fce185aa"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a09df479ab728643e5280ab70fce185aa">sub_u8</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a09df479ab728643e5280ab70fce185aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract 2 uint8_t vectors.  <a href="#a09df479ab728643e5280ab70fce185aa">More...</a><br /></td></tr>
<tr class="separator:a09df479ab728643e5280ab70fce185aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd637d2f4493be32deb6f2a16abeb9e8"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#abd637d2f4493be32deb6f2a16abeb9e8">sub_u8_s</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:abd637d2f4493be32deb6f2a16abeb9e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract 2 uint8_t vectors (for audio stored as unsigned)  <a href="#abd637d2f4493be32deb6f2a16abeb9e8">More...</a><br /></td></tr>
<tr class="separator:abd637d2f4493be32deb6f2a16abeb9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a903b99c59a229491f8d1f313314b804f"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a903b99c59a229491f8d1f313314b804f">sub_s8</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a903b99c59a229491f8d1f313314b804f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract 2 int8_t vectors.  <a href="#a903b99c59a229491f8d1f313314b804f">More...</a><br /></td></tr>
<tr class="separator:a903b99c59a229491f8d1f313314b804f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada5fb6953d8b3457045a0e921de8bd78"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ada5fb6953d8b3457045a0e921de8bd78">sub_u16</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:ada5fb6953d8b3457045a0e921de8bd78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract 2 uint16_t vectors.  <a href="#ada5fb6953d8b3457045a0e921de8bd78">More...</a><br /></td></tr>
<tr class="separator:ada5fb6953d8b3457045a0e921de8bd78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d4755dece68e782cf3f8445f4017aa4"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a0d4755dece68e782cf3f8445f4017aa4">sub_u16_s</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a0d4755dece68e782cf3f8445f4017aa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract 2 uint16_t vectors (for audio stored as unsigned)  <a href="#a0d4755dece68e782cf3f8445f4017aa4">More...</a><br /></td></tr>
<tr class="separator:a0d4755dece68e782cf3f8445f4017aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7d85f0a7a30307eb9b3a340670d1001"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ac7d85f0a7a30307eb9b3a340670d1001">sub_s16</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:ac7d85f0a7a30307eb9b3a340670d1001"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract 2 int16_t vectors.  <a href="#ac7d85f0a7a30307eb9b3a340670d1001">More...</a><br /></td></tr>
<tr class="separator:ac7d85f0a7a30307eb9b3a340670d1001"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8499020f544ed27900bc83929b7cd23d"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a8499020f544ed27900bc83929b7cd23d">sub_s32</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a8499020f544ed27900bc83929b7cd23d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract 2 int32_t vectors.  <a href="#a8499020f544ed27900bc83929b7cd23d">More...</a><br /></td></tr>
<tr class="separator:a8499020f544ed27900bc83929b7cd23d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25ee74a276ae0a5b374934e54b516a25"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a25ee74a276ae0a5b374934e54b516a25">sub_float</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:a25ee74a276ae0a5b374934e54b516a25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract 2 float vectors.  <a href="#a25ee74a276ae0a5b374934e54b516a25">More...</a><br /></td></tr>
<tr class="separator:a25ee74a276ae0a5b374934e54b516a25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4ed0bcb4ab6a7a459d9a58e56e5a211"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ac4ed0bcb4ab6a7a459d9a58e56e5a211">sub_double</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr>
<tr class="memdesc:ac4ed0bcb4ab6a7a459d9a58e56e5a211"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtract 2 float vectors.  <a href="#ac4ed0bcb4ab6a7a459d9a58e56e5a211">More...</a><br /></td></tr>
<tr class="separator:ac4ed0bcb4ab6a7a459d9a58e56e5a211"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Function table. </p>
<p>This structure contains pointers to the available DSP functions. </p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="aeaa8bedb168a6bf427caa5e72ae6dce0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeaa8bedb168a6bf427caa5e72ae6dce0">&sect;&nbsp;</a></span>sad_rgb15</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* gavl_dsp_funcs_t::sad_rgb15) (const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the sum of absolute differences (RGB/BGR15) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Plane 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Plane 2 </td></tr>
    <tr><td class="paramname">stride_1</td><td>Byte distance between scanlines for src_1 </td></tr>
    <tr><td class="paramname">stride_2</td><td>Byte distance between scanlines for src_2 </td></tr>
    <tr><td class="paramname">w</td><td>Width </td></tr>
    <tr><td class="paramname">h</td><td>Height </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The sum of absolute differences</dd></dl>
<p>The RGB values will be scaled to 8 bit before the differences are calculated. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* gavl_dsp_funcs_t::sad_rgb16) (const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the sum of absolute differences (RGB/BGR16) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Plane 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Plane 2 </td></tr>
    <tr><td class="paramname">stride_1</td><td>Byte distance between scanlines for src_1 </td></tr>
    <tr><td class="paramname">stride_2</td><td>Byte distance between scanlines for src_2 </td></tr>
    <tr><td class="paramname">w</td><td>Width </td></tr>
    <tr><td class="paramname">h</td><td>Height </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The sum of absolute differences</dd></dl>
<p>The RGB values will be scaled to 8 bit before the differences are calculated. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* gavl_dsp_funcs_t::sad_8) (const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the sum of absolute differences (8 bit) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Plane 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Plane 2 </td></tr>
    <tr><td class="paramname">stride_1</td><td>Byte distance between scanlines for src_1 </td></tr>
    <tr><td class="paramname">stride_2</td><td>Byte distance between scanlines for src_2 </td></tr>
    <tr><td class="paramname">w</td><td>Width </td></tr>
    <tr><td class="paramname">h</td><td>Height </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The sum of absolute differences </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* gavl_dsp_funcs_t::sad_16) (const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the sum of absolute differences (16 bit) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Plane 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Plane 2 </td></tr>
    <tr><td class="paramname">stride_1</td><td>Byte distance between scanlines for src_1 </td></tr>
    <tr><td class="paramname">stride_2</td><td>Byte distance between scanlines for src_2 </td></tr>
    <tr><td class="paramname">w</td><td>Width </td></tr>
    <tr><td class="paramname">h</td><td>Height </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The sum of absolute differences </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float(* gavl_dsp_funcs_t::sad_f) (const uint8_t *src_1, const uint8_t *src_2, int stride_1, int stride_2, int w, int h)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the sum of absolute differences (float) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Plane 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Plane 2 </td></tr>
    <tr><td class="paramname">stride_1</td><td>Byte distance between scanlines for src_1 </td></tr>
    <tr><td class="paramname">stride_2</td><td>Byte distance between scanlines for src_2 </td></tr>
    <tr><td class="paramname">w</td><td>Width </td></tr>
    <tr><td class="paramname">h</td><td>Height </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The sum of absolute differences </dd></dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::average_rgb15) (const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Average 2 scanlines (RGB/BGR15) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Scanline 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Scanline 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of pixels </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::average_rgb16) (const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Average 2 scanlines (RGB/BGR16) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Scanline 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Scanline 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of pixels </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::average_8) (const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Average 2 scanlines (8 bit) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Scanline 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Scanline 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of bytes </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::average_16) (const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Average 2 scanlines (16 bit) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Scanline 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Scanline 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of shorts </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::average_f) (const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Average 2 scanlines (float) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Scanline 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Scanline 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of floats </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::interpolate_rgb15) (const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Interpolate 2 scanlines (RGB/BGR15) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Scanline 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Scanline 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of pixels </td></tr>
    <tr><td class="paramname">fac</td><td>Factor for src_1 (0.0 .. 1.0)</td></tr>
  </table>
  </dd>
</dl>
<p>Sets the destination to src_1 * fac + src_2 * (1.0-fac) </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::interpolate_rgb16) (const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Interpolate 2 scanlines (RGB/BGR16) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Scanline 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Scanline 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of pixels </td></tr>
    <tr><td class="paramname">fac</td><td>Factor for src_1 (0.0 .. 1.0)</td></tr>
  </table>
  </dd>
</dl>
<p>Sets the destination to src_1 * fac + src_2 * (1.0-fac) </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::interpolate_8) (const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Interpolate 2 scanlines (8 bit) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Scanline 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Scanline 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of bytes </td></tr>
    <tr><td class="paramname">fac</td><td>Factor for src_1 (0.0 .. 1.0)</td></tr>
  </table>
  </dd>
</dl>
<p>Sets the destination to src_1 * fac + src_2 * (1.0-fac) </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::interpolate_16) (const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Interpolate 2 scanlines (16 bit) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Scanline 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Scanline 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of shorts </td></tr>
    <tr><td class="paramname">fac</td><td>Factor for src_1 (0.0 .. 1.0)</td></tr>
  </table>
  </dd>
</dl>
<p>Sets the destination to src_1 * fac + src_2 * (1.0-fac) </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::interpolate_f) (const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float fac)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Interpolate 2 scanlines (float) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src_1</td><td>Scanline 1 </td></tr>
    <tr><td class="paramname">src_2</td><td>Scanline 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of floats </td></tr>
    <tr><td class="paramname">fac</td><td>Factor for src_1 (0.0 .. 1.0)</td></tr>
  </table>
  </dd>
</dl>
<p>Sets the destination to src_1 * fac + src_2 * (1.0-fac) </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::bswap_16) (void *ptr, int len)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Do 16 bit endian swapping. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptr</td><td>Pointer to the data </td></tr>
    <tr><td class="paramname">len</td><td>Len in 16 bit words </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::bswap_32) (void *ptr, int len)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Do 32 byte endian swapping. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptr</td><td>Pointer to the data </td></tr>
    <tr><td class="paramname">len</td><td>Len in 32 bit doublewords </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::bswap_64) (void *ptr, int len)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Do 64 byte endian swapping. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptr</td><td>Pointer to the data </td></tr>
    <tr><td class="paramname">len</td><td>Len in 64 bit quadwords </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::add_u8) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add 2 uint8_t vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::add_u8_s) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add 2 uint8_t vectors (for audio stored as unsigned) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::add_s8) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add 2 int8_t vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::add_u16) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add 2 uint16_t vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::add_u16_s) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add 2 uint16_t vectors (for audio stored as unsigned) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::add_s16) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add 2 int16_t vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::add_s32) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add 2 int32_t vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::add_float) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add 2 float vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::add_double) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add 2 float vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::sub_u8) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Subtract 2 uint8_t vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::sub_u8_s) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Subtract 2 uint8_t vectors (for audio stored as unsigned) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::sub_s8) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Subtract 2 int8_t vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::sub_u16) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Subtract 2 uint16_t vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::sub_u16_s) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Subtract 2 uint16_t vectors (for audio stored as unsigned) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::sub_s16) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Subtract 2 int16_t vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::sub_s32) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Subtract 2 int32_t vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::sub_float) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Subtract 2 float vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void(* gavl_dsp_funcs_t::sub_double) (const void *src1, const void *src2, void *dst, int num)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Subtract 2 float vectors. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>Source 1 </td></tr>
    <tr><td class="paramname">src2</td><td>Source 2 </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">num</td><td>Number of entries</td></tr>
  </table>
  </dd>
</dl>
<p>src1 and/or src2 can be identical to dst </p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>/home/iurt/rpmbuild/BUILD/gavl-1.4.0/include/gavl/<a class="el" href="gavldsp_8h_source.html">gavldsp.h</a></li>
</ul>
</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>