Skip to content

Commit

Permalink
[ffmpeg-qsv] add vp9e playback_seek test case
Browse files Browse the repository at this point in the history
Signed-off-by: Wang Hangjie <[email protected]>
  • Loading branch information
Hangjie22Coder authored and uartie committed Sep 6, 2024
1 parent 1d268ed commit a88d221
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
50 changes: 50 additions & 0 deletions lib/parameters.py
Original file line number Diff line number Diff line change
Expand Up @@ -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", [])
Expand Down Expand Up @@ -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:
Expand Down
35 changes: 35 additions & 0 deletions test/ffmpeg-qsv/encode/vp9.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()

0 comments on commit a88d221

Please sign in to comment.