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:24:30 +0100
commit28c11b2762ddd24b79a2542ca0f3d333e7cb9560 (patch)
tree6da6cd9afe4643c69afa796d7bfb65af06af0113
parenta83b7983127d0bbd7a6ba003e43e61bcd5e0f73b (diff)
downloadgstreamer-plugins-bad-28c11b2762ddd24b79a2542ca0f3d333e7cb9560.tar.gz
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 b2be578b6..6604926a9 100644
--- a/gst/mxf/mxfmetadata.c
+++ b/gst/mxf/mxfmetadata.c
@@ -434,6 +434,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);
@@ -3481,6 +3482,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 22cc3ff8d..80efa7595 100644
--- a/gst/mxf/mxfmetadata.h
+++ b/gst/mxf/mxfmetadata.h
@@ -194,6 +194,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) \
@@ -582,6 +592,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 be12d2931..f086b3f93 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 bce7207bd..5dc9a90ca 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;