summaryrefslogtreecommitdiff
path: root/gst/mxf/mxfmetadata.h
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2009-01-22 11:37:22 +0100
committerSebastian Dröge <slomo@circular-chaos.org>2009-01-22 13:12:59 +0100
commitcd80f534f5c22faefd191c8b9f716b4d4b34a64d (patch)
tree5d1ba26af1af24e43ac0234b6ec4844e0f495f50 /gst/mxf/mxfmetadata.h
parent1b49a094feecae976611933269562f83d837b009 (diff)
downloadgstreamer-plugins-bad-cd80f534f5c22faefd191c8b9f716b4d4b34a64d.tar.gz
Implement parsing of DMS1 (SMPTE S380M)
Diffstat (limited to 'gst/mxf/mxfmetadata.h')
-rw-r--r--gst/mxf/mxfmetadata.h73
1 files changed, 53 insertions, 20 deletions
diff --git a/gst/mxf/mxfmetadata.h b/gst/mxf/mxfmetadata.h
index e5c455e80..5b6f12eb9 100644
--- a/gst/mxf/mxfmetadata.h
+++ b/gst/mxf/mxfmetadata.h
@@ -333,16 +333,45 @@ typedef struct _MXFMetadataTextLocator MXFMetadataTextLocator;
typedef MXFMetadataBaseClass MXFMetadataTextLocatorClass;
GType mxf_metadata_text_locator_get_type (void);
+#define MXF_TYPE_DESCRIPTIVE_METADATA \
+ (mxf_descriptive_metadata_get_type())
+#define MXF_DESCRIPTIVE_METADATA(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_DESCRIPTIVE_METADATA,MXFDescriptiveMetadata))
+#define MXF_IS_DESCRIPTIVE_METADATA(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_DESCRIPTIVE_METADATA))
+#define MXF_DESCRIPTIVE_METADATA_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), MXF_TYPE_DESCRIPTIVE_METADATA, MXFDescriptiveMetadataClass))
+#define MXF_DESCRIPTIVE_METADATA_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),MXF_TYPE_DESCRIPTIVE_METADATA,MXFDescriptiveMetadataClass))
+typedef struct _MXFDescriptiveMetadata MXFDescriptiveMetadata;
+typedef struct _MXFDescriptiveMetadataClass MXFDescriptiveMetadataClass;
+GType mxf_descriptive_metadata_get_type (void);
+
+#define MXF_TYPE_DESCRIPTIVE_METADATA_FRAMEWORK \
+ (mxf_descriptive_metadata_framework_get_type ())
+#define MXF_DESCRIPTIVE_METADATA_FRAMEWORK(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), MXF_TYPE_DESCRIPTIVE_METADATA_FRAMEWORK, MXFDescriptiveMetadataFramework))
+#define MXF_IS_DESCRIPTIVE_METADATA_FRAMEWORK(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MXF_TYPE_DESCRIPTIVE_METADATA_FRAMEWORK))
+#define MXF_DESCRIPTIVE_METADATA_FRAMEWORK_GET_INTERFACE(inst) \
+ (G_TYPE_INSTANCE_GET_INTERFACE ((inst), MXF_TYPE_DESCRIPTIVE_METADATA_FRAMEWORK, MXFDescriptiveMetadataFrameworkInterface))
+
+typedef struct _MXFDescriptiveMetadataFramework MXFDescriptiveMetadataFramework; /* dummy object */
+typedef struct _MXFDescriptiveMetadataFrameworkInterface MXFDescriptiveMetadataFrameworkInterface;
+GType mxf_descriptive_metadata_framework_get_type (void);
+
typedef enum {
MXF_METADATA_BASE_RESOLVE_STATE_NONE = 0,
MXF_METADATA_BASE_RESOLVE_STATE_SUCCESS,
- MXF_METADATA_BASE_RESOLVE_STATE_FAILURE
+ MXF_METADATA_BASE_RESOLVE_STATE_FAILURE,
+ MXF_METADATA_BASE_RESOLVE_STATE_RUNNING
} MXFMetadataBaseResolveState;
struct _MXFMetadataBase {
GstMiniObject parent;
MXFUL instance_uid;
+ MXFUL generation_uid;
MXFMetadataBaseResolveState resolved;
@@ -365,8 +394,6 @@ struct _MXFMetadata {
struct _MXFMetadataPreface {
MXFMetadata parent;
- MXFUL generation_uid;
-
MXFTimestamp last_modified_date;
guint16 version;
@@ -415,8 +442,6 @@ struct _MXFMetadataIdentification {
struct _MXFMetadataContentStorage {
MXFMetadata parent;
- MXFUL generation_uid;
-
guint32 n_packages;
MXFUL *packages_uids;
MXFMetadataGenericPackage **packages;
@@ -429,8 +454,6 @@ struct _MXFMetadataContentStorage {
struct _MXFMetadataEssenceContainerData {
MXFMetadata parent;
- MXFUL generation_uid;
-
MXFUMID linked_package_uid;
MXFMetadataSourcePackage *linked_package;
@@ -441,8 +464,6 @@ struct _MXFMetadataEssenceContainerData {
struct _MXFMetadataGenericPackage {
MXFMetadata parent;
- MXFUL generation_uid;
-
MXFUMID package_uid;
gchar *name;
@@ -486,8 +507,6 @@ typedef enum {
struct _MXFMetadataTrack {
MXFMetadata parent;
- MXFUL generation_uid;
-
guint32 track_id;
guint32 track_number;
@@ -519,8 +538,6 @@ struct _MXFMetadataEventTrack {
struct _MXFMetadataSequence {
MXFMetadata parent;
- MXFUL generation_uid;
-
MXFUL data_definition;
gint64 duration;
@@ -533,8 +550,6 @@ struct _MXFMetadataSequence {
struct _MXFMetadataStructuralComponent {
MXFMetadata parent;
- MXFUL generation_uid;
-
MXFUL data_definition;
gint64 duration;
};
@@ -574,14 +589,12 @@ struct _MXFMetadataDMSegment {
guint32 *track_ids;
MXFUL dm_framework_uid;
- MXFMetadataBase *dm_framework;
+ MXFDescriptiveMetadataFramework *dm_framework;
};
struct _MXFMetadataGenericDescriptor {
MXFMetadata parent;
- MXFUL generation_uid;
-
guint32 n_locators;
MXFUL *locators_uids;
MXFMetadataLocator **locators;
@@ -698,8 +711,6 @@ struct _MXFMetadataMultipleDescriptor {
struct _MXFMetadataLocator {
MXFMetadata parent;
-
- MXFUL generation_uid;
};
struct _MXFMetadataNetworkLocator {
@@ -714,6 +725,25 @@ struct _MXFMetadataTextLocator {
gchar *locator_name;
};
+typedef struct {
+ guint32 id;
+ GType type;
+} MXFDescriptiveMetadataSet;
+
+struct _MXFDescriptiveMetadata {
+ MXFMetadataBase parent;
+
+ guint32 type;
+};
+
+struct _MXFDescriptiveMetadataClass {
+ MXFMetadataBase parent;
+};
+
+struct _MXFDescriptiveMetadataFrameworkInterface {
+ GTypeInterface parent;
+};
+
gboolean mxf_metadata_base_parse (MXFMetadataBase *self, MXFPrimerPack *primer, const guint8 *data, guint size);
gboolean mxf_metadata_base_resolve (MXFMetadataBase *self, MXFMetadataBase **metadata);
@@ -726,4 +756,7 @@ MXFMetadataTrackType mxf_metadata_track_identifier_parse (const MXFUL * track_id
void mxf_metadata_generic_picture_essence_descriptor_set_caps (MXFMetadataGenericPictureEssenceDescriptor * self, GstCaps * caps);
void mxf_metadata_generic_sound_essence_descriptor_set_caps (MXFMetadataGenericSoundEssenceDescriptor * self, GstCaps * caps);
+void mxf_descriptive_metadata_register (guint8 scheme, GSList *sets);
+MXFDescriptiveMetadata * mxf_descriptive_metadata_new (guint8 scheme, guint32 type, MXFPrimerPack * primer, const guint8 * data, guint size);
+
#endif /* __MXF_METADATA_H__ */