Commit 9719420739 for ffmpeg

commit 9719420739ee97e7aef912fc8fa2e467dc14d09d
Author: Kacper Michajłow <kasper93@gmail.com>
Date:   Wed Oct 28 04:06:53 2026 +0100

    libavformat/tests: remove the hls test program

    The hls-start demux tests cover the cases of the hls-parse tests
    through the demuxer. There is no need for hls.c API test code.

    Signed-off-by: Kacper Michajłow <kasper93@gmail.com>

diff --git a/libavformat/Makefile b/libavformat/Makefile
index 92c09714fe..ae8baaa12f 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -798,7 +798,6 @@ TESTPROGS-$(CONFIG_RTPDEC)               += rtpdec
 FIFO-MUXER-TESTPROGS-$(CONFIG_NETWORK)   += fifo_muxer
 TESTPROGS-$(CONFIG_FIFO_MUXER)           += $(FIFO-MUXER-TESTPROGS-yes)
 TESTPROGS-$(CONFIG_FFRTMPCRYPT_PROTOCOL) += rtmpdh
-TESTPROGS-$(CONFIG_HLS_DEMUXER)          += hls
 TESTPROGS-$(CONFIG_HTTP_PROTOCOL)        += http
 TESTPROGS-$(CONFIG_NETWORK)              += noproxy
 TESTPROGS-$(CONFIG_SRTP)                 += srtp
diff --git a/libavformat/tests/.gitignore b/libavformat/tests/.gitignore
index f3640a487c..dddaeea25f 100644
--- a/libavformat/tests/.gitignore
+++ b/libavformat/tests/.gitignore
@@ -14,4 +14,3 @@
 /seek_utils
 /http
 /ogg_pages
-/hls
diff --git a/libavformat/tests/hls.c b/libavformat/tests/hls.c
deleted file mode 100644
index 267e66650e..0000000000
--- a/libavformat/tests/hls.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "libavformat/hls.c"
-
-static void print_playlists(const HLSContext *c, int parse_ret)
-{
-    if (parse_ret < 0) {
-        printf("error: %s\n", av_err2str(parse_ret));
-        return;
-    }
-    printf("%d variant(s), %d playlist(s)\n", c->n_variants, c->n_playlists);
-    for (int i = 0; i < c->n_playlists; i++) {
-        const struct playlist *pls = c->playlists[i];
-        printf("%s: %s, ", av_basename(pls->url), pls->finished ? "finished" : "live");
-        if (pls->time_offset_flag)
-            printf("start offset %"PRId64"\n", pls->start_time_offset);
-        else
-            printf("no start offset\n");
-    }
-}
-
-/**
- * Parse a playlist, then optionally a Media Playlist into the first
- * playlist it declared, as hls_read_header() does, and print the parsed
- * playlists with their finished state and EXT-X-START offset.
- * Parsing errors are part of the output; only I/O and allocation errors
- * make the program fail.
- */
-int main(int argc, char **argv)
-{
-    AVIOContext *top_level = NULL, *first_media = NULL;
-    AVFormatContext *s = NULL;
-    HLSContext *c;
-    int ret, parse_ret;
-
-    if (argc < 2 || argc > 3) {
-        fprintf(stderr, "Usage: %s <playlist> [<media playlist>]\n", argv[0]);
-        return 1;
-    }
-
-    av_log_set_level(AV_LOG_QUIET);
-
-    ret = avio_open(&top_level, argv[1], AVIO_FLAG_READ);
-    if (ret < 0)
-        goto end;
-    if (argc > 2) {
-        ret = avio_open(&first_media, argv[2], AVIO_FLAG_READ);
-        if (ret < 0)
-            goto end;
-    }
-
-    s = avformat_alloc_context();
-    if (!s) {
-        ret = AVERROR(ENOMEM);
-        goto end;
-    }
-    s->iformat   = &ff_hls_demuxer.p;
-    s->priv_data = av_mallocz(ff_hls_demuxer.priv_data_size);
-    if (!s->priv_data) {
-        ret = AVERROR(ENOMEM);
-        goto end;
-    }
-    *(const AVClass **)s->priv_data = ff_hls_demuxer.p.priv_class;
-    av_opt_set_defaults(s->priv_data);
-    c      = s->priv_data;
-    c->ctx = s;
-
-    parse_ret = parse_playlist(c, argv[1], NULL, top_level);
-    if (parse_ret >= 0 && first_media && c->n_playlists)
-        parse_ret = parse_playlist(c, argv[2], c->playlists[0], first_media);
-    print_playlists(c, parse_ret);
-
-end:
-    if (s && s->priv_data)
-        hls_close(s);
-    avformat_free_context(s);
-    avio_closep(&top_level);
-    avio_closep(&first_media);
-    if (ret < 0) {
-        fprintf(stderr, "%s\n", av_err2str(ret));
-        return 1;
-    }
-    return 0;
-}
diff --git a/tests/fate/libavformat.mak b/tests/fate/libavformat.mak
index 18270bbcab..e7854626c3 100644
--- a/tests/fate/libavformat.mak
+++ b/tests/fate/libavformat.mak
@@ -72,49 +72,6 @@ FATE_LIBAVFORMAT-yes += fate-url
 fate-url: libavformat/tests/url$(EXESUF)
 fate-url: CMD = run libavformat/tests/url$(EXESUF)

-tests/data/hls-parse-master.m3u8: TAG = GEN
-tests/data/hls-parse-master.m3u8: | tests/data
-	$(Q)printf '#EXTM3U\n#EXT-X-STREAM-INF:BANDWIDTH=64000\na.m3u8\n#EXT-X-STREAM-INF:BANDWIDTH=32000\nb.m3u8\n' > $@
-
-tests/data/hls-parse-master-start.m3u8: TAG = GEN
-tests/data/hls-parse-master-start.m3u8: | tests/data
-	$(Q)printf '#EXTM3U\n#EXT-X-START:TIME-OFFSET=1.5\n#EXT-X-STREAM-INF:BANDWIDTH=64000\na.m3u8\n#EXT-X-STREAM-INF:BANDWIDTH=32000\nb.m3u8\n' > $@
-
-tests/data/hls-parse-media.m3u8: TAG = GEN
-tests/data/hls-parse-media.m3u8: | tests/data
-	$(Q)printf '#EXTM3U\n#EXT-X-TARGETDURATION:2\n#EXTINF:2,\nseg0.ts\n#EXTINF:2,\nseg1.ts\n#EXTINF:2,\nseg2.ts\n' > $@
-
-tests/data/hls-parse-media-start.m3u8: TAG = GEN
-tests/data/hls-parse-media-start.m3u8: | tests/data
-	$(Q)printf '#EXTM3U\n#EXT-X-START:TIME-OFFSET=4\n#EXT-X-TARGETDURATION:2\n#EXTINF:2,\nseg0.ts\n#EXTINF:2,\nseg1.ts\n#EXTINF:2,\nseg2.ts\n' > $@
-
-tests/data/hls-parse-media-start-endlist.m3u8: TAG = GEN
-tests/data/hls-parse-media-start-endlist.m3u8: | tests/data
-	$(Q)printf '#EXTM3U\n#EXT-X-START:TIME-OFFSET=4\n#EXT-X-ENDLIST\n#EXT-X-TARGETDURATION:2\n#EXTINF:2,\nseg0.ts\n#EXTINF:2,\nseg1.ts\n#EXTINF:2,\nseg2.ts\n' > $@
-
-FATE_HLS_PARSE = fate-hls-parse-media-start           \
-                 fate-hls-parse-media-start-endlist   \
-                 fate-hls-parse-master-start          \
-                 fate-hls-parse-master-start-media    \
-                 fate-hls-parse-master-start-override \
-                 fate-hls-parse-master-media-start
-
-$(FATE_HLS_PARSE): libavformat/tests/hls$(EXESUF)
-fate-hls-parse-media-start: tests/data/hls-parse-media-start.m3u8
-fate-hls-parse-media-start: CMD = run libavformat/tests/hls$(EXESUF) $(TARGET_PATH)/tests/data/hls-parse-media-start.m3u8
-fate-hls-parse-media-start-endlist: tests/data/hls-parse-media-start-endlist.m3u8
-fate-hls-parse-media-start-endlist: CMD = run libavformat/tests/hls$(EXESUF) $(TARGET_PATH)/tests/data/hls-parse-media-start-endlist.m3u8
-fate-hls-parse-master-start: tests/data/hls-parse-master-start.m3u8
-fate-hls-parse-master-start: CMD = run libavformat/tests/hls$(EXESUF) $(TARGET_PATH)/tests/data/hls-parse-master-start.m3u8
-fate-hls-parse-master-start-media: tests/data/hls-parse-master-start.m3u8 tests/data/hls-parse-media.m3u8
-fate-hls-parse-master-start-media: CMD = run libavformat/tests/hls$(EXESUF) $(TARGET_PATH)/tests/data/hls-parse-master-start.m3u8 $(TARGET_PATH)/tests/data/hls-parse-media.m3u8
-fate-hls-parse-master-start-override: tests/data/hls-parse-master-start.m3u8 tests/data/hls-parse-media-start.m3u8
-fate-hls-parse-master-start-override: CMD = run libavformat/tests/hls$(EXESUF) $(TARGET_PATH)/tests/data/hls-parse-master-start.m3u8 $(TARGET_PATH)/tests/data/hls-parse-media-start.m3u8
-fate-hls-parse-master-media-start: tests/data/hls-parse-master.m3u8 tests/data/hls-parse-media-start.m3u8
-fate-hls-parse-master-media-start: CMD = run libavformat/tests/hls$(EXESUF) $(TARGET_PATH)/tests/data/hls-parse-master.m3u8 $(TARGET_PATH)/tests/data/hls-parse-media-start.m3u8
-
-FATE_LIBAVFORMAT-$(call ALLYES, HLS_DEMUXER FILE_PROTOCOL) += $(FATE_HLS_PARSE)
-
 FATE_LIBAVFORMAT-$(CONFIG_IMF_DEMUXER) += fate-imf
 fate-imf: libavformat/tests/imf$(EXESUF)
 fate-imf: CMD = run libavformat/tests/imf$(EXESUF)
diff --git a/tests/ref/fate/hls-parse-master-media-start b/tests/ref/fate/hls-parse-master-media-start
deleted file mode 100644
index 5bce43afa9..0000000000
--- a/tests/ref/fate/hls-parse-master-media-start
+++ /dev/null
@@ -1,3 +0,0 @@
-2 variant(s), 2 playlist(s)
-a.m3u8: live, start offset 4000000
-b.m3u8: live, no start offset
diff --git a/tests/ref/fate/hls-parse-master-start b/tests/ref/fate/hls-parse-master-start
deleted file mode 100644
index 57e88ecc7d..0000000000
--- a/tests/ref/fate/hls-parse-master-start
+++ /dev/null
@@ -1,3 +0,0 @@
-2 variant(s), 2 playlist(s)
-a.m3u8: live, start offset 1500000
-b.m3u8: live, start offset 1500000
diff --git a/tests/ref/fate/hls-parse-master-start-media b/tests/ref/fate/hls-parse-master-start-media
deleted file mode 100644
index 57e88ecc7d..0000000000
--- a/tests/ref/fate/hls-parse-master-start-media
+++ /dev/null
@@ -1,3 +0,0 @@
-2 variant(s), 2 playlist(s)
-a.m3u8: live, start offset 1500000
-b.m3u8: live, start offset 1500000
diff --git a/tests/ref/fate/hls-parse-master-start-override b/tests/ref/fate/hls-parse-master-start-override
deleted file mode 100644
index 57e88ecc7d..0000000000
--- a/tests/ref/fate/hls-parse-master-start-override
+++ /dev/null
@@ -1,3 +0,0 @@
-2 variant(s), 2 playlist(s)
-a.m3u8: live, start offset 1500000
-b.m3u8: live, start offset 1500000
diff --git a/tests/ref/fate/hls-parse-media-start b/tests/ref/fate/hls-parse-media-start
deleted file mode 100644
index d007477fa2..0000000000
--- a/tests/ref/fate/hls-parse-media-start
+++ /dev/null
@@ -1,2 +0,0 @@
-1 variant(s), 1 playlist(s)
-hls-parse-media-start.m3u8: live, start offset 4000000
diff --git a/tests/ref/fate/hls-parse-media-start-endlist b/tests/ref/fate/hls-parse-media-start-endlist
deleted file mode 100644
index ba15ebb74f..0000000000
--- a/tests/ref/fate/hls-parse-media-start-endlist
+++ /dev/null
@@ -1,2 +0,0 @@
-1 variant(s), 1 playlist(s)
-hls-parse-media-start-endlist.m3u8: finished, start offset 4000000