PR #24216 opened by adorn
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24216
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24216.patch

RFC 7233 allows an unknown complete-length ("bytes A-B/*"). strtoull("*")
returns 0, which clobbered a previously known filesize and made avio_size()
return 0 - breaking duration estimation over HTTP (e.g. N/A for CBR MP3 and
for WAV with a chunk after data).

Fixes #24210

# Summary of changes

Briefly describe what this PR does and why.

<!--
If this PR requires new FATE test samples, attach them to the PR and
list their target paths below (relative to the fate-suite root).

Attached filenames must match the sample's filename:

```fate-samples
# e.g. vorbis/new-sample.ogg
```
-->



>From fbb9f527221b181d8dd240fcce23c11c5264ac26 Mon Sep 17 00:00:00 2001
From: Andreas Menze <[email protected]>
Date: Thu, 20 Aug 2026 10:58:09 +0200
Subject: [PATCH] avformat/http: treat Content-Range "*" total as unknown, not
 0

RFC 7233 allows an unknown complete-length ("bytes A-B/*"). strtoull("*")
returns 0, which clobbered a previously known filesize and made avio_size()
return 0 - breaking duration estimation over HTTP (e.g. N/A for CBR MP3 and
for WAV with a chunk after data).

Fixes #24210
---
 libavformat/http.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/http.c b/libavformat/http.c
index 719d3c2ef5..756f09b1c9 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -928,7 +928,7 @@ static void parse_content_range(URLContext *h, const char 
*p)
         s->off = strtoull(p, NULL, 10);
         if ((end = strchr(p, '-')) && strlen(end) > 0)
             s->range_end = strtoull(end + 1, NULL, 10) + 1;
-        if ((slash = strchr(p, '/')) && strlen(slash) > 0)
+        if ((slash = strchr(p, '/')) && strlen(slash) > 0 && slash[1] != '*')
             s->filesize_from_content_range = strtoull(slash + 1, NULL, 10);
     }
     if (s->seekable == -1 && (!s->is_akamai || s->filesize != 2147483647))
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to