diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 22a25f1..343b233 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -124,10 +124,10 @@ jobs: ./use-uchardet-master ./use-rubberband-master ./use-libdisplay-info-master - ./use-ffmpeg-custom release/7.1 + ./use-ffmpeg-custom n7.1.5 ./use-libass-master - ./use-libplacebo-master - ./use-mpv-custom 95c7599c41a4c7e332848fdb7e594650c1564e45 + ./use-libplacebo-custom 4c426e466814536def653cb23f1d1c287ea7a7f5 + ./use-mpv-custom f011d73d5fcf3f1907bbd6ddde3e860e3d611cf9 echo "updating submodules" @@ -149,15 +149,14 @@ jobs: cd ../ echo "applying patches to mpv" - - ls -l + cd mpv for PATCH_FILE in $PATCH_DIR/mpv/*.patch; do if [ -f "$PATCH_FILE" ]; then echo "Applying patch: $PATCH_FILE" git apply "$PATCH_FILE" else - echo "No patch files found in $PATCH_DIR" + echo "No patch files found in $PATCH_DIR/mpv" exit 1 fi done @@ -222,4 +221,4 @@ jobs: draft: false prerelease: false env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/external/build b/external/build index e9e4dec..4a09776 100644 --- a/external/build +++ b/external/build @@ -4,8 +4,6 @@ export LC_ALL=C #scripts/fribidi-config #scripts/fribidi-build "$@" -scripts/sndio-config -scripts/sndio-build "$@" scripts/bzip2-config scripts/bzip2-build "$@" scripts/uchardet-config diff --git a/external/clean b/external/clean index 7dd56f1..fdfae17 100644 --- a/external/clean +++ b/external/clean @@ -4,7 +4,6 @@ export LC_ALL=C scripts/ffmpeg-clean scripts/fribidi-clean scripts/rubberband-clean -scripts/sndio-clean scripts/uchardet-clean scripts/bzip2-clean scripts/libxpresent-clean diff --git a/external/scripts/sndio-build b/external/scripts/sndio-build deleted file mode 100644 index 83dfda5..0000000 --- a/external/scripts/sndio-build +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -set -e - -make -C sndio "$@" -make -C sndio install "$@" diff --git a/external/scripts/sndio-clean b/external/scripts/sndio-clean deleted file mode 100644 index 210d0b6..0000000 --- a/external/scripts/sndio-clean +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -if [ -f sndio/Makefile ];then - make -C sndio distclean -fi diff --git a/external/scripts/sndio-config b/external/scripts/sndio-config deleted file mode 100644 index d45f9fc..0000000 --- a/external/scripts/sndio-config +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -set -e -BUILD="$(pwd)" -newline=" -" - -if test -f "$BUILD"/sndio_options ; then - IFS=$newline - set -- $(cat "$BUILD"/sndio_options) "$@" - unset -v IFS -fi - -OPTIONS="--enable-static" - -case "$PKG_CONFIG_PATH" in - '') - export PKG_CONFIG_PATH="$BUILD/build_libs/lib/pkgconfig" - ;; - *) - export PKG_CONFIG_PATH="$BUILD/build_libs/lib/pkgconfig:$PKG_CONFIG_PATH" - ;; -esac - -cd "$BUILD"/sndio -# Later sndio doesn't automatically run configure with autogen.sh anymore -./configure CFLAGS="-fPIC" --prefix="$BUILD/build_libs" --libdir="$BUILD/build_libs/lib" $OPTIONS "$@" - diff --git a/external/update b/external/update index c031624..7d54de7 100644 --- a/external/update +++ b/external/update @@ -19,7 +19,6 @@ do_clone_all() { do_clone "ffmpeg" "https://github.com/FFmpeg/FFmpeg.git" #do_clone "fribidi" "http://anongit.freedesktop.org/git/fribidi/fribidi.git" - do_clone "sndio" "https://sndio.org/git/sndio" do_clone "bzip2" "https://github.com/libarchive/bzip2.git" do_clone "uchardet" "https://gitlab.freedesktop.org/uchardet/uchardet.git" do_clone "libxpresent" "https://gitlab.freedesktop.org/xorg/lib/libxpresent.git" diff --git a/external/use-sndio-master b/external/use-sndio-master deleted file mode 100644 index bc83643..0000000 --- a/external/use-sndio-master +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -set -e -export LC_ALL=C - -scripts/switch-branch sndio master \ No newline at end of file diff --git a/patch/ffmpeg/ffmpeg-hls-kazumi-combined.patch b/patch/ffmpeg/ffmpeg-hls-kazumi-combined.patch index 1d3e1c3..abe0e4b 100644 --- a/patch/ffmpeg/ffmpeg-hls-kazumi-combined.patch +++ b/patch/ffmpeg/ffmpeg-hls-kazumi-combined.patch @@ -1,5 +1,5 @@ diff --git a/libavformat/hls.c b/libavformat/hls.c -index fe008ee..34e43da 100644 +index 900e96c..f6d1a80 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -84,6 +84,8 @@ struct segment { @@ -32,7 +32,7 @@ index fe008ee..34e43da 100644 } HLSContext; static void free_segment_dynarray(struct segment **segments, int n_segments) -@@ -799,6 +808,8 @@ static int parse_playlist(HLSContext *c, const char *url, +@@ -804,6 +813,8 @@ static int parse_playlist(HLSContext *c, const char *url, struct segment **prev_segments = NULL; int prev_n_segments = 0; int64_t prev_start_seq_no = -1; @@ -41,7 +41,7 @@ index fe008ee..34e43da 100644 if (is_http && !in && c->http_persistent && c->playlist_pb) { in = c->playlist_pb; -@@ -965,6 +976,15 @@ static int parse_playlist(HLSContext *c, const char *url, +@@ -975,6 +986,15 @@ static int parse_playlist(HLSContext *c, const char *url, } else if (av_strstart(line, "#EXT-X-ENDLIST", &ptr)) { if (pls) pls->finished = 1; @@ -55,9 +55,9 @@ index fe008ee..34e43da 100644 + next_seg_after_discontinuity = 1; + } } else if (av_strstart(line, "#EXTINF:", &ptr)) { - is_segment = 1; - duration = atof(ptr) * AV_TIME_BASE; -@@ -1064,6 +1084,9 @@ static int parse_playlist(HLSContext *c, const char *url, + double d = atof(ptr) * AV_TIME_BASE; + if (d < 0 || d > INT64_MAX || isnan(d)) { +@@ -1083,6 +1103,9 @@ static int parse_playlist(HLSContext *c, const char *url, } seg->init_section = cur_init_section; @@ -67,7 +67,7 @@ index fe008ee..34e43da 100644 } } } -@@ -1993,6 +2016,8 @@ static int hls_read_header(AVFormatContext *s) +@@ -2012,6 +2035,8 @@ static int hls_read_header(AVFormatContext *s) c->first_packet = 1; c->first_timestamp = AV_NOPTS_VALUE; c->cur_timestamp = AV_NOPTS_VALUE; @@ -76,7 +76,7 @@ index fe008ee..34e43da 100644 if ((ret = ffio_copy_url_options(s->pb, &c->avio_opts)) < 0) return ret; -@@ -2167,7 +2192,30 @@ static int hls_read_header(AVFormatContext *s) +@@ -2186,7 +2211,30 @@ static int hls_read_header(AVFormatContext *s) pls->ctx->max_analyze_duration = s->max_analyze_duration > 0 ? s->max_analyze_duration : 4 * AV_TIME_BASE; pls->ctx->interrupt_callback = s->interrupt_callback; url = av_strdup(pls->segments[0]->url); @@ -108,7 +108,7 @@ index fe008ee..34e43da 100644 for (int n = 0; n < pls->n_segments; n++) if (ret >= 0) -@@ -2387,6 +2435,67 @@ static int hls_read_packet(AVFormatContext *s, AVPacket *pkt) +@@ -2406,6 +2454,67 @@ static int hls_read_packet(AVFormatContext *s, AVPacket *pkt) } seg = current_segment(pls); @@ -176,7 +176,7 @@ index fe008ee..34e43da 100644 if (seg && seg->key_type == KEY_SAMPLE_AES && !strstr(pls->ctx->iformat->name, "mov")) { enum AVCodecID codec_id = pls->ctx->streams[pls->pkt->stream_index]->codecpar->codec_id; memcpy(c->crypto_ctx.iv, seg->iv, sizeof(seg->iv)); -@@ -2500,6 +2609,9 @@ static int hls_read_seek(AVFormatContext *s, int stream_index, +@@ -2519,6 +2628,9 @@ static int hls_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { HLSContext *c = s->priv_data; @@ -186,7 +186,7 @@ index fe008ee..34e43da 100644 struct playlist *seek_pls = NULL; int i, j; int stream_subdemuxer_index; -@@ -2664,6 +2776,10 @@ static const AVOption hls_options[] = { +@@ -2683,6 +2795,10 @@ static const AVOption hls_options[] = { OFFSET(seg_format_opts), AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, FLAGS}, {"seg_max_retry", "Maximum number of times to reload a segment on error.", OFFSET(seg_max_retry), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, FLAGS},