summaryrefslogtreecommitdiffstats
path: root/ext/metadata/metadata.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/metadata/metadata.h')
-rw-r--r--ext/metadata/metadata.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/ext/metadata/metadata.h b/ext/metadata/metadata.h
index a97f1e48..15bdab9d 100644
--- a/ext/metadata/metadata.h
+++ b/ext/metadata/metadata.h
@@ -48,7 +48,9 @@
#include "metadatatypes.h"
#include "metadataparsejpeg.h"
+#include "metadatamuxjpeg.h"
#include "metadataparsepng.h"
+#include "metadatamuxpng.h"
G_BEGIN_DECLS
@@ -82,8 +84,10 @@ typedef struct _tag_MetaData
guint32 offset_orig; /* offset since begining of stream */
union
{
- JpegData jpeg;
- PngData png;
+ JpegParseData jpeg_parse;
+ JpegMuxData jpeg_mux;
+ PngParseData png_parse;
+ PngMuxData png_mux;
} format_data;
GstAdapter * exif_adapter;
GstAdapter * iptc_adapter;
@@ -92,6 +96,8 @@ typedef struct _tag_MetaData
MetadataChunkArray strip_chunks;
MetadataChunkArray inject_chunks;
+ gboolean parse; /* true - parsing, false - muxing */
+
} MetaData;
#define META_DATA_IMG_TYPE(p) (p).img_type
@@ -99,7 +105,7 @@ typedef struct _tag_MetaData
#define set_meta_option(p, m) do { (p).option = (p).option | (m); } while(FALSE)
#define unset_meta_option(p, m) do { (p).option = (p).option & ~(m); } while(FALSE)
-extern void metadata_init (MetaData * meta_data);
+extern void metadata_init (MetaData * meta_data, gboolean parse);
/*
* offset: number of bytes that MUST be jumped after current "buf" pointer
@@ -112,10 +118,12 @@ extern void metadata_init (MetaData * meta_data);
* 1 -> need more data
*/
extern int
-metadata_meta (MetaData * meta_data, const guint8 * buf,
+metadata_parse (MetaData * meta_data, const guint8 * buf,
guint32 bufsize, guint32 * next_offset, guint32 * next_size);
+extern void metadata_lazy_update (MetaData * meta_data);
+
extern void metadata_dispose (MetaData * meta_data);
G_END_DECLS