guint64 size;
const gchar *variant = NULL;
static const gchar *qt_brands[] = { "qt " };
+ static const gchar *cmaf_brands[] = {
+ "cmf2",
+ "cmfc",
+ /* CMAF AVC */
+ "cfsd",
+ "cfhd",
+ "chdf",
+ /* CMAF AAC */
+ "caac",
+ "caaa",
+ /* CMAF CEA closed captions */
+ "ccea",
+ /* CMAF HEVC */
+ "chhd",
+ "chh1",
+ "cud8",
+ "cud1",
+ "chd1",
+ "clg1"
+ /* TODO: CMAF WebVTT / IMSC1 */
+ };
static const gchar *iso_brands[] = {
"isom",
"avc1",
break;
}
+ if (ftyp_brand_is (&data[8], cmaf_brands, G_N_ELEMENTS (cmaf_brands))) {
+ tip = GST_TYPE_FIND_MAXIMUM;
+ variant = "cmaf";
+ break;
+ }
+
if (ftyp_brand_is (&data[8], iso_brands, G_N_ELEMENTS (iso_brands))) {
tip = GST_TYPE_FIND_MAXIMUM;
variant = "iso";
goto done;
new_offset = 12;
while (new_offset + 4 <= size) {
+ if (ftyp_brand_is (&data[new_offset], cmaf_brands,
+ G_N_ELEMENTS (cmaf_brands))) {
+ tip = GST_TYPE_FIND_MAXIMUM;
+ variant = "cmaf";
+ goto done;
+ }
+
if (ftyp_brand_is (&data[new_offset], iso_brands,
G_N_ELEMENTS (iso_brands))) {
tip = GST_TYPE_FIND_MAXIMUM;