summaryrefslogtreecommitdiff
path: root/gst/typefind/gsttypefindfunctions.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/typefind/gsttypefindfunctions.c')
-rw-r--r--gst/typefind/gsttypefindfunctions.c8
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);