diff options
author | Sylvain Munaut <tnt@246tNt.com> | 2010-10-29 11:48:44 +0200 |
---|---|---|
committer | Sylvain Munaut <tnt@246tNt.com> | 2010-11-11 20:26:41 +0100 |
commit | ef7ada56cecbdc3504162f2a89be64546a0af345 (patch) | |
tree | a3323f270eb6072100533fd2cb39c1e2fdab38f8 | |
parent | 723df06dfffc77810b7d9999344d48d72e966068 (diff) |
codec: Add fields in struct codec_desc to support encoding/decoding
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
-rw-r--r-- | include/gapk/codecs.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/gapk/codecs.h b/include/gapk/codecs.h index 984d91a..cc6bc30 100644 --- a/include/gapk/codecs.h +++ b/include/gapk/codecs.h @@ -20,6 +20,8 @@ #ifndef __GAPK_CODECS_H__ #define __GAPK_CODECS_H__ +#include <stdint.h> + enum codec_type { CODEC_INVALID = 0, CODEC_PCM, /* 16 bits PCM samples */ @@ -29,11 +31,22 @@ enum codec_type { _CODEC_MAX, }; +#include <gapk/formats.h> /* need to import here because or enum interdep */ + +typedef int (*codec_conv_cb_t)(void *state, uint8_t *dst, const uint8_t *src); + struct codec_desc { enum codec_type type; const char * name; const char * description; unsigned int canon_frame_len; + + enum format_type codec_enc_format_type; /* what the encoder provides */ + enum format_type codec_dec_format_type; /* what to give the decoder */ + void * (*codec_init)(void); + void (*codec_exit)(void *state); + codec_conv_cb_t codec_encode; + codec_conv_cb_t codec_decode; }; const struct codec_desc *codec_get_from_type(enum codec_type type); |