Statistics
| Revision:

root / branches / v05 / libraries / libjni-ecwcompress / include / include-sdk / NCSJPCPOCMarker.h @ 38532

History | View | Annotate | Download (2.66 KB)

1
/********************************************************
2
** Copyright 2002 Earth Resource Mapping Ltd.
3
** This document contains proprietary source code of
4
** Earth Resource Mapping Ltd, and can only be used under
5
** one of the three licenses as described in the 
6
** license.txt file supplied with this distribution. 
7
** See separate license.txt file for license details 
8
** and conditions.
9
**
10
** This software is covered by US patent #6,442,298,
11
** #6,102,897 and #6,633,688.  Rights to use these patents 
12
** is included in the license agreements.
13
**
14
** FILE:     $Archive: /NCS/Source/include/NCSJPCPOCMarker.h $
15
** CREATED:  18/12/2002 3:27:34 PM
16
** AUTHOR:   Simon Cope
17
** PURPOSE:  CNCSJPCPOCMarker class header
18
** EDITS:    [xx] ddMmmyy NAME COMMENTS
19
 *******************************************************/
20

    
21
#ifndef NCSJPCPOCMARKER_H
22
#define NCSJPCPOCMARKER_H
23

    
24
#include "NCSJPCMarker.h"
25
#include "NCSJPCProgressionOrderType.h"
26

    
27
        /**
28
         * CNCSJPCPOCMarker class - the JPC POC marker.
29
         * 
30
         * @author       Simon Cope
31
         * @version      $Revision: 3538 $ $Author: nacho $ $Date: 2006-01-09 12:56:54 +0100 (Mon, 09 Jan 2006) $ 
32
         */        
33
class NCSJPC_EXPORT_ALL CNCSJPCPOCMarker: public CNCSJPCMarker {
34
public:
35

    
36

    
37
                /** Information for each progression order change */
38
        typedef struct {
39
                        /** Resolution level index (inclusive) for progression start */
40
                UINT8                m_nRSpoc;        
41
                        /** Component index (inclusive) for progression start */
42
                UINT16                m_nCSpoc;
43
                        /** Layer index (exclusive) for the end of progression  */
44
                UINT16                m_nLYEpoc;
45
                        /** Resolution Level index (exclusive) for the end of progression */
46
                UINT8                m_nREpoc;
47
                        /**        Component index (exclusive) for the end of progression */
48
                UINT16                m_nCEpoc;
49
                        /** Progression order */
50
                CNCSJPCProgressionOrderType        m_Ppoc;
51
        } ProgressionOrder;
52

    
53
                /** The progression order changes */
54
        std::vector<ProgressionOrder> m_Progressions;
55

    
56
                /** Current active Progression index */
57
        UINT16        m_nCurProgression;
58

    
59
                /** Default constructor, initialises members */
60
        CNCSJPCPOCMarker();
61
                /** Virtual destructor */
62
        virtual ~CNCSJPCPOCMarker();
63

    
64
                /** 
65
                 * Parse the marker from the JPC codestream.
66
                 * @param                JPC                        CNCSJPC to use to parse file.
67
                 * @param                Stream                IOStream to use to parse file.
68
                 * @return      CNCSError        NCS_SUCCESS, or Error code on failure.
69
                 */
70
        virtual CNCSError Parse(class CNCSJPC &JPC, CNCSJPCIOStream &Stream);
71
#ifndef NCSJPC_LEAN_AND_MEAN
72
                /** 
73
                 * UnParse the marker to the JPC codestream.
74
                 * @param                Stream                IOStream to use to parse file.
75
                 * @param                JPC                        CNCSJPC to use to parse file.
76
                 * @return      CNCSError        NCS_SUCCESS, or Error code on failure.
77
                 */
78
        virtual CNCSError UnParse(class CNCSJPC &JPC, CNCSJPCIOStream &Stream);
79
#endif //!NCSJPC_LEAN_AND_MEAN
80
};
81

    
82

    
83
#endif // !NCSJPCPOCMARKER_H