OpenJPEG 2.3.1

query_parser.h
Go to the documentation of this file.
1 /*
2 * $Id$
3 *
4 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
5 * Copyright (c) 2002-2014, Professor Benoit Macq
6 * Copyright (c) 2010-2011, Kaori Hagihara
7 * Copyright (c) 2011, Lucian Corlaciu, GSoC
8 * All rights reserved.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 */
31
32 #ifndef QUERY_PARSER_H_
33 # define QUERY_PARSER_H_
34
35 #include "opj_includes.h"
36
38 #define MAX_NUMOFBOX 10
39
41 typedef enum cnew_transport { non, http, tcp, udp} cnew_transport_t;
42
44 typedef enum image_return { JPPstream, JPTstream, UNKNOWN = -1} image_return_t;
45
47 typedef struct query_param {
48 char *target;
49 char *tid;
50 int fx, fy;
51 int rx, ry, rw, rh;
52 int layers;
53 int lastcomp;
54 OPJ_BOOL *comps;
55 char *cid;
56 cnew_transport_t
57 cnew;
58 char *cclose;
59 int numOfcclose;
60 char box_type[MAX_NUMOFBOX][4];
61 int limit[MAX_NUMOFBOX];
62 OPJ_BOOL w[MAX_NUMOFBOX];
63 OPJ_BOOL s[MAX_NUMOFBOX];
64 OPJ_BOOL g[MAX_NUMOFBOX];
65 OPJ_BOOL a[MAX_NUMOFBOX];
66 OPJ_BOOL priority[MAX_NUMOFBOX];
67 int root_bin;
68 int max_depth;
69 OPJ_BOOL metadata_only;
70 image_return_t return_type;
71 int len;
72 } query_param_t;
73
74
81 query_param_t * parse_query(const char *query_string);
82
88 void print_queryparam(query_param_t query_param);
89
90
96 void delete_query(query_param_t **query);
97
98 #endif /* !QUERY_PARSER_H_ */
opj_jp2_box_t
struct opj_jp2_box opj_jp2_box_t
JP2 Box.
OPJ_BYTE
unsigned char OPJ_BYTE
Definition: openjpeg.h:117
query_param::limit
int limit[MAX_NUMOFBOX]
limit value, -1: skeleton request "r", 0: entire contents
Definition: query_parser.h:61
opj_tile_info::packet
opj_packet_info_t * packet
information concerning packets inside tile
Definition: openjpeg.h:825
query_param::ry
int ry
Definition: query_parser.h:51
opj_codestream_info::numcomps
int numcomps
component numbers
Definition: openjpeg.h:871
opj_codestream_info::tw
int tw
number of tiles in X
Definition: openjpeg.h:867
opj_stream_write_data
OPJ_SIZE_T opj_stream_write_data(opj_stream_private_t *p_stream, const OPJ_BYTE *p_buffer, OPJ_SIZE_T p_size, opj_event_mgr_t *p_event_mgr)
Writes some bytes to the stream.
Definition: cio.c:385
opj_calloc
void * opj_calloc(size_t num, size_t size)
Allocate a memory block with elements initialized to 0.
Definition: opj_malloc.c:198
delete_query
void delete_query(query_param_t **query)
delete query
Definition: query_parser.c:449
query_param::metadata_only
OPJ_BOOL metadata_only
metadata-only request
Definition: query_parser.h:69
query_param::root_bin
int root_bin
root-bin
Definition: query_parser.h:67
MAX_LENOFFIELDVAL
#define MAX_LENOFFIELDVAL
maximum length of field value
Definition: query_parser.c:86
image_return_t
enum image_return image_return_t
image return type
opj_write_ppix
int opj_write_ppix(int coff, opj_codestream_info_t cstr_info, OPJ_BOOL EPHused, int j2klen, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
Definition: ppix_manager.c:51
opj_tile_info::ph
int ph[33]
precinct number for each resolution level (height)
Definition: openjpeg.h:819
query_param::max_depth
int max_depth
max-depth
Definition: query_parser.h:68
query_param::len
int len
maximum response length
Definition: query_parser.h:71
parse_cclose
void parse_cclose(char *src, query_param_t *query_param)
Definition: query_parser.c:301
opj_stdint.h
query_param::fy
int fy
frame size (fx,fy)
Definition: query_parser.h:50
MAX_LENOFFIELDNAME
#define MAX_LENOFFIELDNAME
maximum length of field name
Definition: query_parser.c:83
opj_codestream_info::numlayers
int numlayers
number of layer
Definition: openjpeg.h:873
tcp
@ tcp
Definition: query_parser.h:41
OPJ_OFF_T
int64_t OPJ_OFF_T
Definition: openjpeg.h:130
opj_stream_skip
OPJ_OFF_T opj_stream_skip(opj_stream_private_t *p_stream, OPJ_OFF_T p_size, opj_event_mgr_t *p_event_mgr)
Skips a number of bytes from the stream.
Definition: cio.c:593
opj_stream_seek
OPJ_BOOL opj_stream_seek(opj_stream_private_t *p_stream, OPJ_OFF_T p_size, struct opj_event_mgr *p_event_mgr)
Seeks a number of bytes from the stream.
Definition: cio.c:641
OPJ_RLCP
@ OPJ_RLCP
resolution-layer-component-precinct order
Definition: openjpeg.h:300
opj_event_mgr
Message handler object used for.
Definition: event.h:50
query_param::return_type
image_return_t return_type
image return type
Definition: query_parser.h:70
query_param::cclose
char * cclose
list of closing channel identifiers, separated by '\0'
Definition: query_parser.h:58
opj_stream_tell
OPJ_OFF_T opj_stream_tell(const opj_stream_private_t *p_stream)
Tells the byte offset on the stream (similar to ftell).
Definition: cio.c:579
opj_jp2_box::type
OPJ_UINT32 type
Definition: jp2.h:200
logstream
#define logstream
Definition: query_parser.c:54
query_param::lastcomp
int lastcomp
last component number
Definition: query_parser.h:53
query_param_t
struct query_param query_param_t
Query parameters.
opj_stream_private
Byte input-output stream.
Definition: cio.h:81
OPJ_CPRL
@ OPJ_CPRL
component-precinct-resolution-layer order
Definition: openjpeg.h:303
parse_query
query_param_t * parse_query(const char *query_string)
parse query
Definition: query_parser.c:88
http
@ http
Definition: query_parser.h:41
query_param::rw
int rw
Definition: query_parser.h:51
opj_packet_info::start_pos
OPJ_OFF_T start_pos
packet start position (including SOP marker if it exists)
Definition: openjpeg.h:762
opj_write_ppixfaix
int opj_write_ppixfaix(int coff, int compno, opj_codestream_info_t cstr_info, OPJ_BOOL EPHused, int j2klen, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
Definition: ppix_manager.c:104
get_initquery
query_param_t * get_initquery(void)
Get initialized query parameters.
Definition: query_parser.c:170
query_param::comps
OPJ_BOOL * comps
components (dynamic array) for jpp-stream, null means all components
Definition: query_parser.h:54
print_queryparam
void print_queryparam(query_param_t query_param)
print query parameters
Definition: query_parser.c:238
query_param::rh
int rh
roi region
Definition: query_parser.h:51
query_param::target
char * target
target name
Definition: query_parser.h:48
opj_write_manf
void opj_write_manf(int second, int v, opj_jp2_box_t *box, opj_stream_private_t *cio, opj_event_mgr_t *p_manager)
Definition: cidx_manager.c:157
OPJ_BOOL
int OPJ_BOOL
Definition: openjpeg.h:110
OPJ_SIZE_T
size_t OPJ_SIZE_T
Definition: openjpeg.h:133
opj_includes.h
opj_packet_info::end_ph_pos
OPJ_OFF_T end_ph_pos
end of packet header position (including EPH marker if it exists)
Definition: openjpeg.h:764
print_queryparam
void print_queryparam(query_param_t query_param)
print query parameters
Definition: query_parser.c:238
OPJ_PCRL
@ OPJ_PCRL
precinct-component-resolution-layer order
Definition: openjpeg.h:302
MAX_NUMOFBOX
#define MAX_NUMOFBOX
maximum number of meta request box
Definition: query_parser.h:38
query_param::box_type
char box_type[MAX_NUMOFBOX][4]
interested box-types
Definition: query_parser.h:60
parse_query
query_param_t * parse_query(const char *query_string)
parse query
Definition: query_parser.c:88
opj_jp2_box
JP2 Box.
Definition: jp2.h:198
non
@ non
Definition: query_parser.h:41
query_param::layers
int layers
quality layers
Definition: query_parser.h:52
UNKNOWN
@ UNKNOWN
Definition: query_parser.h:44
query_param::cid
char * cid
channel identifier
Definition: query_parser.h:55
OPJ_TRUE
#define OPJ_TRUE
Definition: openjpeg.h:111
opj_malloc
void * opj_malloc(size_t size)
Allocate an uninitialized memory block.
Definition: opj_malloc.c:191
udp
@ udp
Definition: query_parser.h:41
query_param::cnew
cnew_transport_t cnew
transport name if there is new channel request, else non
Definition: query_parser.h:57
opj_free
void opj_free(void *ptr)
Deallocates or frees a memory block.
Definition: opj_malloc.c:246
parse_comps
void parse_comps(char *field, query_param_t *query_param)
Definition: query_parser.c:412
image_return
image_return
image return type
Definition: query_parser.h:44
OPJ_RPCL
@ OPJ_RPCL
resolution-precinct-component-layer order
Definition: openjpeg.h:301
cnew_transport
cnew_transport
cnew aux transport name
Definition: query_parser.h:41
delete_query
void delete_query(query_param_t **query)
delete query
Definition: query_parser.c:449
JPIP_PPIX
#define JPIP_PPIX
Definition: indexbox_manager.h:50
opj_packet_info
Index structure : Information concerning a packet inside tile.
Definition: openjpeg.h:760
parse_metareq
void parse_metareq(char *field, query_param_t *query_param)
Definition: query_parser.c:321
query_param::a
OPJ_BOOL a[MAX_NUMOFBOX]
Definition: query_parser.h:65
query_param::w
OPJ_BOOL w[MAX_NUMOFBOX]
Metadata request qualifier flags.
Definition: query_parser.h:62
query_param::tid
char * tid
target identifier
Definition: query_parser.h:49
opj_jp2_box::length
OPJ_UINT32 length
Definition: jp2.h:199
opj_codestream_info::prog
OPJ_PROG_ORDER prog
progression order
Definition: openjpeg.h:857
opj_codestream_info::tile
opj_tile_info_t * tile
information regarding tiles inside image
Definition: openjpeg.h:891
opj_packet_info::end_pos
OPJ_OFF_T end_pos
packet end position
Definition: openjpeg.h:766
opj_codestream_info
Index structure of the codestream.
Definition: openjpeg.h:845
parse_req_box_prop
void parse_req_box_prop(char *req_box_prop, int idx, query_param_t *query_param)
Definition: query_parser.c:362
OPJ_UINT32
uint32_t OPJ_UINT32
Definition: openjpeg.h:126
query_param::numOfcclose
int numOfcclose
number of closing channels
Definition: query_parser.h:59
query_param
Query parameters.
Definition: query_parser.h:47
opj_tile_info
Index structure : information regarding tiles.
Definition: openjpeg.h:805
OPJ_FALSE
#define OPJ_FALSE
Definition: openjpeg.h:112
query_param::s
OPJ_BOOL s[MAX_NUMOFBOX]
Definition: query_parser.h:63
OPJ_LRCP
@ OPJ_LRCP
layer-resolution-component-precinct order
Definition: openjpeg.h:299
query_param::g
OPJ_BOOL g[MAX_NUMOFBOX]
Definition: query_parser.h:64
JPPstream
@ JPPstream
Definition: query_parser.h:44
JPIP_FAIX
#define JPIP_FAIX
Definition: indexbox_manager.h:46
opj_codestream_info::numdecompos
int * numdecompos
number of decomposition for each component
Definition: openjpeg.h:875
opj_write_bytes
#define opj_write_bytes
Definition: cio.h:64
JPTstream
@ JPTstream
Definition: query_parser.h:44
opj_codestream_info::th
int th
number of tiles in Y
Definition: openjpeg.h:869
query_param::rx
int rx
Definition: query_parser.h:51
query_param::priority
OPJ_BOOL priority[MAX_NUMOFBOX]
priority flag
Definition: query_parser.h:66
query_param::fx
int fx
Definition: query_parser.h:50
query_parser.h
get_fieldparam
char * get_fieldparam(const char *stringptr, char *fieldname, char *fieldval)
Definition: query_parser.c:211
cnew_transport_t
enum cnew_transport cnew_transport_t
cnew aux transport name
opj_tile_info::pw
int pw[33]
precinct number for each resolution level (width)
Definition: openjpeg.h:817