<!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.3"/> <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 style="padding-left: 0.5em;"> <div id="projectname">gavl </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.3 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </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 <<a class="el" href="gavldsp_8h_source.html">gavldsp.h</a>></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:afb194c3ae83a471d3de0181e9546f914"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#afb194c3ae83a471d3de0181e9546f914">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:afb194c3ae83a471d3de0181e9546f914"><td class="mdescLeft"> </td><td class="mdescRight">Get the sum of absolute differences (RGB/BGR15) <a href="#afb194c3ae83a471d3de0181e9546f914"></a><br/></td></tr> <tr class="separator:afb194c3ae83a471d3de0181e9546f914"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a22201ad5d5dd37ae9af9e6096b682ff2"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a22201ad5d5dd37ae9af9e6096b682ff2">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:a22201ad5d5dd37ae9af9e6096b682ff2"><td class="mdescLeft"> </td><td class="mdescRight">Get the sum of absolute differences (RGB/BGR16) <a href="#a22201ad5d5dd37ae9af9e6096b682ff2"></a><br/></td></tr> <tr class="separator:a22201ad5d5dd37ae9af9e6096b682ff2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aeca5fe9367ab2103f3b1f492b8ef5cb5"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#aeca5fe9367ab2103f3b1f492b8ef5cb5">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:aeca5fe9367ab2103f3b1f492b8ef5cb5"><td class="mdescLeft"> </td><td class="mdescRight">Get the sum of absolute differences (8 bit) <a href="#aeca5fe9367ab2103f3b1f492b8ef5cb5"></a><br/></td></tr> <tr class="separator:aeca5fe9367ab2103f3b1f492b8ef5cb5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac6d6d02344dfae85e0d0200767f4a827"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ac6d6d02344dfae85e0d0200767f4a827">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:ac6d6d02344dfae85e0d0200767f4a827"><td class="mdescLeft"> </td><td class="mdescRight">Get the sum of absolute differences (16 bit) <a href="#ac6d6d02344dfae85e0d0200767f4a827"></a><br/></td></tr> <tr class="separator:ac6d6d02344dfae85e0d0200767f4a827"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8d287e8c3aadd6dd4d444973237c9d14"><td class="memItemLeft" align="right" valign="top">float(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a8d287e8c3aadd6dd4d444973237c9d14">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:a8d287e8c3aadd6dd4d444973237c9d14"><td class="mdescLeft"> </td><td class="mdescRight">Get the sum of absolute differences (float) <a href="#a8d287e8c3aadd6dd4d444973237c9d14"></a><br/></td></tr> <tr class="separator:a8d287e8c3aadd6dd4d444973237c9d14"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4651c021944cc125db3e824d71b1a2ea"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a4651c021944cc125db3e824d71b1a2ea">average_rgb15</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td></tr> <tr class="memdesc:a4651c021944cc125db3e824d71b1a2ea"><td class="mdescLeft"> </td><td class="mdescRight">Average 2 scanlines (RGB/BGR15) <a href="#a4651c021944cc125db3e824d71b1a2ea"></a><br/></td></tr> <tr class="separator:a4651c021944cc125db3e824d71b1a2ea"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a08204b578d9b43df6c58dc3381a9de0a"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a08204b578d9b43df6c58dc3381a9de0a">average_rgb16</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td></tr> <tr class="memdesc:a08204b578d9b43df6c58dc3381a9de0a"><td class="mdescLeft"> </td><td class="mdescRight">Average 2 scanlines (RGB/BGR16) <a href="#a08204b578d9b43df6c58dc3381a9de0a"></a><br/></td></tr> <tr class="separator:a08204b578d9b43df6c58dc3381a9de0a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adbbcabe174a169b9700c495c2842a202"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#adbbcabe174a169b9700c495c2842a202">average_8</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td></tr> <tr class="memdesc:adbbcabe174a169b9700c495c2842a202"><td class="mdescLeft"> </td><td class="mdescRight">Average 2 scanlines (8 bit) <a href="#adbbcabe174a169b9700c495c2842a202"></a><br/></td></tr> <tr class="separator:adbbcabe174a169b9700c495c2842a202"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a875f149849f0dd8345e2977ee4fb864c"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a875f149849f0dd8345e2977ee4fb864c">average_16</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td></tr> <tr class="memdesc:a875f149849f0dd8345e2977ee4fb864c"><td class="mdescLeft"> </td><td class="mdescRight">Average 2 scanlines (16 bit) <a href="#a875f149849f0dd8345e2977ee4fb864c"></a><br/></td></tr> <tr class="separator:a875f149849f0dd8345e2977ee4fb864c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4d5892b19abf642a3ed45b755d4d0976"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a4d5892b19abf642a3ed45b755d4d0976">average_f</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num)</td></tr> <tr class="memdesc:a4d5892b19abf642a3ed45b755d4d0976"><td class="mdescLeft"> </td><td class="mdescRight">Average 2 scanlines (float) <a href="#a4d5892b19abf642a3ed45b755d4d0976"></a><br/></td></tr> <tr class="separator:a4d5892b19abf642a3ed45b755d4d0976"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0e7e43ce018672648d2e5a5e08d250d1"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a0e7e43ce018672648d2e5a5e08d250d1">interpolate_rgb15</a> )(const uint8_t *src_1, const uint8_t *src_2, uint8_t *dst, int num, float)</td></tr> <tr class="memdesc:a0e7e43ce018672648d2e5a5e08d250d1"><td class="mdescLeft"> </td><td class="mdescRight">Interpolate 2 scanlines (RGB/BGR15) <a href="#a0e7e43ce018672648d2e5a5e08d250d1"></a><br/></td></tr> <tr class="separator:a0e7e43ce018672648d2e5a5e08d250d1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac8bd2e41a5cf17c2987e279ee4862d2b"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ac8bd2e41a5cf17c2987e279ee4862d2b">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:ac8bd2e41a5cf17c2987e279ee4862d2b"><td class="mdescLeft"> </td><td class="mdescRight">Interpolate 2 scanlines (RGB/BGR16) <a href="#ac8bd2e41a5cf17c2987e279ee4862d2b"></a><br/></td></tr> <tr class="separator:ac8bd2e41a5cf17c2987e279ee4862d2b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2f9960e71912769c81434419ad48d817"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a2f9960e71912769c81434419ad48d817">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:a2f9960e71912769c81434419ad48d817"><td class="mdescLeft"> </td><td class="mdescRight">Interpolate 2 scanlines (8 bit) <a href="#a2f9960e71912769c81434419ad48d817"></a><br/></td></tr> <tr class="separator:a2f9960e71912769c81434419ad48d817"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a157b654db8b6438d339b8c1bdb8f79b4"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a157b654db8b6438d339b8c1bdb8f79b4">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:a157b654db8b6438d339b8c1bdb8f79b4"><td class="mdescLeft"> </td><td class="mdescRight">Interpolate 2 scanlines (16 bit) <a href="#a157b654db8b6438d339b8c1bdb8f79b4"></a><br/></td></tr> <tr class="separator:a157b654db8b6438d339b8c1bdb8f79b4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7b7ab543ca9dd2a923a305f078c26a12"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a7b7ab543ca9dd2a923a305f078c26a12">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:a7b7ab543ca9dd2a923a305f078c26a12"><td class="mdescLeft"> </td><td class="mdescRight">Interpolate 2 scanlines (float) <a href="#a7b7ab543ca9dd2a923a305f078c26a12"></a><br/></td></tr> <tr class="separator:a7b7ab543ca9dd2a923a305f078c26a12"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad3ef64180702af2331e46bb08626bac1"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ad3ef64180702af2331e46bb08626bac1">bswap_16</a> )(void *ptr, int len)</td></tr> <tr class="memdesc:ad3ef64180702af2331e46bb08626bac1"><td class="mdescLeft"> </td><td class="mdescRight">Do 16 bit endian swapping. <a href="#ad3ef64180702af2331e46bb08626bac1"></a><br/></td></tr> <tr class="separator:ad3ef64180702af2331e46bb08626bac1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a25e61aa0460f289a9344554d8893133a"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a25e61aa0460f289a9344554d8893133a">bswap_32</a> )(void *ptr, int len)</td></tr> <tr class="memdesc:a25e61aa0460f289a9344554d8893133a"><td class="mdescLeft"> </td><td class="mdescRight">Do 32 byte endian swapping. <a href="#a25e61aa0460f289a9344554d8893133a"></a><br/></td></tr> <tr class="separator:a25e61aa0460f289a9344554d8893133a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1f9c4f946bb7325808ea60ed14fb3aa1"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a1f9c4f946bb7325808ea60ed14fb3aa1">bswap_64</a> )(void *ptr, int len)</td></tr> <tr class="memdesc:a1f9c4f946bb7325808ea60ed14fb3aa1"><td class="mdescLeft"> </td><td class="mdescRight">Do 64 byte endian swapping. <a href="#a1f9c4f946bb7325808ea60ed14fb3aa1"></a><br/></td></tr> <tr class="separator:a1f9c4f946bb7325808ea60ed14fb3aa1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1f9d4e39def1f75ede671bf25e978b91"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a1f9d4e39def1f75ede671bf25e978b91">add_u8</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a1f9d4e39def1f75ede671bf25e978b91"><td class="mdescLeft"> </td><td class="mdescRight">Add 2 uint8_t vectors. <a href="#a1f9d4e39def1f75ede671bf25e978b91"></a><br/></td></tr> <tr class="separator:a1f9d4e39def1f75ede671bf25e978b91"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a238030ec41b75b89d1585a24718d90b3"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a238030ec41b75b89d1585a24718d90b3">add_u8_s</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a238030ec41b75b89d1585a24718d90b3"><td class="mdescLeft"> </td><td class="mdescRight">Add 2 uint8_t vectors (for audio stored as unsigned) <a href="#a238030ec41b75b89d1585a24718d90b3"></a><br/></td></tr> <tr class="separator:a238030ec41b75b89d1585a24718d90b3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad8b5609f68efb95b4b563c7004d589f9"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ad8b5609f68efb95b4b563c7004d589f9">add_s8</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:ad8b5609f68efb95b4b563c7004d589f9"><td class="mdescLeft"> </td><td class="mdescRight">Add 2 int8_t vectors. <a href="#ad8b5609f68efb95b4b563c7004d589f9"></a><br/></td></tr> <tr class="separator:ad8b5609f68efb95b4b563c7004d589f9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a96297a6986fe8514702b55091c7bcd86"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a96297a6986fe8514702b55091c7bcd86">add_u16</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a96297a6986fe8514702b55091c7bcd86"><td class="mdescLeft"> </td><td class="mdescRight">Add 2 uint16_t vectors. <a href="#a96297a6986fe8514702b55091c7bcd86"></a><br/></td></tr> <tr class="separator:a96297a6986fe8514702b55091c7bcd86"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a37e253fc94a616bf0deacad8cb5ca55e"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a37e253fc94a616bf0deacad8cb5ca55e">add_u16_s</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a37e253fc94a616bf0deacad8cb5ca55e"><td class="mdescLeft"> </td><td class="mdescRight">Add 2 uint16_t vectors (for audio stored as unsigned) <a href="#a37e253fc94a616bf0deacad8cb5ca55e"></a><br/></td></tr> <tr class="separator:a37e253fc94a616bf0deacad8cb5ca55e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac05c4983190f881286ca3510929c2a3e"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#ac05c4983190f881286ca3510929c2a3e">add_s16</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:ac05c4983190f881286ca3510929c2a3e"><td class="mdescLeft"> </td><td class="mdescRight">Add 2 int16_t vectors. <a href="#ac05c4983190f881286ca3510929c2a3e"></a><br/></td></tr> <tr class="separator:ac05c4983190f881286ca3510929c2a3e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a77486554d76cee3d8309406c3ac5d5f4"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a77486554d76cee3d8309406c3ac5d5f4">add_s32</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a77486554d76cee3d8309406c3ac5d5f4"><td class="mdescLeft"> </td><td class="mdescRight">Add 2 int32_t vectors. <a href="#a77486554d76cee3d8309406c3ac5d5f4"></a><br/></td></tr> <tr class="separator:a77486554d76cee3d8309406c3ac5d5f4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a93109e16b048cd83d81a1ca889f81f9f"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a93109e16b048cd83d81a1ca889f81f9f">add_float</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a93109e16b048cd83d81a1ca889f81f9f"><td class="mdescLeft"> </td><td class="mdescRight">Add 2 float vectors. <a href="#a93109e16b048cd83d81a1ca889f81f9f"></a><br/></td></tr> <tr class="separator:a93109e16b048cd83d81a1ca889f81f9f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3b8013f0bddcd86c218ef5b8630ae16a"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a3b8013f0bddcd86c218ef5b8630ae16a">add_double</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a3b8013f0bddcd86c218ef5b8630ae16a"><td class="mdescLeft"> </td><td class="mdescRight">Add 2 float vectors. <a href="#a3b8013f0bddcd86c218ef5b8630ae16a"></a><br/></td></tr> <tr class="separator:a3b8013f0bddcd86c218ef5b8630ae16a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a96938e92a20edefca7a1d48961f63373"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a96938e92a20edefca7a1d48961f63373">sub_u8</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a96938e92a20edefca7a1d48961f63373"><td class="mdescLeft"> </td><td class="mdescRight">Subtract 2 uint8_t vectors. <a href="#a96938e92a20edefca7a1d48961f63373"></a><br/></td></tr> <tr class="separator:a96938e92a20edefca7a1d48961f63373"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6c921becd0f4234b0e4e217c6a6503c6"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a6c921becd0f4234b0e4e217c6a6503c6">sub_u8_s</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a6c921becd0f4234b0e4e217c6a6503c6"><td class="mdescLeft"> </td><td class="mdescRight">Subtract 2 uint8_t vectors (for audio stored as unsigned) <a href="#a6c921becd0f4234b0e4e217c6a6503c6"></a><br/></td></tr> <tr class="separator:a6c921becd0f4234b0e4e217c6a6503c6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af15f2661480c2042bafde637dc7d714d"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#af15f2661480c2042bafde637dc7d714d">sub_s8</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:af15f2661480c2042bafde637dc7d714d"><td class="mdescLeft"> </td><td class="mdescRight">Subtract 2 int8_t vectors. <a href="#af15f2661480c2042bafde637dc7d714d"></a><br/></td></tr> <tr class="separator:af15f2661480c2042bafde637dc7d714d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa58bd5180331cf5212d17fdaa651943b"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#aa58bd5180331cf5212d17fdaa651943b">sub_u16</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:aa58bd5180331cf5212d17fdaa651943b"><td class="mdescLeft"> </td><td class="mdescRight">Subtract 2 uint16_t vectors. <a href="#aa58bd5180331cf5212d17fdaa651943b"></a><br/></td></tr> <tr class="separator:aa58bd5180331cf5212d17fdaa651943b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a11c9a330b8c996dbaa1453e67f0aa796"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a11c9a330b8c996dbaa1453e67f0aa796">sub_u16_s</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a11c9a330b8c996dbaa1453e67f0aa796"><td class="mdescLeft"> </td><td class="mdescRight">Subtract 2 uint16_t vectors (for audio stored as unsigned) <a href="#a11c9a330b8c996dbaa1453e67f0aa796"></a><br/></td></tr> <tr class="separator:a11c9a330b8c996dbaa1453e67f0aa796"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a02a6fee655edf80dc0c373b258e12bce"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a02a6fee655edf80dc0c373b258e12bce">sub_s16</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a02a6fee655edf80dc0c373b258e12bce"><td class="mdescLeft"> </td><td class="mdescRight">Subtract 2 int16_t vectors. <a href="#a02a6fee655edf80dc0c373b258e12bce"></a><br/></td></tr> <tr class="separator:a02a6fee655edf80dc0c373b258e12bce"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3c1574fcdc02072fea5af78902db64db"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a3c1574fcdc02072fea5af78902db64db">sub_s32</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a3c1574fcdc02072fea5af78902db64db"><td class="mdescLeft"> </td><td class="mdescRight">Subtract 2 int32_t vectors. <a href="#a3c1574fcdc02072fea5af78902db64db"></a><br/></td></tr> <tr class="separator:a3c1574fcdc02072fea5af78902db64db"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a536f47e412d141c04c2af7016deee234"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#a536f47e412d141c04c2af7016deee234">sub_float</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:a536f47e412d141c04c2af7016deee234"><td class="mdescLeft"> </td><td class="mdescRight">Subtract 2 float vectors. <a href="#a536f47e412d141c04c2af7016deee234"></a><br/></td></tr> <tr class="separator:a536f47e412d141c04c2af7016deee234"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af1ce6107bbcb8f0580cb02b80f6f72d3"><td class="memItemLeft" align="right" valign="top">void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__dsp__funcs__t.html#af1ce6107bbcb8f0580cb02b80f6f72d3">sub_double</a> )(const void *src1, const void *src2, void *dst, int num)</td></tr> <tr class="memdesc:af1ce6107bbcb8f0580cb02b80f6f72d3"><td class="mdescLeft"> </td><td class="mdescRight">Subtract 2 float vectors. <a href="#af1ce6107bbcb8f0580cb02b80f6f72d3"></a><br/></td></tr> <tr class="separator:af1ce6107bbcb8f0580cb02b80f6f72d3"><td class="memSeparator" colspan="2"> </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 class="anchor" id="afb194c3ae83a471d3de0181e9546f914"></a> <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 class="anchor" id="a22201ad5d5dd37ae9af9e6096b682ff2"></a> <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 class="anchor" id="aeca5fe9367ab2103f3b1f492b8ef5cb5"></a> <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 class="anchor" id="ac6d6d02344dfae85e0d0200767f4a827"></a> <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 class="anchor" id="a8d287e8c3aadd6dd4d444973237c9d14"></a> <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 class="anchor" id="a4651c021944cc125db3e824d71b1a2ea"></a> <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 class="anchor" id="a08204b578d9b43df6c58dc3381a9de0a"></a> <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 class="anchor" id="adbbcabe174a169b9700c495c2842a202"></a> <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 class="anchor" id="a875f149849f0dd8345e2977ee4fb864c"></a> <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 class="anchor" id="a4d5892b19abf642a3ed45b755d4d0976"></a> <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 class="anchor" id="a0e7e43ce018672648d2e5a5e08d250d1"></a> <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 class="anchor" id="ac8bd2e41a5cf17c2987e279ee4862d2b"></a> <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 class="anchor" id="a2f9960e71912769c81434419ad48d817"></a> <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 class="anchor" id="a157b654db8b6438d339b8c1bdb8f79b4"></a> <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 class="anchor" id="a7b7ab543ca9dd2a923a305f078c26a12"></a> <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 class="anchor" id="ad3ef64180702af2331e46bb08626bac1"></a> <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 class="anchor" id="a25e61aa0460f289a9344554d8893133a"></a> <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 class="anchor" id="a1f9c4f946bb7325808ea60ed14fb3aa1"></a> <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 class="anchor" id="a1f9d4e39def1f75ede671bf25e978b91"></a> <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 class="anchor" id="a238030ec41b75b89d1585a24718d90b3"></a> <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 class="anchor" id="ad8b5609f68efb95b4b563c7004d589f9"></a> <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 class="anchor" id="a96297a6986fe8514702b55091c7bcd86"></a> <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 class="anchor" id="a37e253fc94a616bf0deacad8cb5ca55e"></a> <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 class="anchor" id="ac05c4983190f881286ca3510929c2a3e"></a> <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 class="anchor" id="a77486554d76cee3d8309406c3ac5d5f4"></a> <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 class="anchor" id="a93109e16b048cd83d81a1ca889f81f9f"></a> <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 class="anchor" id="a3b8013f0bddcd86c218ef5b8630ae16a"></a> <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 class="anchor" id="a96938e92a20edefca7a1d48961f63373"></a> <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 class="anchor" id="a6c921becd0f4234b0e4e217c6a6503c6"></a> <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 class="anchor" id="af15f2661480c2042bafde637dc7d714d"></a> <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 class="anchor" id="aa58bd5180331cf5212d17fdaa651943b"></a> <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 class="anchor" id="a11c9a330b8c996dbaa1453e67f0aa796"></a> <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 class="anchor" id="a02a6fee655edf80dc0c373b258e12bce"></a> <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 class="anchor" id="a3c1574fcdc02072fea5af78902db64db"></a> <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 class="anchor" id="a536f47e412d141c04c2af7016deee234"></a> <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 class="anchor" id="af1ce6107bbcb8f0580cb02b80f6f72d3"></a> <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 on Fri Jan 11 2013 22:07:39 for gavl by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.3 </small></address> </body> </html>