summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/codecs.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/codecs.h')
-rw-r--r--lib/rbcodec/codecs/codecs.h28
1 files changed, 15 insertions, 13 deletions
diff --git a/lib/rbcodec/codecs/codecs.h b/lib/rbcodec/codecs/codecs.h
index fd19dcb6b5..aa9d2e8a0d 100644
--- a/lib/rbcodec/codecs/codecs.h
+++ b/lib/rbcodec/codecs/codecs.h
@@ -71,13 +71,12 @@
71/* magic for encoder codecs */ 71/* magic for encoder codecs */
72#define CODEC_ENC_MAGIC 0x52454E43 /* RENC */ 72#define CODEC_ENC_MAGIC 0x52454E43 /* RENC */
73 73
74/* increase this every time the api struct changes */ 74/*
75#define CODEC_API_VERSION 49 75 * Increment this whenever a change breaks the codec ABI,
76 76 * when this happens please take the opportunity to sort in
77/* update this to latest version if a change to the api struct breaks 77 * any new functions "waiting" at the end of the list.
78 backwards compatibility (and please take the opportunity to sort in any 78 */
79 new function which are "waiting" at the end of the function table) */ 79#define CODEC_API_VERSION 50
80#define CODEC_MIN_API_VERSION 49
81 80
82/* reasons for calling codec main entrypoint */ 81/* reasons for calling codec main entrypoint */
83enum codec_entry_call_reason { 82enum codec_entry_call_reason {
@@ -228,6 +227,7 @@ struct codec_header {
228 enum codec_status(*entry_point)(enum codec_entry_call_reason reason); 227 enum codec_status(*entry_point)(enum codec_entry_call_reason reason);
229 enum codec_status(*run_proc)(void); 228 enum codec_status(*run_proc)(void);
230 struct codec_api **api; 229 struct codec_api **api;
230 size_t api_size;
231 void * rec_extension[]; /* extension for encoders */ 231 void * rec_extension[]; /* extension for encoders */
232}; 232};
233 233
@@ -241,15 +241,16 @@ extern unsigned char plugin_end_addr[];
241 const struct codec_header __header \ 241 const struct codec_header __header \
242 __attribute__ ((section (".header")))= { \ 242 __attribute__ ((section (".header")))= { \
243 { CODEC_MAGIC, TARGET_ID, CODEC_API_VERSION, \ 243 { CODEC_MAGIC, TARGET_ID, CODEC_API_VERSION, \
244 plugin_start_addr, plugin_end_addr }, codec_start, \ 244 plugin_start_addr, plugin_end_addr }, \
245 codec_run, &ci }; 245 codec_start, codec_run, &ci, sizeof(struct codec_api) };
246/* encoders */ 246/* encoders */
247#define CODEC_ENC_HEADER \ 247#define CODEC_ENC_HEADER \
248 const struct codec_header __header \ 248 const struct codec_header __header \
249 __attribute__ ((section (".header")))= { \ 249 __attribute__ ((section (".header")))= { \
250 { CODEC_ENC_MAGIC, TARGET_ID, CODEC_API_VERSION, \ 250 { CODEC_ENC_MAGIC, TARGET_ID, CODEC_API_VERSION, \
251 plugin_start_addr, plugin_end_addr }, codec_start, \ 251 plugin_start_addr, plugin_end_addr }, \
252 codec_run, &ci, { enc_callback } }; 252 codec_start, codec_run, &ci, sizeof(struct codec_api), \
253 { enc_callback } };
253 254
254#else /* def SIMULATOR */ 255#else /* def SIMULATOR */
255/* decoders */ 256/* decoders */
@@ -257,13 +258,14 @@ extern unsigned char plugin_end_addr[];
257 const struct codec_header __header \ 258 const struct codec_header __header \
258 __attribute__((visibility("default"))) = { \ 259 __attribute__((visibility("default"))) = { \
259 { CODEC_MAGIC, TARGET_ID, CODEC_API_VERSION, NULL, NULL }, \ 260 { CODEC_MAGIC, TARGET_ID, CODEC_API_VERSION, NULL, NULL }, \
260 codec_start, codec_run, &ci }; 261 codec_start, codec_run, &ci, sizeof(struct codec_api) };
261/* encoders */ 262/* encoders */
262#define CODEC_ENC_HEADER \ 263#define CODEC_ENC_HEADER \
263 const struct codec_header __header \ 264 const struct codec_header __header \
264 __attribute__((visibility("default"))) = { \ 265 __attribute__((visibility("default"))) = { \
265 { CODEC_ENC_MAGIC, TARGET_ID, CODEC_API_VERSION, NULL, NULL }, \ 266 { CODEC_ENC_MAGIC, TARGET_ID, CODEC_API_VERSION, NULL, NULL }, \
266 codec_start, codec_run, &ci, { enc_callback } }; 267 codec_start, codec_run, &ci, sizeof(struct codec_api), \
268 { enc_callback } };
267#endif /* SIMULATOR */ 269#endif /* SIMULATOR */
268#endif /* CODEC */ 270#endif /* CODEC */
269 271