[1.5] Adding some simple unit tests
[openjpeg.git] / libopenjpeg / raw.h
index eede21a5ac34361f337f2ac4466135ed485a72bd..3c4b372f3f6182fbcc2cea57203144db4d2d848b 100644 (file)
@@ -1,6 +1,8 @@
 /*
- * Copyright (c) 2002-2003, Antonin Descampe
- * Copyright (c) 2002-2003,  Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium
+ * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2007, Professor Benoit Macq
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2005, Herve Drolon, FreeImage Team
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
- */  
-       
+ */
+
 #ifndef __RAW_H
 #define __RAW_H
-       
-/*
- * Return the number of bytes written/read since initialisation
- */ 
-int raw_numbytes();
-
-
-/*
- * Initialize the encoder
- * bp: pointer to the start of the buffer where the bytes will be written
- */ 
-void raw_init_enc(unsigned char *bp);
+/**
+@file raw.h
+@brief Implementation of operations for raw encoding (RAW)
 
+The functions in RAW.C have for goal to realize the operation of raw encoding linked
+with the corresponding mode switch.
+*/
 
-/*
- * Encode a bit
- * d: bit to encode (0 or 1)
- */ 
-void raw_encode(int d);
+/** @defgroup RAW RAW - Implementation of operations for raw encoding */
+/*@{*/
 
+/**
+RAW encoding operations
+*/
+typedef struct opj_raw {
+       /** temporary buffer where bits are coded or decoded */
+       unsigned char c;
+       /** number of bits already read or free to write */
+       unsigned int ct;
+       /** maximum length to decode */
+       unsigned int lenmax;
+       /** length decoded */
+       unsigned int len;
+       /** pointer to the current position in the buffer */
+       unsigned char *bp;
+       /** pointer to the start of the buffer */
+       unsigned char *start;
+       /** pointer to the end of the buffer */
+       unsigned char *end;
+} opj_raw_t;
 
-/*
- * Flush the encoder, so that all remaining data is written
- */ 
-void raw_flush();
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Create a new RAW handle 
+@return Returns a new RAW handle if successful, returns NULL otherwise
+*/
+opj_raw_t* raw_create(void);
+/**
+Destroy a previously created RAW handle
+@param raw RAW handle to destroy
+*/
+void raw_destroy(opj_raw_t *raw);
+/**
+Return the number of bytes written/read since initialisation
+@param raw RAW handle to destroy
+@return Returns the number of bytes already encoded
+*/
+int raw_numbytes(opj_raw_t *raw);
+/**
+Initialize the decoder
+@param raw RAW handle
+@param bp Pointer to the start of the buffer from which the bytes will be read
+@param len Length of the input buffer
+*/
+void raw_init_dec(opj_raw_t *raw, unsigned char *bp, int len);
+/**
+Decode a symbol using raw-decoder. Cfr p.506 TAUBMAN
+@param raw RAW handle
+@return Returns the decoded symbol (0 or 1)
+*/
+int raw_decode(opj_raw_t *raw);
+/* ----------------------------------------------------------------------- */
+/*@}*/
 
+/*@}*/
 
-/*
- * Initialize the decoder
- * bp: pointer to the start of the buffer from which the bytes will be read
- * len: length of the input buffer
- */ 
-void raw_init_dec(unsigned char *bp, int len);
-
-
-/*
- * Decode a bit (returns 0 or 1)
- */ 
-int raw_decode();
-
-
-#endif /* 
- */
+#endif /* __RAW_H */