X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=src%2Fm4af.h;h=3a04742a9e7055dd7d76025eeeac4aa7c020491f;hb=374ae78b970a9249d047f0958472114b16523e23;hp=91f4cf8955c3603258e40ab4618b691f8cbb30f2;hpb=e4bbeeb0164812d47cf80f0d39fe2ae452edd4da;p=fdkaac.git diff --git a/src/m4af.h b/src/m4af.h index 91f4cf8..3a04742 100644 --- a/src/m4af.h +++ b/src/m4af.h @@ -52,6 +52,12 @@ enum m4af_codec_type { M4AF_CODEC_TEXT = M4AF_FOURCC('t','e','x','t'), }; +enum m4af_priming_mode { + M4AF_PRIMING_MODE_ITUNSMPB = 1, + M4AF_PRIMING_MODE_EDTS = 2, + M4AF_PRIMING_MODE_BOTH = 3 +}; + typedef int (*m4af_read_callback)(void *cookie, void *buffer, uint32_t size); typedef int (*m4af_write_callback)(void *cookie, const void *data, uint32_t size); @@ -65,14 +71,6 @@ typedef struct m4af_io_callbacks_t { m4af_tell_callback tell; } m4af_io_callbacks_t; -typedef struct m4af_itmf_entry_t { - uint32_t fcc; - char *name; - uint32_t type_code; - char *data; - uint32_t data_size; -} m4af_itmf_entry_t; - typedef struct m4af_ctx_t m4af_ctx_t; @@ -81,7 +79,7 @@ m4af_ctx_t *m4af_create(uint32_t codec, uint32_t timescale, int m4af_begin_write(m4af_ctx_t *ctx); -int m4af_finalize(m4af_ctx_t *ctx); +int m4af_finalize(m4af_ctx_t *ctx, int optimize); void m4af_teardown(m4af_ctx_t **ctx); @@ -91,9 +89,16 @@ int m4af_write_sample(m4af_ctx_t *ctx, uint32_t track_idx, const void *data, int m4af_set_decoder_specific_info(m4af_ctx_t *ctx, uint32_t track_idx, uint8_t *data, uint32_t size); +void m4af_set_vbr_mode(m4af_ctx_t *ctx, uint32_t track_idx, int is_vbr); + void m4af_set_priming(m4af_ctx_t *ctx, uint32_t track_idx, uint32_t encoder_delay, uint32_t padding); +void m4af_set_priming_mode(m4af_ctx_t *ctx, int mode); + +void m4af_set_num_channels(m4af_ctx_t *ctx, uint32_t track_idx, + uint16_t channels); + void m4af_set_fixed_frame_duration(m4af_ctx_t *ctx, uint32_t track_idx, uint32_t length);