[trunk] rename opj_create_decompress_v2 to opj_create_decompress
[openjpeg.git] / libopenjpeg / tcd.h
index 5e65a0371507b459c3a503ff2e88ac57f670eb01..bd2fe69efcd42d2175a19fcb1e3606d2d6491ce9 100644 (file)
@@ -34,8 +34,8 @@
 @file tcd.h
 @brief Implementation of a tile coder/decoder (TCD)
 
-The functions in TCD.C have for goal to encode or decode each tile independently from
-each other. The functions in TCD.C are used by some function in J2K.C.
+The functions in TCD.C encode or decode each tile independently from
+each other. The functions in TCD.C are used by other functions in J2K.C.
 */
 
 /** @defgroup TCD TCD - Implementation of a tile coder/decoder */
@@ -44,15 +44,15 @@ each other. The functions in TCD.C are used by some function in J2K.C.
 /**
 FIXME: documentation
 */
-//typedef struct opj_tcd_seg {
-//  unsigned char** data;
-//  int dataindex;
-//  int numpasses;
-//  int len;
-//  int maxpasses;
-//  int numnewpasses;
-//  int newlen;
-//} opj_tcd_seg_t;
+/*typedef struct opj_tcd_seg { */
+/*  unsigned char** data; */
+/*  int dataindex; */
+/*  int numpasses; */
+/*  int len; */
+/*  int maxpasses; */
+/*  int numnewpasses; */
+/*  int newlen; */
+/*} opj_tcd_seg_t; */
 
 /**
 FIXME: documentation
@@ -126,7 +126,7 @@ typedef struct opj_tcd_cblk_enc_v2 {
 
 typedef struct opj_tcd_cblk_dec {
   unsigned char* data; /* Data */
-  opj_tcd_seg_t* segs;         /* segments informations */
+  opj_tcd_seg_t* segs;         /* segments information */
        int x0, y0, x1, y1;             /* dimension of the code-blocks : left upper corner (x0, y0) right low corner (x1,y1) */
   int numbps;
   int numlenbits;
@@ -138,7 +138,7 @@ typedef struct opj_tcd_cblk_dec {
 
 typedef struct opj_tcd_cblk_dec_v2 {
        OPJ_BYTE * data;                                /* Data */
-       opj_tcd_seg_t* segs;                    /* segments informations */
+       opj_tcd_seg_t* segs;                    /* segments information */
        OPJ_INT32 x0, y0, x1, y1;               /* dimension of the code-blocks : left upper corner (x0, y0) right low corner (x1,y1) */
        OPJ_UINT32 numbps;
        OPJ_UINT32 numlenbits;
@@ -154,8 +154,8 @@ FIXME: documentation
 */
 typedef struct opj_tcd_precinct {
   int x0, y0, x1, y1;          /* dimension of the precinct : left upper corner (x0, y0) right low corner (x1,y1) */
-  int cw, ch;                  /* number of precinct in width and heigth */
-  union{               /* code-blocks informations */
+  int cw, ch;                  /* number of precinct in width and height */
+  union{               /* code-blocks information */
          opj_tcd_cblk_enc_t* enc;
          opj_tcd_cblk_dec_t* dec;
   } cblks;
@@ -166,8 +166,8 @@ typedef struct opj_tcd_precinct {
 
 typedef struct opj_tcd_precinct_v2 {
        OPJ_INT32 x0, y0, x1, y1;               /* dimension of the precinct : left upper corner (x0, y0) right low corner (x1,y1) */
-       OPJ_UINT32 cw, ch;                              /* number of precinct in width and heigth */
-       union{                                                  /* code-blocks informations */
+       OPJ_UINT32 cw, ch;                              /* number of precinct in width and height */
+       union{                                                  /* code-blocks information */
                opj_tcd_cblk_enc_v2_t* enc;
                opj_tcd_cblk_dec_v2_t* dec;
        } cblks;
@@ -266,7 +266,7 @@ typedef struct opj_tcd_tile_v2 {
 FIXME: documentation
 */
 typedef struct opj_tcd_image {
-  int tw, th;                  /* number of tiles in width and heigth */
+  int tw, th;                  /* number of tiles in width and height */
   opj_tcd_tile_t *tiles;               /* Tiles information */
 } opj_tcd_image_t;
 
@@ -371,11 +371,10 @@ Destroy a previously created TCD handle
 void tcd_destroy_v2(opj_tcd_v2_t *tcd);
 
 /**
- * Initialize the tile coder and may reuse some meory.
+ * Initialize the tile coder and may reuse some memory.
  * @param      p_tcd           TCD handle.
  * @param      p_image         raw image.
  * @param      p_cp            coding parameters.
- * @param      p_tile_no       current tile index to encode.
  *
  * @return true if the encoding values could be set (false otherwise).
 */
@@ -388,13 +387,10 @@ opj_bool tcd_init_v2(     opj_tcd_v2_t *p_tcd,
  * Allocates memory for decoding a specific tile.
  *
  * @param      p_tcd           the tile decoder.
- * @param      p_image         the image to decode.
- * @param      p_cp            the decoding parameters.
- * @param      p_tile_no       the index of the tile received in sequence. This not necesseraly lead to the
+ * @param      p_tile_no       the index of the tile received in sequence. This not necessarily lead to the
  * tile at index p_tile_no.
- * @param      p_cstr_info     codestream info (if any).
  *
- * @return     true if the remaining data is sufficient.s
+ * @return     true if the remaining data is sufficient.
  */
 opj_bool tcd_init_decode_tile(
                                                        opj_tcd_v2_t *p_tcd,
@@ -435,10 +431,28 @@ Initialize the tile decoder
 */
 void tcd_malloc_decode(opj_tcd_t *tcd, opj_image_t * image, opj_cp_t * cp);
 void tcd_malloc_decode_tile(opj_tcd_t *tcd, opj_image_t * image, opj_cp_t * cp, int tileno, opj_codestream_info_t *cstr_info);
+
 void tcd_makelayer_fixed(opj_tcd_t *tcd, int layno, int final);
+void tcd_makelayer_fixed_v2(opj_tcd_v2_t *tcd, OPJ_UINT32 layno, OPJ_UINT32 final);
+
 void tcd_rateallocate_fixed(opj_tcd_t *tcd);
+void tcd_rateallocate_fixed_v2(opj_tcd_v2_t *tcd);
+
 void tcd_makelayer(opj_tcd_t *tcd, int layno, double thresh, int final);
+
+void tcd_makelayer_v2( opj_tcd_v2_t *tcd,
+                                               OPJ_UINT32 layno,
+                                               OPJ_FLOAT64 thresh,
+                                               OPJ_UINT32 final);
+
 opj_bool tcd_rateallocate(opj_tcd_t *tcd, unsigned char *dest, int len, opj_codestream_info_t *cstr_info);
+
+opj_bool tcd_rateallocate_v2(  opj_tcd_v2_t *tcd,
+                                                               OPJ_BYTE *dest,
+                                                               OPJ_UINT32 * p_data_written,
+                                                               OPJ_UINT32 len,
+                                                               opj_codestream_info_t *cstr_info);
+
 /**
 Encode a tile from the raw image into a buffer
 @param tcd TCD handle
@@ -473,6 +487,24 @@ OPJ_UINT32 tcd_get_decoded_tile_size (
                                                 opj_tcd_v2_t *p_tcd
                                                 );
 
+/**
+ * Encodes a tile from the raw image into the given buffer.
+ * @param      p_tcd                   Tile Coder handle
+ * @param      p_tile_no               Index of the tile to encode.
+ * @param      p_dest                  Destination buffer
+ * @param      p_data_written  pointer to an int that is incremented by the number of bytes really written on p_dest
+ * @param      p_len                   Maximum length of the destination buffer
+ * @param      p_cstr_info             Codestream information structure
+ * @return  true if the coding is successfull.
+*/
+opj_bool tcd_encode_tile_v2(opj_tcd_v2_t *p_tcd,
+                                                       OPJ_UINT32 p_tile_no,
+                                                       OPJ_BYTE *p_dest,
+                                                       OPJ_UINT32 * p_data_written,
+                                                       OPJ_UINT32 p_len,
+                                                       struct opj_codestream_info *p_cstr_info);
+
+
 /**
 Decode a tile from a buffer into a raw image
 @param tcd TCD handle
@@ -490,11 +522,33 @@ opj_bool tcd_decode_tile_v2(opj_tcd_v2_t *tcd,
 /**
  * Copies tile data from the system onto the given memory block.
  */
-opj_bool tcd_update_tile_data (
-                                                opj_tcd_v2_t *p_tcd,
-                                                OPJ_BYTE * p_dest,
-                                                OPJ_UINT32 p_dest_length
-                                                );
+opj_bool tcd_update_tile_data (        opj_tcd_v2_t *p_tcd,
+                                                               OPJ_BYTE * p_dest,
+                                                               OPJ_UINT32 p_dest_length );
+
+/**
+ *
+ */
+OPJ_UINT32 tcd_get_encoded_tile_size ( opj_tcd_v2_t *p_tcd );
+
+/**
+ * Initialize the tile coder and may reuse some meory.
+ * @param      p_tcd           TCD handle.
+ * @param      p_image         raw image.
+ * @param      p_cp            coding parameters.
+ * @param      p_tile_no       current tile index to encode.
+ *
+ * @return true if the encoding values could be set (false otherwise).
+*/
+opj_bool tcd_init_encode_tile (        opj_tcd_v2_t *p_tcd,
+                                                               OPJ_UINT32 p_tile_no );
+
+/**
+ * Copies tile data from the given memory block onto the system.
+ */
+opj_bool tcd_copy_tile_data (opj_tcd_v2_t *p_tcd,
+                                                        OPJ_BYTE * p_src,
+                                                        OPJ_UINT32 p_src_length );
 
 /* ----------------------------------------------------------------------- */
 /*@}*/