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.
This commit is contained in:
Sebastian Dröge 2012-12-05 12:23:29 +01:00
parent a83b798312
commit 28c11b2762
4 changed files with 37 additions and 0 deletions

View file

@ -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);

View file

@ -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;

View file

@ -192,6 +192,7 @@ static const gchar *_quark_strings[] = {
"b-picture-count",
"bitrate",
"profile-and-level",
"filler",
};
GQuark _mxf_quark_table[MXF_QUARK_MAX];

View file

@ -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;