From 2a466e6347de66ca010d1177ef3dc738303d8767 Mon Sep 17 00:00:00 2001 From: "U. Artie Eoff" Date: Tue, 3 Sep 2024 20:24:27 -0400 Subject: [PATCH 1/4] gh/workflows: set top-level permissions Signed-off-by: U. Artie Eoff --- .github/workflows/unit.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index 01c9bcc5..c6be1b0c 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -2,6 +2,9 @@ name: unit on: [ push, pull_request ] +permissions: + contents: read + jobs: test: strategy: From 3862c609118759111c69d863161b1bd8e9337153 Mon Sep 17 00:00:00 2001 From: "U. Artie Eoff" Date: Wed, 4 Sep 2024 09:56:16 -0400 Subject: [PATCH 2/4] gh/workflows: pin action dependencies ...to improve OpenSSF score. https://github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies Signed-off-by: U. Artie Eoff --- .github/workflows/unit.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index c6be1b0c..b1023fa4 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -16,11 +16,11 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: lfs: 'true' - name: Setup python - uses: actions/setup-python@v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0 with: python-version: ${{ matrix.python-version }} - name: Install dependencies From 1d268ed514cf3c5049ed7c70def158d97e540cf2 Mon Sep 17 00:00:00 2001 From: "U. Artie Eoff" Date: Wed, 4 Sep 2024 09:59:48 -0400 Subject: [PATCH 3/4] add dependabot configuration https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool Signed-off-by: U. Artie Eoff --- .github/dependabot.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..8d98ca21 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,8 @@ +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" From a88d2214953c033851add7a676d0492d8f19b828 Mon Sep 17 00:00:00 2001 From: Wang Hangjie Date: Wed, 28 Aug 2024 23:43:34 -0700 Subject: [PATCH 4/4] [ffmpeg-qsv] add vp9e playback_seek test case Signed-off-by: Wang Hangjie --- lib/parameters.py | 50 +++++++++++++++++++++++++++++++++++ test/ffmpeg-qsv/encode/vp9.py | 35 ++++++++++++++++++++++++ 2 files changed, 85 insertions(+) diff --git a/lib/parameters.py b/lib/parameters.py index b5c4e249..63ea813f 100755 --- a/lib/parameters.py +++ b/lib/parameters.py @@ -851,6 +851,31 @@ def gen_vp9_vbr_parameters(spec): params = gen_vp9_vbr_variants(spec) return keys, params +def gen_vp9_seek_variants(spec): + for case, params in spec.items(): + variants = params.get("variants", dict()).get("seek", []) + for variant in variants: + rcmode = variant["rcmode"] + bitrate = variant["bitrate"] + + # Update maxrate according to rcmode + if "cbr" == rcmode: + variant.update(maxrate = bitrate) + elif "vbr" == rcmode: + variant.update(maxrate = bitrate * 2) + else: + variant.update(maxrate = None) + + yield [ + case, rcmode, bitrate, variant.get("maxrate", None), + variant.get("fps", 25), variant.get("seek", 1) + ] + +def gen_vp9_seek_parameters(spec): + keys = ("case", "rcmode", "bitrate", "maxrate", "fps", "seek") + params = gen_vp9_seek_variants(spec) + return keys, params + def gen_vp9_cqp_lp_variants(spec): for case, params in spec.items(): variants = params.get("variants", dict()).get("cqp_lp", []) @@ -896,6 +921,31 @@ def gen_vp9_vbr_lp_parameters(spec): params = gen_vp9_vbr_lp_variants(spec) return keys, params +def gen_vp9_seek_lp_variants(spec): + for case, params in spec.items(): + variants = params.get("variants", dict()).get("seek_lp", []) + for variant in variants: + rcmode = variant["rcmode"] + bitrate = variant["bitrate"] + + # Update maxrate according to rcmode + if "cbr" == rcmode: + variant.update(maxrate = bitrate) + elif "vbr" == rcmode: + variant.update(maxrate = bitrate * 2) + else: + variant.update(maxrate = None) + + yield [ + case, rcmode, bitrate, variant.get("maxrate", None), + variant.get("fps", 25), variant.get("seek", 1) + ] + +def gen_vp9_seek_lp_parameters(spec): + keys = ("case", "rcmode", "bitrate", "maxrate", "fps", "seek") + params = gen_vp9_seek_lp_variants(spec) + return keys, params + def gen_av1_cqp_variants(spec, strapi=False): for case, params in spec.items(): if strapi: diff --git a/test/ffmpeg-qsv/encode/vp9.py b/test/ffmpeg-qsv/encode/vp9.py index efbd1874..304383b5 100644 --- a/test/ffmpeg-qsv/encode/vp9.py +++ b/test/ffmpeg-qsv/encode/vp9.py @@ -125,3 +125,38 @@ def test(self, case, gop, bitrate, fps, slices, refmode, quality, looplvl, loops self.init(spec, case, gop, bitrate, fps, slices, quality) self.encode() +class seek(VP9_8EncoderTest): + def init(self, tspec, case, rcmode, bitrate, maxrate, fps, seek): + vars(self).update(tspec[case].copy()) + vars(self).update( + case = case, + bitrate = bitrate, + maxrate = maxrate, + minrate = bitrate, + rcmode = rcmode, + fps = fps, + seek = seek, + ) + + @slash.parametrize(*gen_vp9_seek_parameters(spec)) + def test(self, case, rcmode, bitrate, maxrate, fps, seek): + self.init(spec, case, rcmode, bitrate, maxrate, fps, seek) + self.encode() + +class seek_lp(VP9_8EncoderLPTest): + def init(self, tspec, case, rcmode, bitrate, maxrate, fps, seek): + vars(self).update(tspec[case].copy()) + vars(self).update( + case = case, + bitrate = bitrate, + maxrate = maxrate, + minrate = bitrate, + rcmode = rcmode, + fps = fps, + seek = seek, + ) + + @slash.parametrize(*gen_vp9_seek_lp_parameters(spec)) + def test(self, case, rcmode, bitrate, maxrate, fps, seek): + self.init(spec, case, rcmode, bitrate, maxrate, fps, seek) + self.encode()