Picasso API  2.9
psx_image_plugin.h
Go to the documentation of this file.
1 
18 #ifndef _PSX_IMAGE_PLUGININ_INTERFACE_H_
19 #define _PSX_IMAGE_PLUGININ_INTERFACE_H_
20 
21 #include "picasso.h"
22 #include "picasso_ext.h"
23 
24 #include "psx_image.h"
25 
26 #include <stddef.h>
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
48 typedef struct _psx_image_header {
50  void* priv;
52  int32_t width;
54  int32_t height;
56  int32_t pitch;
58  int32_t depth;
60  int32_t bpp;
62  int32_t format;
64  int32_t alpha;
66  int32_t frames;
68 
73 typedef struct _psx_image_operator {
75  int32_t (*read_header_info)(const ps_byte* data, size_t data_len, psx_image_header* header);
77  int32_t (*decode_image_data)(psx_image_header* header, const psx_image* image, psx_image_frame* frame, int32_t idx, ps_byte* buffer, size_t buffer_len);
81  int32_t (*write_header_info)(const psx_image* image, image_writer_fn func,
82  void* param, float quality, psx_image_header* header);
84  int32_t (*encode_image_data)(psx_image_header* header, const psx_image* image, psx_image_frame* frame, int32_t idx, const ps_byte* buffer, size_t buffer_len, int32_t* ret);
88 
93 typedef enum _psx_priority_level {
101 
125 PEXPORT psx_result psx_image_register_operator(const char* type, const ps_byte* signature, size_t sig_offset, size_t sig_len,
126  psx_priority_level level, psx_image_operator* coder);
127 
139 
153 PEXPORT void psx_image_module_init(void);
154 
161 PEXPORT void psx_image_module_shutdown(void);
162 
167 #define MODULE_NAME 1
168 
180 PEXPORT const char* psx_image_module_get_string(int32_t id);
181 
186 #ifdef __cplusplus
187 }
188 #endif
189 
190 #endif /*_PSX_IMAGE_PLUGININ_INTERFACE_H_*/
_psx_image_operator::release_read_header_info
int32_t(* release_read_header_info)(psx_image_header *header)
Definition: psx_image_plugin.h:79
psx_result
psx_result
Status code return by call APIs.
Definition: picasso_ext.h:36
psx_image_operator
struct _psx_image_operator psx_image_operator
The image operator define.
picasso.h
_psx_image_operator::read_header_info
int32_t(* read_header_info)(const ps_byte *data, size_t data_len, psx_image_header *header)
Definition: psx_image_plugin.h:75
image_writer_fn
int32_t(* image_writer_fn)(void *param, const ps_byte *data, size_t length)
Callback function for saving image data.
Definition: psx_image.h:202
PRIORITY_MASTER
@ PRIORITY_MASTER
Definition: psx_image_plugin.h:99
_psx_image_header::priv
void * priv
Definition: psx_image_plugin.h:50
psx_image_module_init
PEXPORT void psx_image_module_init(void)
Initialze the image module.
picasso_ext.h
psx_image.h
PRIORITY_EXTENTED
@ PRIORITY_EXTENTED
Definition: psx_image_plugin.h:95
_psx_image_header
Image reader header define.
Definition: psx_image_plugin.h:48
psx_image_header
struct _psx_image_header psx_image_header
Image reader header define.
psx_image_unregister_operator
PEXPORT psx_result psx_image_unregister_operator(psx_image_operator *coder)
Unregister the image operator.
_psx_priority_level
_psx_priority_level
Priority level for image_operator.
Definition: psx_image_plugin.h:93
_psx_image_header::depth
int32_t depth
Definition: psx_image_plugin.h:58
psx_image_module_shutdown
PEXPORT void psx_image_module_shutdown(void)
Shutdown the image module.
_psx_image
A image object.
Definition: psx_image.h:60
_psx_image_header::width
int32_t width
Definition: psx_image_plugin.h:52
_psx_image_operator::release_write_header_info
int32_t(* release_write_header_info)(psx_image_header *header)
Definition: psx_image_plugin.h:86
_psx_image_header::bpp
int32_t bpp
Definition: psx_image_plugin.h:60
_psx_image_operator::write_header_info
int32_t(* write_header_info)(const psx_image *image, image_writer_fn func, void *param, float quality, psx_image_header *header)
Definition: psx_image_plugin.h:81
psx_image_module_get_string
const PEXPORT char * psx_image_module_get_string(int32_t id)
Get the string info about module.
_psx_image_operator::decode_image_data
int32_t(* decode_image_data)(psx_image_header *header, const psx_image *image, psx_image_frame *frame, int32_t idx, ps_byte *buffer, size_t buffer_len)
Definition: psx_image_plugin.h:77
_psx_image_operator
The image operator define.
Definition: psx_image_plugin.h:73
_psx_image_frame
A frame image data.
Definition: psx_image.h:46
ps_byte
uint8_t ps_byte
byte data type
Definition: picasso.h:95
_psx_image_header::frames
int32_t frames
Definition: psx_image_plugin.h:66
_psx_image_header::pitch
int32_t pitch
Definition: psx_image_plugin.h:56
PRIORITY_DEFAULT
@ PRIORITY_DEFAULT
Definition: psx_image_plugin.h:97
_psx_image_operator::encode_image_data
int32_t(* encode_image_data)(psx_image_header *header, const psx_image *image, psx_image_frame *frame, int32_t idx, const ps_byte *buffer, size_t buffer_len, int32_t *ret)
Definition: psx_image_plugin.h:84
_psx_image_header::height
int32_t height
Definition: psx_image_plugin.h:54
psx_image_register_operator
PEXPORT psx_result psx_image_register_operator(const char *type, const ps_byte *signature, size_t sig_offset, size_t sig_len, psx_priority_level level, psx_image_operator *coder)
Register the image operator.
psx_priority_level
enum _psx_priority_level psx_priority_level
Priority level for image_operator.
_psx_image_header::alpha
int32_t alpha
Definition: psx_image_plugin.h:64
_psx_image_header::format
int32_t format
Definition: psx_image_plugin.h:62