summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-12-05 12:23:29 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-12-05 12:23:29 +0100
commitf9f050878f153fdad242cd20aaca49b8a44fe7f3 (patch)
tree2669c907f28a19e0cdfbdda6e4908eb9edbdcad9
parent448b3c308b677d9f03a9c4252c1b31adab995acb (diff)
mxf: Add support for parsing filler structural components
This does not add support for actually producing filler data if there's a filler component in a timeline.
-rw-r--r--gst/mxf/mxfmetadata.c21
-rw-r--r--gst/mxf/mxfmetadata.h14
-rw-r--r--gst/mxf/mxfquark.c1
-rw-r--r--gst/mxf/mxfquark.h1
4 files changed, 37 insertions, 0 deletions
diff --git a/gst/mxf/mxfmetadata.c b/gst/mxf/mxfmetadata.c
index d1d7f3650..631b6fdbd 100644
--- a/gst/mxf/mxfmetadata.c
+++ b/gst/mxf/mxfmetadata.c
@@ -428,6 +428,7 @@ mxf_metadata_init_types (void)
_add_metadata_type (MXF_TYPE_METADATA_STATIC_TRACK);
_add_metadata_type (MXF_TYPE_METADATA_SEQUENCE);
_add_metadata_type (MXF_TYPE_METADATA_SOURCE_CLIP);
+ _add_metadata_type (MXF_TYPE_METADATA_FILLER);
_add_metadata_type (MXF_TYPE_METADATA_TIMECODE_COMPONENT);
_add_metadata_type (MXF_TYPE_METADATA_DM_SEGMENT);
_add_metadata_type (MXF_TYPE_METADATA_DM_SOURCE_CLIP);
@@ -3478,6 +3479,26 @@ mxf_metadata_source_clip_class_init (MXFMetadataSourceClipClass * klass)
metadata_class->type = 0x0111;
}
+
+G_DEFINE_TYPE (MXFMetadataFiller, mxf_metadata_filler,
+ MXF_TYPE_METADATA_STRUCTURAL_COMPONENT);
+
+static void
+mxf_metadata_filler_init (MXFMetadataFiller * self)
+{
+
+}
+
+static void
+mxf_metadata_filler_class_init (MXFMetadataFillerClass * klass)
+{
+ MXFMetadataBaseClass *metadata_base_class = (MXFMetadataBaseClass *) klass;
+ MXFMetadataClass *metadata_class = (MXFMetadataClass *) klass;
+
+ metadata_base_class->name_quark = MXF_QUARK (FILLER);
+ metadata_class->type = 0x0109;
+}
+
G_DEFINE_TYPE (MXFMetadataDMSourceClip, mxf_metadata_dm_source_clip,
MXF_TYPE_METADATA_SOURCE_CLIP);
diff --git a/gst/mxf/mxfmetadata.h b/gst/mxf/mxfmetadata.h
index b5e45b12b..dbd23a399 100644
--- a/gst/mxf/mxfmetadata.h
+++ b/gst/mxf/mxfmetadata.h
@@ -193,6 +193,16 @@ typedef struct _MXFMetadataSourceClip MXFMetadataSourceClip;
typedef MXFMetadataClass MXFMetadataSourceClipClass;
GType mxf_metadata_source_clip_get_type (void);
+#define MXF_TYPE_METADATA_FILLER \
+ (mxf_metadata_filler_get_type())
+#define MXF_METADATA_FILLER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),MXF_TYPE_METADATA_FILLER, MXFMetadataFiller))
+#define MXF_IS_METADATA_FILLER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),MXF_TYPE_METADATA_FILLER))
+typedef struct _MXFMetadataFiller MXFMetadataFiller;
+typedef MXFMetadataClass MXFMetadataFillerClass;
+GType mxf_metadata_filler_get_type (void);
+
#define MXF_TYPE_METADATA_TIMECODE_COMPONENT \
(mxf_metadata_timecode_component_get_type())
#define MXF_METADATA_TIMECODE_COMPONENT(obj) \
@@ -581,6 +591,10 @@ struct _MXFMetadataSourceClip {
guint32 source_track_id;
};
+struct _MXFMetadataFiller {
+ MXFMetadataStructuralComponent parent;
+};
+
struct _MXFMetadataDMSourceClip {
MXFMetadataSourceClip parent;
diff --git a/gst/mxf/mxfquark.c b/gst/mxf/mxfquark.c
index 9f350e7cb..ea9aa199b 100644
--- a/gst/mxf/mxfquark.c
+++ b/gst/mxf/mxfquark.c
@@ -192,6 +192,7 @@ static const gchar *_quark_strings[] = {
"b-picture-count",
"bitrate",
"profile-and-level",
+ "filler",
};
GQuark _mxf_quark_table[MXF_QUARK_MAX];
diff --git a/gst/mxf/mxfquark.h b/gst/mxf/mxfquark.h
index 6b61c69cc..59a39b47d 100644
--- a/gst/mxf/mxfquark.h
+++ b/gst/mxf/mxfquark.h
@@ -191,6 +191,7 @@ typedef enum {
MXF_QUARK_B_PICTURE_COUNT = 165,
MXF_QUARK_BITRATE = 166,
MXF_QUARK_PROFILE_AND_LEVEL = 167,
+ MXF_QUARK_FILLER = 168,
MXF_QUARK_MAX
} MXFQuarkId;