mxf: Demote error message when resolving valid empty reference
authorEdward Hervey <edward@centricular.com>
Wed, 23 Jun 2021 07:08:33 +0000 (09:08 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Wed, 21 Jul 2021 14:33:19 +0000 (14:33 +0000)
A Source Clip can have zero'd SourcePackageID and SourceTrackID, this indicates
it terminates the source reference chain

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>

gst/mxf/mxfmetadata.c

index ca9ed75..ac147d5 100644 (file)
@@ -3402,6 +3402,16 @@ mxf_metadata_source_clip_resolve (MXFMetadataBase * m, GHashTable * metadata)
   gchar str[96];
 #endif
 
+  if (mxf_umid_is_zero (&self->source_package_id)) {
+    /* S377-1:2019 B.10 Source Clip.
+     *
+     * SourcePackageID: The value shall be 32 zero valued bytes to terminate the
+     * source reference chain.  */
+    GST_LOG ("Skipping termination source package for source clip %s",
+        mxf_uuid_to_string (&MXF_METADATA_BASE (self)->instance_uid, str));
+    goto chain_up;
+  }
+
   g_hash_table_iter_init (&iter, metadata);
 
   while (g_hash_table_iter_next (&iter, NULL, (gpointer) & current)) {
@@ -3420,6 +3430,7 @@ mxf_metadata_source_clip_resolve (MXFMetadataBase * m, GHashTable * metadata)
         mxf_umid_to_string (&self->source_package_id, str));
   }
 
+chain_up:
   return
       MXF_METADATA_BASE_CLASS (mxf_metadata_source_clip_parent_class)->resolve
       (m, metadata);