Sophie

Sophie

distrib > Mageia > 6 > x86_64 > media > core-updates > by-pkgid > 81f8f8cab415e843eef59cf17d943f66 > files > 97

lib64exif-devel-0.6.21-9.3.mga6.x86_64.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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>EXIF library (libexif) API: The libexif library</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</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">EXIF library (libexif) API
   &#160;<span id="projectnumber">0.6.21</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<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 id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('index.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">The libexif library </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="general_notes"></a>
General Notes</h1>
<p>This documentation is work in progress, as is the code itself.</p>
<h1><a class="anchor" id="using_libexif"></a>
Using libexif</h1>
<p>#include &lt;<a class="el" href="exif-data_8h.html" title="Defines the ExifData type and the associated functions. ">libexif/exif-data.h</a>&gt;</p>
<p>libexif provides a libexif.pc file for use with pkgconfig on the libexif installation. If you are using libtool to build your package, you can also make use of libexif-uninstalled.pc.</p>
<p>An application using libexif would typically first create an <a class="el" href="exif-loader_8h.html#a2b96cbffaf0f92340a960f887026eced" title="Data used by the loader interface. ">ExifLoader</a> to load EXIF data into memory. From there, it would extract that data as an <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image. ">ExifData</a> to start manipulating it. Each IFD is represented by its own <a class="el" href="exif-content_8h.html#ac046cba2f9c5cfabf3ad443303090855" title="Holds all EXIF tags in a single IFD. ">ExifContent</a> within that <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image. ">ExifData</a>, which contains all the tag data in <a class="el" href="exif-entry_8h.html#a1629f9c1b9c17765f4e5b297f91a6e45" title="Data found in one EXIF tag. ">ExifEntry</a> form. If the MakerNote data is required, an <a class="el" href="exif-mnote-data_8h.html#ad274692c704f570122329ef1ab32ed31" title="Data found in the MakerNote tag. ">ExifMnoteData</a> can be extracted from the <a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image. ">ExifData</a> and manipulated with the MakerNote functions.</p>
<p>libexif is written in C using an object-based style that defines sets of functions that operate on each data structure.</p>
<h1><a class="anchor" id="data_structures"></a>
Primary Data Structures</h1>
<p><a class="el" href="exif-loader_8h.html#a2b96cbffaf0f92340a960f887026eced" title="Data used by the loader interface. ">ExifLoader</a> State maintained by the loader interface while importing EXIF data from an external file or memory</p>
<p><a class="el" href="exif-data_8h.html#ae62aab6698d7c078e38cd445ddcb8abf" title="Represents the entire EXIF data found in an image. ">ExifData</a> The entirety of EXIF data found in an image</p>
<p><a class="el" href="exif-content_8h.html#ac046cba2f9c5cfabf3ad443303090855" title="Holds all EXIF tags in a single IFD. ">ExifContent</a> All EXIF tags in a single IFD</p>
<p><a class="el" href="exif-entry_8h.html#a1629f9c1b9c17765f4e5b297f91a6e45" title="Data found in one EXIF tag. ">ExifEntry</a> Data found in a single EXIF tag</p>
<p><a class="el" href="exif-mnote-data_8h.html#ad274692c704f570122329ef1ab32ed31" title="Data found in the MakerNote tag. ">ExifMnoteData</a> All data found in the MakerNote tag</p>
<p><a class="el" href="exif-log_8h.html#a6b225115984bb2016282923cb487f16b" title="State maintained by the logging interface. ">ExifLog</a> State maintained by the logging interface</p>
<h1><a class="anchor" id="string_conventions"></a>
String Conventions</h1>
<p>Strings are 8 bit characters ("char*"). When libexif is compiled with NLS, character set and encoding are as set in the current locale, except for strings that come directly from the data in EXIF tags which are generally returned in raw form. Most EXIF strings are defined to be plain 7-bit ASCII so this raw form should be acceptable in any UNIX locale, but some software ignores the specification and writes 8-bit characters. It is up to the application to detect this and deal with it intelligently.</p>
<h1><a class="anchor" id="memory_management"></a>
Memory Management Patterns</h1>
<p>For pointers to data objects, libexif uses reference counting. The pattern is to use the foo_new() function to create a data object, foo_ref() to increase the reference counter, and foo_unref() to decrease the reference counter and possibly free(3)ing the memory.</p>
<p>Libexif by default relies on the calloc(3), realloc(3), and free(3) functions, but the libexif user can tell libexif to use their special memory management functions at runtime.</p>
<h1><a class="anchor" id="thread_safety"></a>
Thread Safety</h1>
<p>libexif is thread safe when the underlying C library is also thread safe. Some C libraries may require defining a special macro (like _REENTRANT) to ensure this, or may require linking to a special thread-safe version of the library.</p>
<p>The programmer must ensure that each object allocated by libexif is only used in a single thread at once. For example, an ExifData* allocated in one thread can't be used in a second thread if there is any chance that the first thread could use it at the same time. Multiple threads can use libexif without issues if they never share handles. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>