diff options
Diffstat (limited to 'gst/typefind/gsttypefindfunctions.c')
-rw-r--r-- | gst/typefind/gsttypefindfunctions.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gst/typefind/gsttypefindfunctions.c b/gst/typefind/gsttypefindfunctions.c index 5600c53f9..be7371aa7 100644 --- a/gst/typefind/gsttypefindfunctions.c +++ b/gst/typefind/gsttypefindfunctions.c @@ -554,15 +554,19 @@ flac_type_find (GstTypeFind * tf, gpointer unused) { DataScanCtx c = { 0, NULL, 0 }; - if (G_UNLIKELY (!data_scan_ctx_ensure_data (tf, &c, 6))) + if (G_UNLIKELY (!data_scan_ctx_ensure_data (tf, &c, 4))) return; - /* standard flac */ + /* standard flac (also old/broken flac-in-ogg with an initial 4-byte marker + * packet and without the usual packet framing) */ if (memcmp (c.data, "fLaC", 4) == 0) { gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, FLAC_CAPS); return; } + if (G_UNLIKELY (!data_scan_ctx_ensure_data (tf, &c, 6))) + return; + /* flac-in-ogg, see http://flac.sourceforge.net/ogg_mapping.html */ if (memcmp (c.data, "\177FLAC\001", 6) == 0) { gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, FLAC_CAPS); |