mxfdemux: Add read-only property to get the structural metadata

This commit is contained in:
Sebastian Dröge 2009-02-21 17:45:09 +01:00
parent a0951a630b
commit b7f617ad58

View file

@ -114,7 +114,8 @@ enum
{
PROP_0,
PROP_PACKAGE,
PROP_MAX_DRIFT
PROP_MAX_DRIFT,
PROP_STRUCTURE
};
static gboolean gst_mxf_demux_sink_event (GstPad * pad, GstEvent * event);
@ -3789,6 +3790,23 @@ gst_mxf_demux_get_property (GObject * object, guint prop_id,
case PROP_MAX_DRIFT:
g_value_set_uint64 (value, demux->max_drift);
break;
case PROP_STRUCTURE:{
GstStructure *s;
g_mutex_lock (demux->metadata_lock);
if (demux->preface)
s = mxf_metadata_base_to_structure (MXF_METADATA_BASE (demux->preface));
else
s = NULL;
gst_value_set_structure (value, s);
if (s)
gst_structure_free (s);
g_mutex_unlock (demux->metadata_lock);
break;
}
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@ -3869,6 +3887,11 @@ gst_mxf_demux_class_init (GstMXFDemuxClass * klass)
100 * GST_MSECOND, G_MAXUINT64, 500 * GST_MSECOND,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_STRUCTURE,
g_param_spec_boxed ("structure", "Structure",
"Structural metadata of the MXF file",
GST_TYPE_STRUCTURE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
gstelement_class->change_state =
GST_DEBUG_FUNCPTR (gst_mxf_demux_change_state);
gstelement_class->query = GST_DEBUG_FUNCPTR (gst_mxf_demux_query);