OpenJPEG 2.5.0

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
50 last_byte;
51 Byte8_t in_class_id;
52 Byte8_t class_id;
53 Byte8_t csn;
54 Byte8_t bin_offset;
55 Byte8_t length;
56 Byte8_t aux;
57 OPJ_OFF_T res_offset;
58 placeholder_param_t *phld;
59 struct message_param *next;
60} message_param_t;
61
63 typedef struct msgqueue_param {
64 message_param_t *first;
65 message_param_t *last;
66 OPJ_BOOL stateless;
67 cachemodel_param_t *cachemodel;
68} msgqueue_param_t;
69
77 msgqueue_param_t * gene_msgqueue(OPJ_BOOL stateless,
78 cachemodel_param_t *cachemodel);
79
85 void delete_msgqueue(msgqueue_param_t **msgqueue);
86
93 void delete_message_in_msgqueue(message_param_t **message,
94 msgqueue_param_t *msgqueue);
95
101 void print_msgqueue(msgqueue_param_t *msgqueue);
102
103
109 void enqueue_mainheader(msgqueue_param_t *msgqueue);
110
117 void enqueue_tileheader(int tile_id, msgqueue_param_t *msgqueue);
118
126 void enqueue_tile(Byte4_t tile_id, int level, msgqueue_param_t *msgqueue);
127
137 void enqueue_precinct(int seq_id, int tile_id, int comp_id, int layers,
138 msgqueue_param_t *msgqueue);
139
140
147 void enqueue_metadata(Byte8_t meta_id, msgqueue_param_t *msgqueue);
148
149
156 void recons_stream_from_msgqueue(msgqueue_param_t *msgqueue, int tmpfd);
157
158
167 void parse_JPIPstream(Byte_t *JPIPstream, Byte8_t streamlen, OPJ_OFF_T offset,
168 msgqueue_param_t *msgqueue);
169
178 void parse_metamsg(msgqueue_param_t *msgqueue, Byte_t *stream,
179 Byte8_t streamlen, metadatalist_param_t *metadatalist);
180
191 Byte8_t comp_precinct_id(int t, int c, int s, int num_components,
192 int num_tiles);
193
194#endif /* !MSGQUEUE_MANAGER_H_ */
byte_manager.h
Byte8_t
uint64_t Byte8_t
Definition: byte_manager.h:40
Byte4_t
uint32_t Byte4_t
Definition: byte_manager.h:39
Byte_t
uint8_t Byte_t
Definition: byte_manager.h:37
cachemodel_manager.h
enqueue_mainheader
void enqueue_mainheader(msgqueue_param_t *msgqueue)
enqueue main header data-bin into message queue
Definition: msgqueue_manager.c:135
enqueue_tileheader
void enqueue_tileheader(int tile_id, msgqueue_param_t *msgqueue)
enqueue tile headers data-bin into message queue
Definition: msgqueue_manager.c:165
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:311
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:198
message_param_t
struct message_param message_param_t
message parameters
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:631
gene_msgqueue
msgqueue_param_t * gene_msgqueue(OPJ_BOOL stateless, cachemodel_param_t *cachemodel)
generate message queue
Definition: msgqueue_manager.c:59
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:687
enqueue_metadata
void enqueue_metadata(Byte8_t meta_id, msgqueue_param_t *msgqueue)
enqueue Metadata-bin into message queue
Definition: msgqueue_manager.c:323
print_msgqueue
void print_msgqueue(msgqueue_param_t *msgqueue)
print message queue
Definition: msgqueue_manager.c:97
msgqueue_param_t
struct msgqueue_param msgqueue_param_t
message queue parameters
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:443
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:795
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:256
delete_msgqueue
void delete_msgqueue(msgqueue_param_t **msgqueue)
delete message queue
Definition: msgqueue_manager.c:75
OPJ_OFF_T
int64_t OPJ_OFF_T
Definition: openjpeg.h:136
OPJ_BOOL
int OPJ_BOOL
Definition: openjpeg.h:116
placeholder_manager.h
cachemodel_param
Cache model parameters.
Definition: cachemodel_manager.h:37
message_param
message parameters
Definition: msgqueue_manager.h:48
message_param::class_id
Byte8_t class_id
class identifiers
Definition: msgqueue_manager.h:52
message_param::in_class_id
Byte8_t in_class_id
in-class identifier A.2.3
Definition: msgqueue_manager.h:51
message_param::csn
Byte8_t csn
index of the codestream
Definition: msgqueue_manager.h:53
message_param::phld
placeholder_param_t * phld
placeholder pointer in index
Definition: msgqueue_manager.h:58
message_param::length
Byte8_t length
message byte length
Definition: msgqueue_manager.h:55
message_param::last_byte
OPJ_BOOL last_byte
if message contains the last byte of the data-bin
Definition: msgqueue_manager.h:50
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:54
message_param::res_offset
OPJ_OFF_T res_offset
offset in the resource
Definition: msgqueue_manager.h:57
message_param::aux
Byte8_t aux
Definition: msgqueue_manager.h:56
message_param::next
struct message_param * next
pointer to the next message
Definition: msgqueue_manager.h:59
metadatalist_param
metadata-bin list parameters
Definition: metadata_manager.h:54
msgqueue_param
message queue parameters
Definition: msgqueue_manager.h:63
msgqueue_param::cachemodel
cachemodel_param_t * cachemodel
reference cachemodel pointer
Definition: msgqueue_manager.h:67
msgqueue_param::last
message_param_t * last
last message pointer of the list
Definition: msgqueue_manager.h:65
msgqueue_param::first
message_param_t * first
first message pointer of the list
Definition: msgqueue_manager.h:64
msgqueue_param::stateless
OPJ_BOOL stateless
if this is a stateless message queue
Definition: msgqueue_manager.h:66
placeholder_param
A.3.6.3 Placeholder box format.
Definition: placeholder_manager.h:39