* [FFmpeg-devel] [PATCH 1/3] avformat/hls: reduce default max reload to 3
@ 2023-05-15 0:05 Michael Niedermayer
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 2/3] avformat: add ff_match_url_ext() Michael Niedermayer
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Michael Niedermayer @ 2023-05-15 0:05 UTC (permalink / raw)
To: FFmpeg development discussions and patches
The 1000 did result in the appearance of a never ending reload loop
The RFC mandates that "If the client reloads a Playlist file and finds that it has not
changed, then it MUST wait for a period of one-half the target
duration before retrying." and if it has changed
"the client MUST wait for at least the target duration before attempting to reload the
Playlist file again"
Trying to reload 3 times seems a better default than 1000 given these
durations
Issue found by: Сергей Колесников
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
libavformat/hls.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/hls.c b/libavformat/hls.c
index 11e345b280..df2442c376 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -2556,7 +2556,7 @@ static const AVOption hls_options[] = {
{.str = "3gp,aac,avi,ac3,eac3,flac,mkv,m3u8,m4a,m4s,m4v,mpg,mov,mp2,mp3,mp4,mpeg,mpegts,ogg,ogv,oga,ts,vob,wav"},
INT_MIN, INT_MAX, FLAGS},
{"max_reload", "Maximum number of times a insufficient list is attempted to be reloaded",
- OFFSET(max_reload), AV_OPT_TYPE_INT, {.i64 = 1000}, 0, INT_MAX, FLAGS},
+ OFFSET(max_reload), AV_OPT_TYPE_INT, {.i64 = 3}, 0, INT_MAX, FLAGS},
{"m3u8_hold_counters", "The maximum number of times to load m3u8 when it refreshes without new segments",
OFFSET(m3u8_hold_counters), AV_OPT_TYPE_INT, {.i64 = 1000}, 0, INT_MAX, FLAGS},
{"http_persistent", "Use persistent HTTP connections",
--
2.17.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* [FFmpeg-devel] [PATCH 2/3] avformat: add ff_match_url_ext()
2023-05-15 0:05 [FFmpeg-devel] [PATCH 1/3] avformat/hls: reduce default max reload to 3 Michael Niedermayer
@ 2023-05-15 0:05 ` Michael Niedermayer
2023-05-15 3:10 ` Leo Izen
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal Michael Niedermayer
2023-09-16 17:39 ` [FFmpeg-devel] [PATCH 1/3] avformat/hls: reduce default max reload to 3 Michael Niedermayer
2 siblings, 1 reply; 12+ messages in thread
From: Michael Niedermayer @ 2023-05-15 0:05 UTC (permalink / raw)
To: FFmpeg development discussions and patches
Match url against a list of extensions similar to av_match_ext()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
libavformat/format.c | 25 +++++++++++++++++++++++++
libavformat/internal.h | 9 +++++++++
2 files changed, 34 insertions(+)
diff --git a/libavformat/format.c b/libavformat/format.c
index 52b814e67d..04fdbacec0 100644
--- a/libavformat/format.c
+++ b/libavformat/format.c
@@ -50,6 +50,31 @@ int av_match_ext(const char *filename, const char *extensions)
return 0;
}
+int ff_match_url_ext(const char *url, const char *extensions)
+{
+ const char *ext;
+ URLComponents uc;
+ int ret;
+ char scratchpad[128];
+
+ if (!url)
+ return 0;
+
+ ret = ff_url_decompose(&uc, url, NULL);
+ if (ret < 0 || !URL_COMPONENT_HAVE(uc, scheme))
+ return ret;
+ for (ext = uc.query; *ext != '.' && ext > uc.path; ext--)
+ ;
+
+ if (*ext != '.')
+ return 0;
+ if (uc.query - ext > sizeof(scratchpad))
+ return AVERROR(ENOMEM); //not enough memory in our scratchpad
+ av_strlcpy(scratchpad, ext + 1, FFMIN(sizeof(scratchpad), uc.query - ext));
+
+ return av_match_name(scratchpad, extensions);
+}
+
const AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
const char *mime_type)
{
diff --git a/libavformat/internal.h b/libavformat/internal.h
index f575064e8f..43466fbe6d 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -705,6 +705,15 @@ int ff_unlock_avformat(void);
*/
void ff_format_set_url(AVFormatContext *s, char *url);
+/**
+ * Return a positive value if the given url has one of the given
+ * extensions, 0 otherwise.
+ *
+ * @param filename file name to check against the given extensions
+ * @param extensions a comma-separated list of filename extensions
+ */
+int ff_match_url_ext(const char *url, const char *extensions);
+
struct FFOutputFormat;
void avpriv_register_devices(const struct FFOutputFormat * const o[], const AVInputFormat * const i[]);
--
2.17.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal
2023-05-15 0:05 [FFmpeg-devel] [PATCH 1/3] avformat/hls: reduce default max reload to 3 Michael Niedermayer
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 2/3] avformat: add ff_match_url_ext() Michael Niedermayer
@ 2023-05-15 0:05 ` Michael Niedermayer
2023-05-15 0:17 ` Michael Niedermayer
` (2 more replies)
2023-09-16 17:39 ` [FFmpeg-devel] [PATCH 1/3] avformat/hls: reduce default max reload to 3 Michael Niedermayer
2 siblings, 3 replies; 12+ messages in thread
From: Michael Niedermayer @ 2023-05-15 0:05 UTC (permalink / raw)
To: FFmpeg development discussions and patches
This is not well tested and can likely be improved, just a
hotfix for hls probe failures since 6b1f68ccb04d791f0250e05687c346a99ff47ea1
Should fix Ticket10353 (please test and report cases that still fail)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
libavformat/hls.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/libavformat/hls.c b/libavformat/hls.c
index df2442c376..790ae7a96a 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -2534,7 +2534,16 @@ static int hls_probe(const AVProbeData *p)
strstr(p->buf, "#EXT-X-TARGETDURATION:") ||
strstr(p->buf, "#EXT-X-MEDIA-SEQUENCE:")) {
- if (!av_match_ext(p->filename, "m3u8,hls,m3u")) {
+ int mime_ok = p->mime_type && !(
+ av_strcasecmp(p->mime_type, "application/vnd.apple.mpegurl") &&
+ av_strcasecmp(p->mime_type, "audio/mpegurl") &&
+ av_strcasecmp(p->mime_type, "audio/x-mpegurl") &&
+ av_strcasecmp(p->mime_type, "application/x-mpegurl")
+ );
+
+ if (!av_match_ext (p->filename, "m3u8,hls,m3u") &&
+ ff_match_url_ext(p->filename, "m3u8,hls,m3u") <= 0 &&
+ !mime_ok) {
av_log(NULL, AV_LOG_ERROR, "Not detecting m3u8/hls with non standard extension\n");
return 0;
}
--
2.17.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal Michael Niedermayer
@ 2023-05-15 0:17 ` Michael Niedermayer
2023-05-15 1:08 ` Michael Niedermayer
2023-05-15 3:14 ` Leo Izen
2023-05-15 9:58 ` Kacper Michajlow
2 siblings, 1 reply; 12+ messages in thread
From: Michael Niedermayer @ 2023-05-15 0:17 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 704 bytes --]
On Mon, May 15, 2023 at 02:05:47AM +0200, Michael Niedermayer wrote:
> This is not well tested and can likely be improved, just a
> hotfix for hls probe failures since 6b1f68ccb04d791f0250e05687c346a99ff47ea1
>
> Should fix Ticket10353 (please test and report cases that still fail)
>
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
> libavformat/hls.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
i will apply this real soon as it seems to affect many people
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Republics decline into democracies and democracies degenerate into
despotisms. -- Aristotle
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal
2023-05-15 0:17 ` Michael Niedermayer
@ 2023-05-15 1:08 ` Michael Niedermayer
0 siblings, 0 replies; 12+ messages in thread
From: Michael Niedermayer @ 2023-05-15 1:08 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 866 bytes --]
On Mon, May 15, 2023 at 02:17:35AM +0200, Michael Niedermayer wrote:
> On Mon, May 15, 2023 at 02:05:47AM +0200, Michael Niedermayer wrote:
> > This is not well tested and can likely be improved, just a
> > hotfix for hls probe failures since 6b1f68ccb04d791f0250e05687c346a99ff47ea1
> >
> > Should fix Ticket10353 (please test and report cases that still fail)
> >
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> > libavformat/hls.c | 11 ++++++++++-
> > 1 file changed, 10 insertions(+), 1 deletion(-)
>
> i will apply this real soon as it seems to affect many people
Patch 2 & 3 applied
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
"Nothing to hide" only works if the folks in power share the values of
you and everyone you know entirely and always will -- Tom Scott
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat: add ff_match_url_ext()
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 2/3] avformat: add ff_match_url_ext() Michael Niedermayer
@ 2023-05-15 3:10 ` Leo Izen
2023-05-15 19:12 ` Michael Niedermayer
0 siblings, 1 reply; 12+ messages in thread
From: Leo Izen @ 2023-05-15 3:10 UTC (permalink / raw)
To: ffmpeg-devel
On 5/14/23 20:05, Michael Niedermayer wrote:
> Match url against a list of extensions similar to av_match_ext()
>
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
> libavformat/format.c | 25 +++++++++++++++++++++++++
> libavformat/internal.h | 9 +++++++++
> 2 files changed, 34 insertions(+)
>
> diff --git a/libavformat/format.c b/libavformat/format.c
> index 52b814e67d..04fdbacec0 100644
> --- a/libavformat/format.c
> +++ b/libavformat/format.c
> @@ -50,6 +50,31 @@ int av_match_ext(const char *filename, const char *extensions)
> return 0;
> }
>
> +int ff_match_url_ext(const char *url, const char *extensions)
> +{
> + const char *ext;
> + URLComponents uc;
> + int ret;
> + char scratchpad[128];
> +
> + if (!url)
> + return 0;
> +
> + ret = ff_url_decompose(&uc, url, NULL);
> + if (ret < 0 || !URL_COMPONENT_HAVE(uc, scheme))
> + return ret;
> + for (ext = uc.query; *ext != '.' && ext > uc.path; ext--)
> + ; > +
> + if (*ext != '.')
> + return 0;
> + if (uc.query - ext > sizeof(scratchpad))
> + return AVERROR(ENOMEM); //not enough memory in our scratchpad
> + av_strlcpy(scratchpad, ext + 1, FFMIN(sizeof(scratchpad), uc.query - ext));
This FFMIN is superfluous as sizeof(scratchpad) will always be greater
than or equal to uc.query - ext after the check above it.
> +
> + return av_match_name(scratchpad, extensions);
> +}
> +
> const AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
> const char *mime_type)
> {
> diff --git a/libavformat/internal.h b/libavformat/internal.h
> index f575064e8f..43466fbe6d 100644
> --- a/libavformat/internal.h
> +++ b/libavformat/internal.h
> @@ -705,6 +705,15 @@ int ff_unlock_avformat(void);
> */
> void ff_format_set_url(AVFormatContext *s, char *url);
>
> +/**
> + * Return a positive value if the given url has one of the given
> + * extensions, 0 otherwise.
> + *
> + * @param filename file name to check against the given extensions
Copy/paste error, this should be @param url.
> + * @param extensions a comma-separated list of filename extensions
> + */
> +int ff_match_url_ext(const char *url, const char *extensions);
> +
> struct FFOutputFormat;
> void avpriv_register_devices(const struct FFOutputFormat * const o[], const AVInputFormat * const i[]);
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal Michael Niedermayer
2023-05-15 0:17 ` Michael Niedermayer
@ 2023-05-15 3:14 ` Leo Izen
2023-05-15 19:30 ` Michael Niedermayer
2023-05-15 9:58 ` Kacper Michajlow
2 siblings, 1 reply; 12+ messages in thread
From: Leo Izen @ 2023-05-15 3:14 UTC (permalink / raw)
To: ffmpeg-devel
On 5/14/23 20:05, Michael Niedermayer wrote:
> This is not well tested and can likely be improved, just a
> hotfix for hls probe failures since 6b1f68ccb04d791f0250e05687c346a99ff47ea1
>
> Should fix Ticket10353 (please test and report cases that still fail)
>
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
> libavformat/hls.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/hls.c b/libavformat/hls.c
> index df2442c376..790ae7a96a 100644
> --- a/libavformat/hls.c
> +++ b/libavformat/hls.c
> @@ -2534,7 +2534,16 @@ static int hls_probe(const AVProbeData *p)
> strstr(p->buf, "#EXT-X-TARGETDURATION:") ||
> strstr(p->buf, "#EXT-X-MEDIA-SEQUENCE:")) {
>
> - if (!av_match_ext(p->filename, "m3u8,hls,m3u")) {
> + int mime_ok = p->mime_type && !(
> + av_strcasecmp(p->mime_type, "application/vnd.apple.mpegurl") &&
> + av_strcasecmp(p->mime_type, "audio/mpegurl") &&
> + av_strcasecmp(p->mime_type, "audio/x-mpegurl") &&
> + av_strcasecmp(p->mime_type, "application/x-mpegurl")
> + );
> +
> + if (!av_match_ext (p->filename, "m3u8,hls,m3u") &&
> + ff_match_url_ext(p->filename, "m3u8,hls,m3u") <= 0 &&
What's the point of checking both av_match_ext and ff_match_url_ext
here? Should only want one or the other.
> + !mime_ok) {
Put !mime_ok first to take advantage of lazy &&, as it will usually be
okay in practice.
> av_log(NULL, AV_LOG_ERROR, "Not detecting m3u8/hls with non standard extension\n");
> return 0;
> }
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal Michael Niedermayer
2023-05-15 0:17 ` Michael Niedermayer
2023-05-15 3:14 ` Leo Izen
@ 2023-05-15 9:58 ` Kacper Michajlow
2023-05-15 19:44 ` Michael Niedermayer
2 siblings, 1 reply; 12+ messages in thread
From: Kacper Michajlow @ 2023-05-15 9:58 UTC (permalink / raw)
To: FFmpeg development discussions and patches
On Mon, 15 May 2023 at 02:06, Michael Niedermayer
<michael@niedermayer.cc> wrote:
>
> This is not well tested and can likely be improved, just a
> hotfix for hls probe failures since 6b1f68ccb04d791f0250e05687c346a99ff47ea1
>
> Should fix Ticket10353 (please test and report cases that still fail)
>
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
> libavformat/hls.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/hls.c b/libavformat/hls.c
> index df2442c376..790ae7a96a 100644
> --- a/libavformat/hls.c
> +++ b/libavformat/hls.c
> @@ -2534,7 +2534,16 @@ static int hls_probe(const AVProbeData *p)
> strstr(p->buf, "#EXT-X-TARGETDURATION:") ||
> strstr(p->buf, "#EXT-X-MEDIA-SEQUENCE:")) {
>
> - if (!av_match_ext(p->filename, "m3u8,hls,m3u")) {
> + int mime_ok = p->mime_type && !(
> + av_strcasecmp(p->mime_type, "application/vnd.apple.mpegurl") &&
> + av_strcasecmp(p->mime_type, "audio/mpegurl") &&
> + av_strcasecmp(p->mime_type, "audio/x-mpegurl") &&
> + av_strcasecmp(p->mime_type, "application/x-mpegurl")
How about we AV_LOG_WARNING when non-standard/deprecated mime type is
used? If we want to be strict about rfc8216 only two first should be
supported. Of course for compatibility reasons likely we need to
support all of them, but warn about it would be nice touch.
> + );
> +
> + if (!av_match_ext (p->filename, "m3u8,hls,m3u") &&
> + ff_match_url_ext(p->filename, "m3u8,hls,m3u") <= 0 &&
Where '.hls' came from? I don't think those are in fact used in the
wild? Maybe we can be strict and use only "m3u8,m3u"?
> + !mime_ok) {
> av_log(NULL, AV_LOG_ERROR, "Not detecting m3u8/hls with non standard extension\n");
This log wording is little bit off now, when there is no extension and
only mime matching.
> return 0;
> }
> --
> 2.17.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Minor remarks, but funcionally the patch resolves the issue. Thanks.
- Kacper
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/3] avformat: add ff_match_url_ext()
2023-05-15 3:10 ` Leo Izen
@ 2023-05-15 19:12 ` Michael Niedermayer
0 siblings, 0 replies; 12+ messages in thread
From: Michael Niedermayer @ 2023-05-15 19:12 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 2810 bytes --]
On Sun, May 14, 2023 at 11:10:00PM -0400, Leo Izen wrote:
> On 5/14/23 20:05, Michael Niedermayer wrote:
> > Match url against a list of extensions similar to av_match_ext()
> >
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> > libavformat/format.c | 25 +++++++++++++++++++++++++
> > libavformat/internal.h | 9 +++++++++
> > 2 files changed, 34 insertions(+)
> >
> > diff --git a/libavformat/format.c b/libavformat/format.c
> > index 52b814e67d..04fdbacec0 100644
> > --- a/libavformat/format.c
> > +++ b/libavformat/format.c
> > @@ -50,6 +50,31 @@ int av_match_ext(const char *filename, const char *extensions)
> > return 0;
> > }
> > +int ff_match_url_ext(const char *url, const char *extensions)
> > +{
> > + const char *ext;
> > + URLComponents uc;
> > + int ret;
> > + char scratchpad[128];
> > +
> > + if (!url)
> > + return 0;
> > +
> > + ret = ff_url_decompose(&uc, url, NULL);
> > + if (ret < 0 || !URL_COMPONENT_HAVE(uc, scheme))
> > + return ret;
> > + for (ext = uc.query; *ext != '.' && ext > uc.path; ext--)
> > + ; > +
> > + if (*ext != '.')
> > + return 0;
> > + if (uc.query - ext > sizeof(scratchpad))
> > + return AVERROR(ENOMEM); //not enough memory in our scratchpad
> > + av_strlcpy(scratchpad, ext + 1, FFMIN(sizeof(scratchpad), uc.query - ext));
>
> This FFMIN is superfluous as sizeof(scratchpad) will always be greater than
> or equal to uc.query - ext after the check above it.
yes, ill remove it, if noone else did it before me
>
> > +
> > + return av_match_name(scratchpad, extensions);
> > +}
> > +
> > const AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
> > const char *mime_type)
> > {
> > diff --git a/libavformat/internal.h b/libavformat/internal.h
> > index f575064e8f..43466fbe6d 100644
> > --- a/libavformat/internal.h
> > +++ b/libavformat/internal.h
> > @@ -705,6 +705,15 @@ int ff_unlock_avformat(void);
> > */
> > void ff_format_set_url(AVFormatContext *s, char *url);
> > +/**
> > + * Return a positive value if the given url has one of the given
> > + * extensions, 0 otherwise.
> > + *
> > + * @param filename file name to check against the given extensions
>
> Copy/paste error, this should be @param url.
too late, ive already pushed the patch with this fixed
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Frequently ignored answer#1 FFmpeg bugs should be sent to our bugtracker. User
questions about the command line tools should be sent to the ffmpeg-user ML.
And questions about how to use libav* should be sent to the libav-user ML.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal
2023-05-15 3:14 ` Leo Izen
@ 2023-05-15 19:30 ` Michael Niedermayer
0 siblings, 0 replies; 12+ messages in thread
From: Michael Niedermayer @ 2023-05-15 19:30 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 2005 bytes --]
On Sun, May 14, 2023 at 11:14:12PM -0400, Leo Izen wrote:
>
>
> On 5/14/23 20:05, Michael Niedermayer wrote:
> > This is not well tested and can likely be improved, just a
> > hotfix for hls probe failures since 6b1f68ccb04d791f0250e05687c346a99ff47ea1
> >
> > Should fix Ticket10353 (please test and report cases that still fail)
> >
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> > libavformat/hls.c | 11 ++++++++++-
> > 1 file changed, 10 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavformat/hls.c b/libavformat/hls.c
> > index df2442c376..790ae7a96a 100644
> > --- a/libavformat/hls.c
> > +++ b/libavformat/hls.c
> > @@ -2534,7 +2534,16 @@ static int hls_probe(const AVProbeData *p)
> > strstr(p->buf, "#EXT-X-TARGETDURATION:") ||
> > strstr(p->buf, "#EXT-X-MEDIA-SEQUENCE:")) {
> > - if (!av_match_ext(p->filename, "m3u8,hls,m3u")) {
> > + int mime_ok = p->mime_type && !(
> > + av_strcasecmp(p->mime_type, "application/vnd.apple.mpegurl") &&
> > + av_strcasecmp(p->mime_type, "audio/mpegurl") &&
> > + av_strcasecmp(p->mime_type, "audio/x-mpegurl") &&
> > + av_strcasecmp(p->mime_type, "application/x-mpegurl")
> > + );
> > +
> > + if (!av_match_ext (p->filename, "m3u8,hls,m3u") &&
> > + ff_match_url_ext(p->filename, "m3u8,hls,m3u") <= 0 &&
> What's the point of checking both av_match_ext and ff_match_url_ext here?
> Should only want one or the other.
is p->filename a URL ?
> > + !mime_ok) {
>
> Put !mime_ok first to take advantage of lazy &&, as it will usually be okay
> in practice.
ok, will reorder it
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Homeopathy is like voting while filling the ballot out with transparent ink.
Sometimes the outcome one wanted occurs. Rarely its worse than filling out
a ballot properly.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal
2023-05-15 9:58 ` Kacper Michajlow
@ 2023-05-15 19:44 ` Michael Niedermayer
0 siblings, 0 replies; 12+ messages in thread
From: Michael Niedermayer @ 2023-05-15 19:44 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 2534 bytes --]
On Mon, May 15, 2023 at 11:58:16AM +0200, Kacper Michajlow wrote:
> On Mon, 15 May 2023 at 02:06, Michael Niedermayer
> <michael@niedermayer.cc> wrote:
> >
> > This is not well tested and can likely be improved, just a
> > hotfix for hls probe failures since 6b1f68ccb04d791f0250e05687c346a99ff47ea1
> >
> > Should fix Ticket10353 (please test and report cases that still fail)
> >
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> > libavformat/hls.c | 11 ++++++++++-
> > 1 file changed, 10 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavformat/hls.c b/libavformat/hls.c
> > index df2442c376..790ae7a96a 100644
> > --- a/libavformat/hls.c
> > +++ b/libavformat/hls.c
> > @@ -2534,7 +2534,16 @@ static int hls_probe(const AVProbeData *p)
> > strstr(p->buf, "#EXT-X-TARGETDURATION:") ||
> > strstr(p->buf, "#EXT-X-MEDIA-SEQUENCE:")) {
> >
> > - if (!av_match_ext(p->filename, "m3u8,hls,m3u")) {
> > + int mime_ok = p->mime_type && !(
> > + av_strcasecmp(p->mime_type, "application/vnd.apple.mpegurl") &&
> > + av_strcasecmp(p->mime_type, "audio/mpegurl") &&
> > + av_strcasecmp(p->mime_type, "audio/x-mpegurl") &&
> > + av_strcasecmp(p->mime_type, "application/x-mpegurl")
>
> How about we AV_LOG_WARNING when non-standard/deprecated mime type is
> used? If we want to be strict about rfc8216 only two first should be
> supported. Of course for compatibility reasons likely we need to
> support all of them, but warn about it would be nice touch.
ok
>
> > + );
> > +
> > + if (!av_match_ext (p->filename, "m3u8,hls,m3u") &&
> > + ff_match_url_ext(p->filename, "m3u8,hls,m3u") <= 0 &&
>
> Where '.hls' came from? I don't think those are in fact used in the
> wild? Maybe we can be strict and use only "m3u8,m3u"?
i was thinking of it but i left them in yesterday. Ill post a patch
that would remove them.
I have a few files ending in hls but none of them qualify as "in the wild"
>
> > + !mime_ok) {
> > av_log(NULL, AV_LOG_ERROR, "Not detecting m3u8/hls with non standard extension\n");
>
> This log wording is little bit off now, when there is no extension and
> only mime matching.
will post a patch
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
It is dangerous to be right in matters on which the established authorities
are wrong. -- Voltaire
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [FFmpeg-devel] [PATCH 1/3] avformat/hls: reduce default max reload to 3
2023-05-15 0:05 [FFmpeg-devel] [PATCH 1/3] avformat/hls: reduce default max reload to 3 Michael Niedermayer
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 2/3] avformat: add ff_match_url_ext() Michael Niedermayer
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal Michael Niedermayer
@ 2023-09-16 17:39 ` Michael Niedermayer
2 siblings, 0 replies; 12+ messages in thread
From: Michael Niedermayer @ 2023-09-16 17:39 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 1072 bytes --]
On Mon, May 15, 2023 at 02:05:45AM +0200, Michael Niedermayer wrote:
> The 1000 did result in the appearance of a never ending reload loop
>
> The RFC mandates that "If the client reloads a Playlist file and finds that it has not
> changed, then it MUST wait for a period of one-half the target
> duration before retrying." and if it has changed
> "the client MUST wait for at least the target duration before attempting to reload the
> Playlist file again"
>
> Trying to reload 3 times seems a better default than 1000 given these
> durations
>
> Issue found by: Сергей Колесников
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
> libavformat/hls.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
will apply
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If you fake or manipulate statistics in a paper in physics you will never
get a job again.
If you fake or manipulate statistics in a paper in medicin you will get
a job for life at the pharma industry.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-09-16 17:40 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-15 0:05 [FFmpeg-devel] [PATCH 1/3] avformat/hls: reduce default max reload to 3 Michael Niedermayer
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 2/3] avformat: add ff_match_url_ext() Michael Niedermayer
2023-05-15 3:10 ` Leo Izen
2023-05-15 19:12 ` Michael Niedermayer
2023-05-15 0:05 ` [FFmpeg-devel] [PATCH 3/3] avformat/hls: Try to implement RFC8216 playlist refusal Michael Niedermayer
2023-05-15 0:17 ` Michael Niedermayer
2023-05-15 1:08 ` Michael Niedermayer
2023-05-15 3:14 ` Leo Izen
2023-05-15 19:30 ` Michael Niedermayer
2023-05-15 9:58 ` Kacper Michajlow
2023-05-15 19:44 ` Michael Niedermayer
2023-09-16 17:39 ` [FFmpeg-devel] [PATCH 1/3] avformat/hls: reduce default max reload to 3 Michael Niedermayer
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git