~paparazzi-uav/paparazzi/v5.0-manual

« back to all changes in this revision

Viewing changes to sw/ext/opencv_bebop/opencv/3rdparty/openexr/IlmImf/ImfVersion.h

  • Committer: Paparazzi buildbot
  • Date: 2016-05-18 15:00:29 UTC
  • Revision ID: felix.ruess+docbot@gmail.com-20160518150029-e8lgzi5kvb4p7un9
Manual import commit 4b8bbb730080dac23cf816b98908dacfabe2a8ec from v5.0 branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
///////////////////////////////////////////////////////////////////////////
 
2
//
 
3
// Copyright (c) 2004, Industrial Light & Magic, a division of Lucas
 
4
// Digital Ltd. LLC
 
5
//
 
6
// All rights reserved.
 
7
//
 
8
// Redistribution and use in source and binary forms, with or without
 
9
// modification, are permitted provided that the following conditions are
 
10
// met:
 
11
// *       Redistributions of source code must retain the above copyright
 
12
// notice, this list of conditions and the following disclaimer.
 
13
// *       Redistributions in binary form must reproduce the above
 
14
// copyright notice, this list of conditions and the following disclaimer
 
15
// in the documentation and/or other materials provided with the
 
16
// distribution.
 
17
// *       Neither the name of Industrial Light & Magic nor the names of
 
18
// its contributors may be used to endorse or promote products derived
 
19
// from this software without specific prior written permission.
 
20
//
 
21
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
22
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
23
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
24
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
25
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
26
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
27
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
28
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
29
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
30
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
31
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
32
//
 
33
///////////////////////////////////////////////////////////////////////////
 
34
 
 
35
 
 
36
#ifndef INCLUDED_IMF_VERSION_H
 
37
#define INCLUDED_IMF_VERSION_H
 
38
 
 
39
//-----------------------------------------------------------------------------
 
40
//
 
41
//      Magic and version number.
 
42
//
 
43
//-----------------------------------------------------------------------------
 
44
 
 
45
 
 
46
namespace Imf {
 
47
 
 
48
 
 
49
//
 
50
// The MAGIC number is stored in the first four bytes of every
 
51
// OpenEXR image file.  This can be used to quickly test whether
 
52
// a given file is an OpenEXR image file (see isImfMagic(), below).
 
53
//
 
54
 
 
55
const int MAGIC = 20000630;
 
56
 
 
57
 
 
58
//
 
59
// The second item in each OpenEXR image file, right after the
 
60
// magic number, is a four-byte file version identifier.  Depending
 
61
// on a file's version identifier, a file reader can enable various
 
62
// backwards-compatibility switches, or it can quickly reject files
 
63
// that it cannot read.
 
64
//
 
65
// The version identifier is split into an 8-bit version number,
 
66
// and a 24-bit flags field.
 
67
//
 
68
 
 
69
const int VERSION_NUMBER_FIELD  = 0x000000ff;
 
70
const int VERSION_FLAGS_FIELD   = 0xffffff00;
 
71
 
 
72
 
 
73
//
 
74
// Value that goes into VERSION_NUMBER_FIELD.
 
75
//
 
76
 
 
77
const int EXR_VERSION           = 2;
 
78
 
 
79
 
 
80
//
 
81
// Flags that can go into VERSION_FLAGS_FIELD.
 
82
// Flags can only occupy the 1 bits in VERSION_FLAGS_FIELD.
 
83
//
 
84
 
 
85
const int TILED_FLAG            = 0x00000200;   // File is tiled
 
86
 
 
87
const int LONG_NAMES_FLAG       = 0x00000400;   // File contains long
 
88
                                                // attribute or channel
 
89
                                                // names
 
90
 
 
91
//
 
92
// Bitwise OR of all known flags.
 
93
//
 
94
 
 
95
const int ALL_FLAGS             = TILED_FLAG | LONG_NAMES_FLAG;
 
96
 
 
97
 
 
98
//
 
99
// Utility functions
 
100
//
 
101
 
 
102
inline bool  isTiled (int version)      {return !!(version & TILED_FLAG);}
 
103
inline int   makeTiled (int version)    {return version | TILED_FLAG;}
 
104
inline int   makeNotTiled (int version) {return version & ~TILED_FLAG;}
 
105
inline int   getVersion (int version)   {return version & VERSION_NUMBER_FIELD;}
 
106
inline int   getFlags (int version)     {return version & VERSION_FLAGS_FIELD;}
 
107
inline bool  supportsFlags (int flags)  {return !(flags & ~ALL_FLAGS);}
 
108
 
 
109
 
 
110
//
 
111
// Given the first four bytes of a file, returns true if the
 
112
// file is probably an OpenEXR image file, false if not.
 
113
//
 
114
 
 
115
bool         isImfMagic (const char bytes[4]);
 
116
 
 
117
 
 
118
} // namespace Imf
 
119
 
 
120
#endif