mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
typefind: Expand the search range for HLS detection
HLS files can have arbitrary extra tags in them, and those can be quite long lines. We need to search further than 256 bytes sometimes just to get past the first few lines of the file. Make the limit 4KB, which matches a typical input block size and should hopefully cover every crazy input. https://bugzilla.gnome.org/show_bug.cgi?id=780559
This commit is contained in:
parent
20dd51b92c
commit
0bb82827f7
1 changed files with 4 additions and 3 deletions
|
@ -503,7 +503,8 @@ hls_type_find (GstTypeFind * tf, gpointer unused)
|
|||
{
|
||||
DataScanCtx c = { 0, NULL, 0 };
|
||||
|
||||
if (G_UNLIKELY (!data_scan_ctx_ensure_data (tf, &c, 7)))
|
||||
/* Minimum useful size is #EXTM3U\n + 1 tag + ':' = 30 bytes */
|
||||
if (G_UNLIKELY (!data_scan_ctx_ensure_data (tf, &c, 30)))
|
||||
return;
|
||||
|
||||
if (memcmp (c.data, "#EXTM3U", 7))
|
||||
|
@ -511,8 +512,8 @@ hls_type_find (GstTypeFind * tf, gpointer unused)
|
|||
|
||||
data_scan_ctx_advance (tf, &c, 7);
|
||||
|
||||
/* Check only the first 256 bytes */
|
||||
while (c.offset < 256) {
|
||||
/* Check only the first 4KB */
|
||||
while (c.offset < 4096) {
|
||||
if (G_UNLIKELY (!data_scan_ctx_ensure_data (tf, &c, 21)))
|
||||
return;
|
||||
|
||||
|
|
Loading…
Reference in a new issue