static gboolean mxf_is_d10_essence_track (const MXFMetadataTimelineTrack * track) { guint i; g_return_val_if_fail (track != NULL, FALSE); if (track->parent.descriptor == NULL) return FALSE; for (i = 0; i < track->parent.n_descriptor; i++) { MXFMetadataFileDescriptor *d = track->parent.descriptor[i]; MXFUL *key; if (!d) continue; key = &d->essence_container; /* SMPTE 386M 5.1 */ if (mxf_is_generic_container_essence_container_label (key) && key->u[12] == 0x02 && key->u[13] == 0x01 && (key->u[14] >= 0x01 && key->u[14] <= 0x06) && (key->u[15] == 0x01 || key->u[15] == 0x02)) return TRUE; } return FALSE; }
static gboolean mxf_is_vc3_essence_track (const MXFMetadataTimelineTrack * track) { guint i; g_return_val_if_fail (track != NULL, FALSE); if (track->parent.descriptor == NULL) return FALSE; for (i = 0; i < track->parent.n_descriptor; i++) { MXFMetadataFileDescriptor *d = track->parent.descriptor[i]; MXFUL *key; if (!d) continue; key = &d->essence_container; /* SMPTE S2019-4 7 */ if (mxf_is_generic_container_essence_container_label (key) && key->u[12] == 0x02 && key->u[13] == 0x11 && (key->u[14] == 0x01 || key->u[14] == 0x02)) { return TRUE; } else if (mxf_is_avid_essence_container_label (key)) { MXFMetadataGenericPictureEssenceDescriptor *p; if (!MXF_IS_METADATA_GENERIC_PICTURE_ESSENCE_DESCRIPTOR (d)) return FALSE; p = MXF_METADATA_GENERIC_PICTURE_ESSENCE_DESCRIPTOR (d); key = &p->picture_essence_coding; if (mxf_ul_is_subclass (&picture_essence_coding_vc3_avid, key)) return TRUE; } } return FALSE; }