MrSID Decode SDK for Raster Reference Manual  9.5.1.4427
lti_imageWriter.h
Go to the documentation of this file.
1 /* $Id$ */
2 /* //////////////////////////////////////////////////////////////////////////
3 // //
4 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, //
5 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
6 // prohibited. Access to and use of this code is permitted only under //
7 // license from LizardTech, Inc. Portions of the code are protected by //
8 // US and foreign patents and other filings. All Rights Reserved. //
9 // //
11 /* PUBLIC */
12 
13 #ifndef LTI_IMAGEWRITER_H
14 #define LTI_IMAGEWRITER_H
15 
16 // lt_lib_mrsid_core
17 #include "lti_types.h"
18 
19 #include <stdlib.h>
20 
21 LT_BEGIN_NAMESPACE(LizardTech)
22 
23 
24 
32 {
33  LT_DISALLOW_COPY_CONSTRUCTOR(LTIImageWriter);
34 public:
35  virtual ~LTIImageWriter();
36 
53  virtual LT_STATUS write(const LTIScene& scene);
54 
69  virtual LT_STATUS writeBegin(const LTIScene& scene) = 0;
70 
84  virtual LT_STATUS writeStrip(LTISceneBuffer& stripBuffer,
85  const LTIScene& stripScene) = 0;
86 
98  virtual LT_STATUS writeEnd(void) = 0;
99 
111  virtual LT_STATUS deleteOutput(void) = 0;
112 
123  LT_STATUS setStripHeight(lt_uint32 stripHeight);
124 
132  lt_uint32 getStripHeight(void) const;
133 
144  virtual lt_uint32 getDefaultStripHeight(void) const;
145 
155  virtual lt_int64 getEncodingCost(const LTIScene& scene) const;
156 
171  void setProgressDelegate(LTIProgressDelegate* delegate);
172 
187  void setInterruptDelegate(LTIInterruptDelegate* delegate);
188 
189 
196  const LTIImageStage *getSourceImageStage(void) const;
197 
211  LTIProgressDelegate* getProgressDelegate(void) const;
212 
226  LTIInterruptDelegate* getInterruptDelegate(void) const;
227 
238  virtual LT_STATUS setEncodingApplication(const char *name,
239  const char *version,
240  const char *comment = NULL);
241 protected:
242  LTIImageWriter(void);
251  LT_STATUS init(LTIImageStage *imageStage);
252  LT_STATUS writeCleanup(LT_STATUS sts);
253 
255 
256 private:
257  LT_STATUS checkDelegates(const LTIScene& fullScene,
258  const LTIScene* currScene,
259  bool atEnd);
260 
261  lt_uint32 m_stripHeight;
262 
263  LTIProgressDelegate* m_progressDelegate;
264  LTIInterruptDelegate* m_interruptDelegate;
265 };
266 
267 
268 LT_END_NAMESPACE(LizardTech)
269 
270 
271 #endif // LTI_IMAGEWRITER_H

LizardTech