OpenJPEG: msgqueue_manager.h Source File

OpenJPEG 2.1.0

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

msgqueue_manager.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 MSGQUEUE_MANAGER_H_
33 # define MSGQUEUE_MANAGER_H_
34
35 #include "byte_manager.h"
36 #include "cachemodel_manager.h"
37 #include "placeholder_manager.h"
38
39 #define PRECINCT_MSG 0
40 #define EXT_PRECINCT_MSG 1
41 #define TILE_HEADER_MSG 2
42 #define TILE_MSG 4
43 #define EXT_TILE_MSG 5
44 #define MAINHEADER_MSG 6
45 #define METADATA_MSG 8
46
48 typedef struct message_param{
49 OPJ_BOOL last_byte;
50 Byte8_t in_class_id;
51 Byte8_t class_id;
52 Byte8_t csn;
53 Byte8_t bin_offset;
54 Byte8_t length;
55 Byte8_t aux;
56 OPJ_OFF_T res_offset;
57 placeholder_param_t *phld;
58 struct message_param *next;
59 } message_param_t;
60
62 typedef struct msgqueue_param{
63 message_param_t *first;
64 message_param_t *last;
65 OPJ_BOOL stateless;
66 cachemodel_param_t *cachemodel;
67 } msgqueue_param_t;
68
76 msgqueue_param_t * gene_msgqueue( OPJ_BOOL stateless, cachemodel_param_t *cachemodel);
77
83 void delete_msgqueue( msgqueue_param_t **msgqueue);
84
91 void delete_message_in_msgqueue( message_param_t **message, msgqueue_param_t *msgqueue);
92
98 void print_msgqueue( msgqueue_param_t *msgqueue);
99
100
106 void enqueue_mainheader( msgqueue_param_t *msgqueue);
107
114 void enqueue_tileheader( int tile_id, msgqueue_param_t *msgqueue);
115
123 void enqueue_tile( Byte4_t tile_id, int level, msgqueue_param_t *msgqueue);
124
134 void enqueue_precinct( int seq_id, int tile_id, int comp_id, int layers, msgqueue_param_t *msgqueue);
135
136
143 void enqueue_metadata( Byte8_t meta_id, msgqueue_param_t *msgqueue);
144
145
152 void recons_stream_from_msgqueue( msgqueue_param_t *msgqueue, int tmpfd);
153
154
163 void parse_JPIPstream( Byte_t *JPIPstream, Byte8_t streamlen, OPJ_OFF_T offset, msgqueue_param_t *msgqueue);
164
173 void parse_metamsg( msgqueue_param_t *msgqueue, Byte_t *stream, Byte8_t streamlen, metadatalist_param_t *metadatalist);
174
185 Byte8_t comp_precinct_id( int t, int c, int s, int num_components, int num_tiles);
186
187 #endif /* !MSGQUEUE_MANAGER_H_ */
msgqueue_param::stateless
OPJ_BOOL stateless
if this is a stateless message queue
Definition: msgqueue_manager.h:65
message_param::in_class_id
Byte8_t in_class_id
in-class identifier A.2.3
Definition: msgqueue_manager.h:50
Byte_t
uint8_t Byte_t
Definition: byte_manager.h:37
msgqueue_param
message queue parameters
Definition: msgqueue_manager.h:62
OPJ_OFF_T
int64_t OPJ_OFF_T
Definition: openjpeg.h:126
msgqueue_param_t
struct msgqueue_param msgqueue_param_t
message queue parameters
message_param::length
Byte8_t length
message byte length
Definition: msgqueue_manager.h:54
gene_msgqueue
msgqueue_param_t * gene_msgqueue(OPJ_BOOL stateless, cachemodel_param_t *cachemodel)
generate message queue
Definition: msgqueue_manager.c:59
message_param::next
struct message_param * next
pointer to the next message
Definition: msgqueue_manager.h:58
OPJ_BOOL
int OPJ_BOOL
Definition: openjpeg.h:106
message_param::res_offset
OPJ_OFF_T res_offset
offset in the resource
Definition: msgqueue_manager.h:56
message_param::aux
Byte8_t aux
Definition: msgqueue_manager.h:55
message_param::csn
Byte8_t csn
index of the codestream
Definition: msgqueue_manager.h:52
enqueue_tile
void enqueue_tile(Byte4_t tile_id, int level, msgqueue_param_t *msgqueue)
enqueue tile data-bin into message queue
Definition: msgqueue_manager.c:188
cachemodel_param
Cache model parameters.
Definition: cachemodel_manager.h:37
parse_JPIPstream
void parse_JPIPstream(Byte_t *JPIPstream, Byte8_t streamlen, OPJ_OFF_T offset, msgqueue_param_t *msgqueue)
parse JPT- JPP- stream to message queue
Definition: msgqueue_manager.c:588
message_param_t
struct message_param message_param_t
message parameters
message_param::bin_offset
Byte8_t bin_offset
offset of the data in this message from the start of the data-bin
Definition: msgqueue_manager.h:53
enqueue_metadata
void enqueue_metadata(Byte8_t meta_id, msgqueue_param_t *msgqueue)
enqueue Metadata-bin into message queue
Definition: msgqueue_manager.c:302
placeholder_manager.h
msgqueue_param::first
message_param_t * first
first message pointer of the list
Definition: msgqueue_manager.h:63
parse_metamsg
void parse_metamsg(msgqueue_param_t *msgqueue, Byte_t *stream, Byte8_t streamlen, metadatalist_param_t *metadatalist)
parse JPT- JPP- stream to message queue
Definition: msgqueue_manager.c:638
enqueue_precinct
void enqueue_precinct(int seq_id, int tile_id, int comp_id, int layers, msgqueue_param_t *msgqueue)
enqueue precinct data-bin into message queue
Definition: msgqueue_manager.c:245
comp_precinct_id
Byte8_t comp_precinct_id(int t, int c, int s, int num_components, int num_tiles)
compute precinct ID A.3.2.1
Definition: msgqueue_manager.c:293
message_param::phld
placeholder_param_t * phld
placeholder pointer in index
Definition: msgqueue_manager.h:57
message_param::class_id
Byte8_t class_id
class identifiers
Definition: msgqueue_manager.h:51
recons_stream_from_msgqueue
void recons_stream_from_msgqueue(msgqueue_param_t *msgqueue, int tmpfd)
reconstruct JPT/JPP-stream from message queue
Definition: msgqueue_manager.c:410
enqueue_mainheader
void enqueue_mainheader(msgqueue_param_t *msgqueue)
enqueue main header data-bin into message queue
Definition: msgqueue_manager.c:127
message_param
message parameters
Definition: msgqueue_manager.h:48
enqueue_tileheader
void enqueue_tileheader(int tile_id, msgqueue_param_t *msgqueue)
enqueue tile headers data-bin into message queue
Definition: msgqueue_manager.c:157
msgqueue_param::cachemodel
cachemodel_param_t * cachemodel
reference cachemodel pointer
Definition: msgqueue_manager.h:66
Byte4_t
uint32_t Byte4_t
Definition: byte_manager.h:39
placeholder_param
A.3.6.3 Placeholder box format.
Definition: placeholder_manager.h:39
byte_manager.h
msgqueue_param::last
message_param_t * last
last message pointer of the list
Definition: msgqueue_manager.h:64
print_msgqueue
void print_msgqueue(msgqueue_param_t *msgqueue)
print message queue
Definition: msgqueue_manager.c:94
cachemodel_manager.h
message_param::last_byte
OPJ_BOOL last_byte
if message contains the last byte of the data-bin
Definition: msgqueue_manager.h:49
delete_msgqueue
void delete_msgqueue(msgqueue_param_t **msgqueue)
delete message queue
Definition: msgqueue_manager.c:74
delete_message_in_msgqueue
void delete_message_in_msgqueue(message_param_t **message, msgqueue_param_t *msgqueue)
delete a message in msgqueue
Definition: msgqueue_manager.c:741
Byte8_t
uint64_t Byte8_t
Definition: byte_manager.h:40
metadatalist_param
metadata-bin list parameters
Definition: metadata_manager.h:52