xref: /aosp_15_r20/external/sandboxed-api/oss-internship-2020/openjpeg/examples/convert_h.patch (revision ec63e07ab9515d95e79c211197c445ef84cefa6a)
1*ec63e07aSXin Li--- convert.h	2020-08-27 15:46:45.028628305 +0000
2*ec63e07aSXin Li+++ convert_helper.h	2020-08-27 14:26:02.155455250 +0000
3*ec63e07aSXin Li@@ -1,126 +1,8 @@
4*ec63e07aSXin Li-/*
5*ec63e07aSXin Li- * The copyright in this software is being made available under the 2-clauses
6*ec63e07aSXin Li- * BSD License, included below. This software may be subject to other third
7*ec63e07aSXin Li- * party and contributor rights, including patent rights, and no such rights
8*ec63e07aSXin Li- * are granted under this license.
9*ec63e07aSXin Li- *
10*ec63e07aSXin Li- * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
11*ec63e07aSXin Li- * Copyright (c) 2002-2014, Professor Benoit Macq
12*ec63e07aSXin Li- * Copyright (c) 2001-2003, David Janssens
13*ec63e07aSXin Li- * Copyright (c) 2002-2003, Yannick Verschueren
14*ec63e07aSXin Li- * Copyright (c) 2003-2007, Francois-Olivier Devaux
15*ec63e07aSXin Li- * Copyright (c) 2003-2014, Antonin Descampe
16*ec63e07aSXin Li- * Copyright (c) 2005, Herve Drolon, FreeImage Team
17*ec63e07aSXin Li- * All rights reserved.
18*ec63e07aSXin Li- *
19*ec63e07aSXin Li- * Redistribution and use in source and binary forms, with or without
20*ec63e07aSXin Li- * modification, are permitted provided that the following conditions
21*ec63e07aSXin Li- * are met:
22*ec63e07aSXin Li- * 1. Redistributions of source code must retain the above copyright
23*ec63e07aSXin Li- *    notice, this list of conditions and the following disclaimer.
24*ec63e07aSXin Li- * 2. Redistributions in binary form must reproduce the above copyright
25*ec63e07aSXin Li- *    notice, this list of conditions and the following disclaimer in the
26*ec63e07aSXin Li- *    documentation and/or other materials provided with the distribution.
27*ec63e07aSXin Li- *
28*ec63e07aSXin Li- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
29*ec63e07aSXin Li- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30*ec63e07aSXin Li- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31*ec63e07aSXin Li- * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
32*ec63e07aSXin Li- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
33*ec63e07aSXin Li- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
34*ec63e07aSXin Li- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
35*ec63e07aSXin Li- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
36*ec63e07aSXin Li- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
37*ec63e07aSXin Li- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38*ec63e07aSXin Li- * POSSIBILITY OF SUCH DAMAGE.
39*ec63e07aSXin Li- */
40*ec63e07aSXin Li-#ifndef __J2K_CONVERT_H
41*ec63e07aSXin Li-#define __J2K_CONVERT_H
42*ec63e07aSXin Li+// imagetopnm and the two functions it calls internaly are patched
43*ec63e07aSXin Li+// versions of the library's tools; from openjpeg/src/bin/jp2/convert.c
44*ec63e07aSXin Li
45*ec63e07aSXin Li-/**@name RAW component encoding parameters */
46*ec63e07aSXin Li-/*@{*/
47*ec63e07aSXin Li-typedef struct raw_comp_cparameters {
48*ec63e07aSXin Li-    /** subsampling in X direction */
49*ec63e07aSXin Li-    int dx;
50*ec63e07aSXin Li-    /** subsampling in Y direction */
51*ec63e07aSXin Li-    int dy;
52*ec63e07aSXin Li-    /*@}*/
53*ec63e07aSXin Li-} raw_comp_cparameters_t;
54*ec63e07aSXin Li-
55*ec63e07aSXin Li-/**@name RAW image encoding parameters */
56*ec63e07aSXin Li-/*@{*/
57*ec63e07aSXin Li-typedef struct raw_cparameters {
58*ec63e07aSXin Li-    /** width of the raw image */
59*ec63e07aSXin Li-    int rawWidth;
60*ec63e07aSXin Li-    /** height of the raw image */
61*ec63e07aSXin Li-    int rawHeight;
62*ec63e07aSXin Li-    /** number of components of the raw image */
63*ec63e07aSXin Li-    int rawComp;
64*ec63e07aSXin Li-    /** bit depth of the raw image */
65*ec63e07aSXin Li-    int rawBitDepth;
66*ec63e07aSXin Li-    /** signed/unsigned raw image */
67*ec63e07aSXin Li-    OPJ_BOOL rawSigned;
68*ec63e07aSXin Li-    /** raw components parameters */
69*ec63e07aSXin Li-    raw_comp_cparameters_t *rawComps;
70*ec63e07aSXin Li-    /*@}*/
71*ec63e07aSXin Li-} raw_cparameters_t;
72*ec63e07aSXin Li-
73*ec63e07aSXin Li-/* Component precision clipping */
74*ec63e07aSXin Li-void clip_component(opj_image_comp_t* component, OPJ_UINT32 precision);
75*ec63e07aSXin Li-/* Component precision scaling */
76*ec63e07aSXin Li-void scale_component(opj_image_comp_t* component, OPJ_UINT32 precision);
77*ec63e07aSXin Li-
78*ec63e07aSXin Li-/* planar / interleaved conversions */
79*ec63e07aSXin Li-typedef void (* convert_32s_CXPX)(const OPJ_INT32* pSrc, OPJ_INT32* const* pDst,
80*ec63e07aSXin Li-                                  OPJ_SIZE_T length);
81*ec63e07aSXin Li-extern const convert_32s_CXPX convert_32s_CXPX_LUT[5];
82*ec63e07aSXin Li-typedef void (* convert_32s_PXCX)(OPJ_INT32 const* const* pSrc, OPJ_INT32* pDst,
83*ec63e07aSXin Li-                                  OPJ_SIZE_T length, OPJ_INT32 adjust);
84*ec63e07aSXin Li-extern const convert_32s_PXCX convert_32s_PXCX_LUT[5];
85*ec63e07aSXin Li-/* bit depth conversions */
86*ec63e07aSXin Li-typedef void (* convert_XXx32s_C1R)(const OPJ_BYTE* pSrc, OPJ_INT32* pDst,
87*ec63e07aSXin Li-                                    OPJ_SIZE_T length);
88*ec63e07aSXin Li-extern const convert_XXx32s_C1R convert_XXu32s_C1R_LUT[9]; /* up to 8bpp */
89*ec63e07aSXin Li-typedef void (* convert_32sXXx_C1R)(const OPJ_INT32* pSrc, OPJ_BYTE* pDst,
90*ec63e07aSXin Li-                                    OPJ_SIZE_T length);
91*ec63e07aSXin Li-extern const convert_32sXXx_C1R convert_32sXXu_C1R_LUT[9]; /* up to 8bpp */
92*ec63e07aSXin Li-
93*ec63e07aSXin Li-
94*ec63e07aSXin Li-/* TGA conversion */
95*ec63e07aSXin Li-opj_image_t* tgatoimage(const char *filename, opj_cparameters_t *parameters);
96*ec63e07aSXin Li-int imagetotga(opj_image_t * image, const char *outfile);
97*ec63e07aSXin Li-
98*ec63e07aSXin Li-/* BMP conversion */
99*ec63e07aSXin Li-opj_image_t* bmptoimage(const char *filename, opj_cparameters_t *parameters);
100*ec63e07aSXin Li-int imagetobmp(opj_image_t *image, const char *outfile);
101*ec63e07aSXin Li-
102*ec63e07aSXin Li-/* TIFF conversion*/
103*ec63e07aSXin Li-opj_image_t* tiftoimage(const char *filename, opj_cparameters_t *parameters);
104*ec63e07aSXin Li-int imagetotif(opj_image_t *image, const char *outfile);
105*ec63e07aSXin Li-/**
106*ec63e07aSXin Li-Load a single image component encoded in PGX file format
107*ec63e07aSXin Li-@param filename Name of the PGX file to load
108*ec63e07aSXin Li-@param parameters *List ?*
109*ec63e07aSXin Li-@return Returns a greyscale image if successful, returns NULL otherwise
110*ec63e07aSXin Li-*/
111*ec63e07aSXin Li-opj_image_t* pgxtoimage(const char *filename, opj_cparameters_t *parameters);
112*ec63e07aSXin Li-int imagetopgx(opj_image_t *image, const char *outfile);
113*ec63e07aSXin Li-
114*ec63e07aSXin Li-opj_image_t* pnmtoimage(const char *filename, opj_cparameters_t *parameters);
115*ec63e07aSXin Li-int imagetopnm(opj_image_t *image, const char *outfile, int force_split);
116*ec63e07aSXin Li-
117*ec63e07aSXin Li-/* RAW conversion */
118*ec63e07aSXin Li-int imagetoraw(opj_image_t * image, const char *outfile);
119*ec63e07aSXin Li-int imagetorawl(opj_image_t * image, const char *outfile);
120*ec63e07aSXin Li-opj_image_t* rawtoimage(const char *filename, opj_cparameters_t *parameters,
121*ec63e07aSXin Li-                        raw_cparameters_t *raw_cp);
122*ec63e07aSXin Li-opj_image_t* rawltoimage(const char *filename, opj_cparameters_t *parameters,
123*ec63e07aSXin Li-                         raw_cparameters_t *raw_cp);
124*ec63e07aSXin Li-
125*ec63e07aSXin Li-/* PNG conversion*/
126*ec63e07aSXin Li-extern int imagetopng(opj_image_t *image, const char *write_idf);
127*ec63e07aSXin Li-extern opj_image_t* pngtoimage(const char *filename,
128*ec63e07aSXin Li-                               opj_cparameters_t *parameters);
129*ec63e07aSXin Li-
130*ec63e07aSXin Li-#endif /* __J2K_CONVERT_H */
131*ec63e07aSXin Li+#include "openjp2_sapi.sapi.h"
132*ec63e07aSXin Li
133*ec63e07aSXin Li+const char* opj_version(void);
134*ec63e07aSXin Li+static int are_comps_similar(opj_image_t* image);
135*ec63e07aSXin Li+int imagetopnm(opj_image_t* image, const char* outfile, int force_split);
136