summaryrefslogtreecommitdiffstats
path: root/gst/mxf/mxfparse.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/mxf/mxfparse.c')
-rw-r--r--gst/mxf/mxfparse.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/gst/mxf/mxfparse.c b/gst/mxf/mxfparse.c
index 571f6f20..1fc59ba3 100644
--- a/gst/mxf/mxfparse.c
+++ b/gst/mxf/mxfparse.c
@@ -1015,3 +1015,30 @@ mxf_local_tag_add_to_hash_table (const MXFPrimerPack * primer,
return TRUE;
}
+
+static GSList *_mxf_essence_element_handler_registry = NULL;
+
+void
+mxf_essence_element_handler_register (const MXFEssenceElementHandler * handler)
+{
+ _mxf_essence_element_handler_registry =
+ g_slist_prepend (_mxf_essence_element_handler_registry,
+ (gpointer) handler);
+}
+
+const MXFEssenceElementHandler *
+mxf_essence_element_handler_find (const MXFMetadataTimelineTrack * track)
+{
+ GSList *l;
+ const MXFEssenceElementHandler *ret = NULL;
+
+ for (l = _mxf_essence_element_handler_registry; l; l = l->next) {
+ MXFEssenceElementHandler *current = l->data;
+
+ if (current->handles_track (track)) {
+ ret = current;
+ }
+ }
+
+ return ret;
+}