--- /dev/null
+#ifndef METADATA_H
+#define METADATA_H
+
+typedef struct aacenc_tag_entry_t {
+ uint32_t tag;
+ const char *name;
+ const char *data;
+ uint32_t data_size;
+ int is_file_name;
+} aacenc_tag_entry_t;
+
+typedef struct aacenc_tag_param_t {
+ aacenc_tag_entry_t *tag_table;
+ unsigned tag_count;
+ unsigned tag_table_capacity;
+} aacenc_tag_param_t;
+
+char *aacenc_load_tag_from_file(const char *path, uint32_t *data_size);
+
+void aacenc_param_add_itmf_entry(aacenc_tag_param_t *params, uint32_t tag,
+ const char *key, const char *value,
+ uint32_t size, int is_file_name);
+
+void aacenc_put_tags_from_json(m4af_ctx_t *m4af, const char *json_filename);
+
+void aacenc_put_tag_entry(m4af_ctx_t *m4af, const aacenc_tag_entry_t *tag);
+
+#endif