1 /*  Copyright (c) MediaArea.net SARL. All Rights Reserved.
2  *
3  *  Use of this source code is governed by a BSD-style license that can
4  *  be found in the License.html file in the root of the source tree.
5  */
6 
7 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8 //
9 // Information about EXR files
10 //
11 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12 
13 //---------------------------------------------------------------------------
14 #ifndef MediaInfo_File_ExrH
15 #define MediaInfo_File_ExrH
16 //---------------------------------------------------------------------------
17 
18 //---------------------------------------------------------------------------
19 #include "MediaInfo/File__Analyze.h"
20 //---------------------------------------------------------------------------
21 
22 namespace MediaInfoLib
23 {
24 
25 //***************************************************************************
26 // Class File_Exr
27 //***************************************************************************
28 
29 class File_Exr : public File__Analyze
30 {
31 public :
32     //Constructor/Destructor
33     File_Exr();
34 
35 private :
36     //Streams management
37     void Streams_Accept();
38 
39     //Buffer - Demux
40     #if MEDIAINFO_DEMUX
Demux_UnpacketizeContainer_Test()41     bool Demux_UnpacketizeContainer_Test() {return Demux_UnpacketizeContainer_Test_OneFramePerFile();}
42     #endif //MEDIAINFO_DEMUX
43 
44     //Buffer - File header
45     bool FileHeader_Begin();
46     void FileHeader_Parse();
47 
48     //Buffer - Global
Read_Buffer_Unsynched()49     void Read_Buffer_Unsynched() {Read_Buffer_Unsynched_OneFramePerFile();}
50     #if MEDIAINFO_SEEK
Read_Buffer_Seek(size_t Method,int64u Value,int64u ID)51     size_t Read_Buffer_Seek (size_t Method, int64u Value, int64u ID) {return Read_Buffer_Seek_OneFramePerFile(Method, Value, ID);}
52     #endif //MEDIAINFO_SEEK
53 
54     //Buffer - Per element
55     bool Header_Begin();
56     void Header_Parse();
57     void Data_Parse();
58 
59     //Elements
60     void ImageData();
61     void channels();
62     void comments();
63     void compression();
64     void dataWindow();
65     void displayWindow();
66     void pixelAspectRatio();
67 
68     //Temp
69     std::string         name;
70     std::string         type;
71     size_t              name_End;
72     size_t              type_End;
73     int64u              ImageData_End;
74     bool                LongName;
75 };
76 
77 } //NameSpace
78 
79 #endif
80