Sophie

Sophie

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

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: Video frames</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">gavl
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Video frames<div class="ingroups"><a class="el" href="group__video.html">Video</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Container for video images.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaa160f237e5de21b74844405d044e4de7"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#gaa160f237e5de21b74844405d044e4de7">gavl_video_frame_create</a> (const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format)</td></tr>
<tr class="memdesc:gaa160f237e5de21b74844405d044e4de7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create video frame.  <a href="#gaa160f237e5de21b74844405d044e4de7">More...</a><br /></td></tr>
<tr class="separator:gaa160f237e5de21b74844405d044e4de7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d15154526585f38553a11e2b5deb6db"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga2d15154526585f38553a11e2b5deb6db">gavl_video_frame_create_nopad</a> (const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format)</td></tr>
<tr class="memdesc:ga2d15154526585f38553a11e2b5deb6db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create video frame without padding.  <a href="#ga2d15154526585f38553a11e2b5deb6db">More...</a><br /></td></tr>
<tr class="separator:ga2d15154526585f38553a11e2b5deb6db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga153d145b7b8a359aaab1c983b0b7c940"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga153d145b7b8a359aaab1c983b0b7c940">gavl_video_frame_destroy</a> (<a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *frame)</td></tr>
<tr class="memdesc:ga153d145b7b8a359aaab1c983b0b7c940"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a video frame.  <a href="#ga153d145b7b8a359aaab1c983b0b7c940">More...</a><br /></td></tr>
<tr class="separator:ga153d145b7b8a359aaab1c983b0b7c940"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8a7c4e8c36ffc01cbc3f57ddb72d350"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#gab8a7c4e8c36ffc01cbc3f57ddb72d350">gavl_video_frame_null</a> (<a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *frame)</td></tr>
<tr class="memdesc:gab8a7c4e8c36ffc01cbc3f57ddb72d350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Zero all pointers in the video frame.  <a href="#gab8a7c4e8c36ffc01cbc3f57ddb72d350">More...</a><br /></td></tr>
<tr class="separator:gab8a7c4e8c36ffc01cbc3f57ddb72d350"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacededf455637fb4dab06a7064af03d43"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#gacededf455637fb4dab06a7064af03d43">gavl_video_frame_clear</a> (<a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *frame, const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format)</td></tr>
<tr class="memdesc:gacededf455637fb4dab06a7064af03d43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill the frame with black color.  <a href="#gacededf455637fb4dab06a7064af03d43">More...</a><br /></td></tr>
<tr class="separator:gacededf455637fb4dab06a7064af03d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62a28d980d55b17290e17e837c00b382"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga62a28d980d55b17290e17e837c00b382">gavl_video_frame_fill</a> (<a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *frame, const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, const float *color)</td></tr>
<tr class="memdesc:ga62a28d980d55b17290e17e837c00b382"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill the frame with a user spefified color.  <a href="#ga62a28d980d55b17290e17e837c00b382">More...</a><br /></td></tr>
<tr class="separator:ga62a28d980d55b17290e17e837c00b382"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98e7749806212c86075e71807756cdd5"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga98e7749806212c86075e71807756cdd5">gavl_video_frame_absdiff</a> (<a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src1, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src2, const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format)</td></tr>
<tr class="memdesc:ga98e7749806212c86075e71807756cdd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fill the frame with the absolute differene of 2 source frames.  <a href="#ga98e7749806212c86075e71807756cdd5">More...</a><br /></td></tr>
<tr class="separator:ga98e7749806212c86075e71807756cdd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9246fb3c029aa2926252e1156ca5f15b"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga9246fb3c029aa2926252e1156ca5f15b">gavl_video_frame_psnr</a> (double *psnr, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src1, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src2, const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format)</td></tr>
<tr class="memdesc:ga9246fb3c029aa2926252e1156ca5f15b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the PSNR of 2 source frames.  <a href="#ga9246fb3c029aa2926252e1156ca5f15b">More...</a><br /></td></tr>
<tr class="separator:ga9246fb3c029aa2926252e1156ca5f15b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa0a9342160b9e500a1fe1f0a52d37895"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#gaa0a9342160b9e500a1fe1f0a52d37895">gavl_video_frame_ssim</a> (const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src1, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src2, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst, const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format)</td></tr>
<tr class="memdesc:gaa0a9342160b9e500a1fe1f0a52d37895"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the SSIM of 2 source frames.  <a href="#gaa0a9342160b9e500a1fe1f0a52d37895">More...</a><br /></td></tr>
<tr class="separator:gaa0a9342160b9e500a1fe1f0a52d37895"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e54b4b7c23372674854ec0579fcded2"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga0e54b4b7c23372674854ec0579fcded2">gavl_video_frame_copy</a> (const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src)</td></tr>
<tr class="memdesc:ga0e54b4b7c23372674854ec0579fcded2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy one video frame to another.  <a href="#ga0e54b4b7c23372674854ec0579fcded2">More...</a><br /></td></tr>
<tr class="separator:ga0e54b4b7c23372674854ec0579fcded2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga14f13242d881fbd89c5dcca2b4c41fcc"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga14f13242d881fbd89c5dcca2b4c41fcc">gavl_video_frame_copy_plane</a> (const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src, int plane)</td></tr>
<tr class="memdesc:ga14f13242d881fbd89c5dcca2b4c41fcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a single plane from one video frame to another.  <a href="#ga14f13242d881fbd89c5dcca2b4c41fcc">More...</a><br /></td></tr>
<tr class="separator:ga14f13242d881fbd89c5dcca2b4c41fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1914890d2e61d8667934b34662aecc0f"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga1914890d2e61d8667934b34662aecc0f">gavl_video_frame_copy_flip_x</a> (const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src)</td></tr>
<tr class="memdesc:ga1914890d2e61d8667934b34662aecc0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy one video frame to another with horizontal flipping.  <a href="#ga1914890d2e61d8667934b34662aecc0f">More...</a><br /></td></tr>
<tr class="separator:ga1914890d2e61d8667934b34662aecc0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a24ad46c5d2c008824107d625f8b766"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga7a24ad46c5d2c008824107d625f8b766">gavl_video_frame_copy_flip_y</a> (const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src)</td></tr>
<tr class="memdesc:ga7a24ad46c5d2c008824107d625f8b766"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy one video frame to another with vertical flipping.  <a href="#ga7a24ad46c5d2c008824107d625f8b766">More...</a><br /></td></tr>
<tr class="separator:ga7a24ad46c5d2c008824107d625f8b766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51a06bf52d312cdc1dbfe7e4a17483ac"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga51a06bf52d312cdc1dbfe7e4a17483ac">gavl_video_frame_copy_flip_xy</a> (const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src)</td></tr>
<tr class="memdesc:ga51a06bf52d312cdc1dbfe7e4a17483ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy one video frame to another with horizontal and vertical flipping.  <a href="#ga51a06bf52d312cdc1dbfe7e4a17483ac">More...</a><br /></td></tr>
<tr class="separator:ga51a06bf52d312cdc1dbfe7e4a17483ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5a0336411fc37fc016853b68d74aef4f"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga5a0336411fc37fc016853b68d74aef4f">gavl_video_frame_copy_metadata</a> (<a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src)</td></tr>
<tr class="memdesc:ga5a0336411fc37fc016853b68d74aef4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy metadata of one video frame to another.  <a href="#ga5a0336411fc37fc016853b68d74aef4f">More...</a><br /></td></tr>
<tr class="separator:ga5a0336411fc37fc016853b68d74aef4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga427d06ec59aa8a00418faa426d5fbfc6"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga427d06ec59aa8a00418faa426d5fbfc6">gavl_video_frame_get_subframe</a> (<a class="el" href="group__video__format.html#gaf1e060e38cb2d9e4e776f7eca3ec2d33">gavl_pixelformat_t</a> pixelformat, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst, <a class="el" href="structgavl__rectangle__i__t.html">gavl_rectangle_i_t</a> *src_rect)</td></tr>
<tr class="memdesc:ga427d06ec59aa8a00418faa426d5fbfc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a subframe of another frame.  <a href="#ga427d06ec59aa8a00418faa426d5fbfc6">More...</a><br /></td></tr>
<tr class="separator:ga427d06ec59aa8a00418faa426d5fbfc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8bfaf9a717383f9a1d494f4e0c06346d"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga8bfaf9a717383f9a1d494f4e0c06346d">gavl_video_frame_get_field</a> (<a class="el" href="group__video__format.html#gaf1e060e38cb2d9e4e776f7eca3ec2d33">gavl_pixelformat_t</a> pixelformat, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst, int field)</td></tr>
<tr class="memdesc:ga8bfaf9a717383f9a1d494f4e0c06346d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a field from a frame.  <a href="#ga8bfaf9a717383f9a1d494f4e0c06346d">More...</a><br /></td></tr>
<tr class="separator:ga8bfaf9a717383f9a1d494f4e0c06346d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6eb4ad1d3feb47cd148a1343ebe321fc"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga6eb4ad1d3feb47cd148a1343ebe321fc">gavl_video_frame_dump</a> (<a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *frame, const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, const char *namebase)</td></tr>
<tr class="memdesc:ga6eb4ad1d3feb47cd148a1343ebe321fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump a video frame to files.  <a href="#ga6eb4ad1d3feb47cd148a1343ebe321fc">More...</a><br /></td></tr>
<tr class="separator:ga6eb4ad1d3feb47cd148a1343ebe321fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33f1528b2a6885fe5de6fd60289287a9"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga33f1528b2a6885fe5de6fd60289287a9">gavl_video_frame_set_strides</a> (<a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *frame, const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format)</td></tr>
<tr class="memdesc:ga33f1528b2a6885fe5de6fd60289287a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the strides according to the format.  <a href="#ga33f1528b2a6885fe5de6fd60289287a9">More...</a><br /></td></tr>
<tr class="separator:ga33f1528b2a6885fe5de6fd60289287a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50f291ee97ef492dbf46ab17e49ad92e"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga50f291ee97ef492dbf46ab17e49ad92e">gavl_video_frame_set_planes</a> (<a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *frame, const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, uint8_t *buffer)</td></tr>
<tr class="memdesc:ga50f291ee97ef492dbf46ab17e49ad92e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the frames according to the format.  <a href="#ga50f291ee97ef492dbf46ab17e49ad92e">More...</a><br /></td></tr>
<tr class="separator:ga50f291ee97ef492dbf46ab17e49ad92e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaacbbc8ab6bd8532f8e285153470554b6"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#gaacbbc8ab6bd8532f8e285153470554b6">gavl_video_frame_extract_channel</a> (const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, <a class="el" href="group__video__format.html#gac25e4e4e1a7bdc0160bf0e1d6910b87c">gavl_color_channel_t</a> ch, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst)</td></tr>
<tr class="memdesc:gaacbbc8ab6bd8532f8e285153470554b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract one channel of a video frame into a grayscale image.  <a href="#gaacbbc8ab6bd8532f8e285153470554b6">More...</a><br /></td></tr>
<tr class="separator:gaacbbc8ab6bd8532f8e285153470554b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4700fc9e06cece057d1c8a9aa058c2f8"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#ga4700fc9e06cece057d1c8a9aa058c2f8">gavl_video_frame_insert_channel</a> (const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, <a class="el" href="group__video__format.html#gac25e4e4e1a7bdc0160bf0e1d6910b87c">gavl_color_channel_t</a> ch, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *src, <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *dst)</td></tr>
<tr class="memdesc:ga4700fc9e06cece057d1c8a9aa058c2f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert one channel from a grayscale image into a video frame.  <a href="#ga4700fc9e06cece057d1c8a9aa058c2f8">More...</a><br /></td></tr>
<tr class="separator:ga4700fc9e06cece057d1c8a9aa058c2f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad8987beb284d530c246c153482b322ec"><td class="memItemLeft" align="right" valign="top">GAVL_PUBLIC int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__video__frame.html#gad8987beb284d530c246c153482b322ec">gavl_video_frames_equal</a> (const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *format, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *f1, const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *f2)</td></tr>
<tr class="memdesc:gad8987beb284d530c246c153482b322ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if 2 video frames are bit-identical.  <a href="#gad8987beb284d530c246c153482b322ec">More...</a><br /></td></tr>
<tr class="separator:gad8987beb284d530c246c153482b322ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Container for video images. </p>
<p>This is the standardized method of storing one frame with video data. For planar formats, the first scanline starts at planes[0], subsequent scanlines start in intervalls of strides[0] bytes. For planar formats, planes[0] will contain the luminance channel, planes[1] contains Cb (aka U), planes[2] contains Cr (aka V).</p>
<p>Video frames are created with <a class="el" href="group__video__frame.html#gaa160f237e5de21b74844405d044e4de7">gavl_video_frame_create</a> and destroyed with <a class="el" href="group__video__frame.html#ga153d145b7b8a359aaab1c983b0b7c940">gavl_video_frame_destroy</a>. The memory can either be allocated by gavl (with memory aligned scanlines) or by the caller.</p>
<p>Gavl video frames are always oriented top-&gt;bottom left-&gt;right. If you must flip frames, use the functions <a class="el" href="group__video__frame.html#ga1914890d2e61d8667934b34662aecc0f">gavl_video_frame_copy_flip_x</a>, <a class="el" href="group__video__frame.html#ga7a24ad46c5d2c008824107d625f8b766">gavl_video_frame_copy_flip_y</a> or <a class="el" href="group__video__frame.html#ga51a06bf52d312cdc1dbfe7e4a17483ac">gavl_video_frame_copy_flip_xy</a> . </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaa160f237e5de21b74844405d044e4de7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa160f237e5de21b74844405d044e4de7">&sect;&nbsp;</a></span>gavl_video_frame_create()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a>* gavl_video_frame_create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create video frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>Format of the data to be stored in this frame or NULL</td></tr>
  </table>
  </dd>
</dl>
<p>Creates a video frame for a given format and allocates buffers for the scanlines. To create a video frame from your custom memory, pass NULL for the format and you'll get an empty frame in which you can set the pointers manually. If scanlines are allocated, they are padded to that scanlines start at certain byte boundaries (currently 8). </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a>* gavl_video_frame_create_nopad </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create video frame without padding. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>Format of the data to be stored in this frame or NULL</td></tr>
  </table>
  </dd>
</dl>
<p>Same as <a class="el" href="group__video__frame.html#gaa160f237e5de21b74844405d044e4de7">gavl_video_frame_create</a> but omits padding, so scanlines will always be adjacent in memory. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>frame</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destroy a video frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>A video frame</td></tr>
  </table>
  </dd>
</dl>
<p>Destroys a video frame and frees all associated memory. If you used your custom memory to allocate the frame, call <a class="el" href="group__video__frame.html#gab8a7c4e8c36ffc01cbc3f57ddb72d350">gavl_video_frame_null</a> before. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_null </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>frame</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Zero all pointers in the video frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>A video frame</td></tr>
  </table>
  </dd>
</dl>
<p>Zero all pointers, so <a class="el" href="group__video__frame.html#ga153d145b7b8a359aaab1c983b0b7c940">gavl_video_frame_destroy</a> won't free them. Call this for video frames, which were created with a NULL format before destroying them. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_clear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fill the frame with black color. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>A video frame </td></tr>
    <tr><td class="paramname">format</td><td>Format of the data in the frame </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_fill </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fill the frame with a user spefified color. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>A video frame </td></tr>
    <tr><td class="paramname">format</td><td>Format of the data in the frame </td></tr>
    <tr><td class="paramname">color</td><td>Color components in RGBA format scaled 0.0 .. 1.0 </td></tr>
  </table>
  </dd>
</dl>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_absdiff </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fill the frame with the absolute differene of 2 source frames. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>Format of the data in the frame </td></tr>
    <tr><td class="paramname">dst</td><td>A video frame </td></tr>
    <tr><td class="paramname">src1</td><td>First source frame </td></tr>
    <tr><td class="paramname">src2</td><td>Second source frame</td></tr>
  </table>
  </dd>
</dl>
<p>Since 1.1.1 </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_psnr </td>
          <td>(</td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>psnr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calculate the PSNR of 2 source frames. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">psnr</td><td>Returns PSNR for all components (maximum 4) </td></tr>
    <tr><td class="paramname">src1</td><td>First source frame </td></tr>
    <tr><td class="paramname">src2</td><td>Second source frame </td></tr>
    <tr><td class="paramname">format</td><td>Format of the data in the frame</td></tr>
  </table>
  </dd>
</dl>
<p>Since 1.1.1 </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int gavl_video_frame_ssim </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calculate the SSIM of 2 source frames. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src1</td><td>First source frame </td></tr>
    <tr><td class="paramname">src2</td><td>Second source frame </td></tr>
    <tr><td class="paramname">dst</td><td>Will contain the SSIM index for each pixel </td></tr>
    <tr><td class="paramname">format</td><td>Format of the data in the frame </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if the SSIM could be computed, 0 else</dd></dl>
<p>This calculates the SSIM indices of each pixel for 2 source frames and stores them into dst. The source frames must have the pixelformat <a class="el" href="group__video__format.html#ggaf1e060e38cb2d9e4e776f7eca3ec2d33acdd40c6cc16c6f44b33e0f57e2e61219">GAVL_GRAY_FLOAT</a> implying that only the luminance component is considered. The destination also has the pixelformat <a class="el" href="group__video__format.html#ggaf1e060e38cb2d9e4e776f7eca3ec2d33acdd40c6cc16c6f44b33e0f57e2e61219">GAVL_GRAY_FLOAT</a>. If other pixelformats are passed to this function it will return 0 and nothing is done.</p>
<p>The SSIM algorithm is taken from the paper "Image Quality Assessment:
From Error Visibility to Structural Similarity" by Z. Want et. al. published in IEEE Transactions on image processing, VOL. 13, NO. 4, APRIL 2004. Homepage of the author: <a href="http://www.ece.uwaterloo.ca/~z70wang/research/ssim/">http://www.ece.uwaterloo.ca/~z70wang/research/ssim/</a></p>
<p>Since 1.1.2 </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_copy </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy one video frame to another. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>The format of the frames </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">src</td><td>Source</td></tr>
  </table>
  </dd>
</dl>
<p>The source and destination formats must be identical, as this routine does no format conversion. The scanlines however can be padded differently in the source and destination. This function only copies the image data. For copying the metadata (timestamp etc.) use# <a class="el" href="group__video__frame.html#ga5a0336411fc37fc016853b68d74aef4f">gavl_video_frame_copy_metadata</a>. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_copy_plane </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>plane</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy a single plane from one video frame to another. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>The format of the frames </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">src</td><td>Source </td></tr>
    <tr><td class="paramname">plane</td><td>The plane to copy</td></tr>
  </table>
  </dd>
</dl>
<p>Like <a class="el" href="group__video__frame.html#ga0e54b4b7c23372674854ec0579fcded2">gavl_video_frame_copy</a> but copies only a single plane </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_copy_flip_x </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy one video frame to another with horizontal flipping. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>The format of the frames </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">src</td><td>Source</td></tr>
  </table>
  </dd>
</dl>
<p>Like <a class="el" href="group__video__frame.html#ga0e54b4b7c23372674854ec0579fcded2">gavl_video_frame_copy</a> but flips the image horizontally </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_copy_flip_y </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy one video frame to another with vertical flipping. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>The format of the frames </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">src</td><td>Source</td></tr>
  </table>
  </dd>
</dl>
<p>Like <a class="el" href="group__video__frame.html#ga0e54b4b7c23372674854ec0579fcded2">gavl_video_frame_copy</a> but flips the image vertically </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_copy_flip_xy </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy one video frame to another with horizontal and vertical flipping. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>The format of the frames </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">src</td><td>Source</td></tr>
  </table>
  </dd>
</dl>
<p>Like <a class="el" href="group__video__frame.html#ga0e54b4b7c23372674854ec0579fcded2">gavl_video_frame_copy</a> but flips the image both horizontally and vertically </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_copy_metadata </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy metadata of one video frame to another. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">src</td><td>Source</td></tr>
  </table>
  </dd>
</dl>
<p>This function only copies the metadata (timestamp, duration, timecode). For copying the image data use <a class="el" href="group__video__frame.html#ga0e54b4b7c23372674854ec0579fcded2">gavl_video_frame_copy</a>.</p>
<p>Since 1.1.0. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_get_subframe </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video__format.html#gaf1e060e38cb2d9e4e776f7eca3ec2d33">gavl_pixelformat_t</a>&#160;</td>
          <td class="paramname"><em>pixelformat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__rectangle__i__t.html">gavl_rectangle_i_t</a> *&#160;</td>
          <td class="paramname"><em>src_rect</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a subframe of another frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pixelformat</td><td>Pixelformat of the frames </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">src</td><td>Source </td></tr>
    <tr><td class="paramname">src_rect</td><td>Rectangular area in the source, which will be in the destination frame</td></tr>
  </table>
  </dd>
</dl>
<p>This fills the pointers of dst from src such that the dst will represent the speficied rectangular area. Note that no data are copied here. This means that dst must be created with NULL as the format argument and <a class="el" href="group__video__frame.html#gab8a7c4e8c36ffc01cbc3f57ddb72d350">gavl_video_frame_null</a> must be called before destroying dst.</p>
<p>When dealing with chroma subsampled pixelformats, you must call <a class="el" href="group__rectangle.html#ga1b56abb2a5dcf55349b29dce2d9a5d18">gavl_rectangle_i_align</a> on src_rect before. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_get_field </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__video__format.html#gaf1e060e38cb2d9e4e776f7eca3ec2d33">gavl_pixelformat_t</a>&#160;</td>
          <td class="paramname"><em>pixelformat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>field</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a field from a frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pixelformat</td><td>Pixelformat of the frames </td></tr>
    <tr><td class="paramname">dst</td><td>Destination </td></tr>
    <tr><td class="paramname">src</td><td>Source </td></tr>
    <tr><td class="paramname">field</td><td>Field index (0 = top field, 1 = bottom field)</td></tr>
  </table>
  </dd>
</dl>
<p>This fills the pointers and strides of the destination frame such that it will represent the speficied field of the source frame. Note that no data are copied here. This means that dst must be created with NULL as the format argument and <a class="el" href="group__video__frame.html#gab8a7c4e8c36ffc01cbc3f57ddb72d350">gavl_video_frame_null</a> must be called before destroying dst. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_dump </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>namebase</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Dump a video frame to files. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>Video frame to dump </td></tr>
    <tr><td class="paramname">format</td><td>Format of the video data in the frame </td></tr>
    <tr><td class="paramname">namebase</td><td>Base for the output filenames</td></tr>
  </table>
  </dd>
</dl>
<p>This is purely for debugging purposes: It dumps each plane of the frame into files &lt;namebase&gt;.p1, &lt;namebase&gt;.p2 etc </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_set_strides </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the strides according to the format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>Video frame </td></tr>
    <tr><td class="paramname">format</td><td>Format of the video data in the frame</td></tr>
  </table>
  </dd>
</dl>
<p>This sets the strides array according to the format under the assumption, that no padding is done. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC void gavl_video_frame_set_planes </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the frames according to the format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>Video frame </td></tr>
    <tr><td class="paramname">format</td><td>Format of the video data in the frame </td></tr>
    <tr><td class="paramname">buffer</td><td>Start of the first scanline of the first plane</td></tr>
  </table>
  </dd>
</dl>
<p>This sets the planes array from a raw buffer. If frame-&gt;strides[0] is zero, <a class="el" href="group__video__frame.html#ga33f1528b2a6885fe5de6fd60289287a9">gavl_video_frame_set_strides</a> is called before. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int gavl_video_frame_extract_channel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__video__format.html#gac25e4e4e1a7bdc0160bf0e1d6910b87c">gavl_color_channel_t</a>&#160;</td>
          <td class="paramname"><em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Extract one channel of a video frame into a grayscale image. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>Format of the source frame </td></tr>
    <tr><td class="paramname">ch</td><td>Channel to extract </td></tr>
    <tr><td class="paramname">src</td><td>Source frame </td></tr>
    <tr><td class="paramname">dst</td><td>Destination where the extracted channel will be copied</td></tr>
  </table>
  </dd>
</dl>
<p>This extracts one color channel into a grayscale image for separate processing. Use <a class="el" href="group__video__format.html#ga21bc1aa42164f02929b8f51ba1d8195a">gavl_get_color_channel_format</a> to obtain the format for the destination frame. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int gavl_video_frame_insert_channel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__video__format.html#gac25e4e4e1a7bdc0160bf0e1d6910b87c">gavl_color_channel_t</a>&#160;</td>
          <td class="paramname"><em>ch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Insert one channel from a grayscale image into a video frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>Format of the source frame </td></tr>
    <tr><td class="paramname">ch</td><td>Channel to merge </td></tr>
    <tr><td class="paramname">src</td><td>Source frame (grayscale image containing one chanel) </td></tr>
    <tr><td class="paramname">dst</td><td>Destination</td></tr>
  </table>
  </dd>
</dl>
<p>This inserts one color channel from a grayscale image into a video frame (overwriting the previous contents of that channel). Use <a class="el" href="group__video__format.html#ga21bc1aa42164f02929b8f51ba1d8195a">gavl_get_color_channel_format</a> to obtain the format for the source grayscale frame. </p>

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

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GAVL_PUBLIC int gavl_video_frames_equal </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__video__format.html#ga0ffc9c60fb71a5fb835e453531fd442c">gavl_video_format_t</a> *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>f1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structgavl__video__frame__t.html">gavl_video_frame_t</a> *&#160;</td>
          <td class="paramname"><em>f2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if 2 video frames are bit-identical. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>Format </td></tr>
    <tr><td class="paramname">f1</td><td>First frame </td></tr>
    <tr><td class="paramname">f2</td><td>Second frame </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if the frames are equal, 0 else</dd></dl>
<p>Since 1.2.0 </p>

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