mirror of
https://github.com/huggingface/lerobot.git
synced 2026-07-24 10:16:09 +00:00
fix(save codec options): making sure codec options are always set via set_if (#3910)
* fix(save codec options): making sure codec options are always safely set through `set_if` * tests(update): updating tests
This commit is contained in:
@@ -226,24 +226,24 @@ class VideoEncoderConfig:
|
|||||||
if encoder_threads is not None:
|
if encoder_threads is not None:
|
||||||
svtav1_parts.append(f"lp={encoder_threads}")
|
svtav1_parts.append(f"lp={encoder_threads}")
|
||||||
if svtav1_parts:
|
if svtav1_parts:
|
||||||
opts["svtav1-params"] = ":".join(svtav1_parts)
|
set_if("svtav1-params", ":".join(svtav1_parts))
|
||||||
elif self.vcodec in ("h264", "hevc"):
|
elif self.vcodec in ("h264", "hevc"):
|
||||||
set_if("crf", self.crf)
|
set_if("crf", self.crf)
|
||||||
set_if("preset", self.preset)
|
set_if("preset", self.preset)
|
||||||
if self.fast_decode:
|
if self.fast_decode:
|
||||||
opts["tune"] = "fastdecode"
|
set_if("tune", "fastdecode")
|
||||||
set_if("threads", encoder_threads)
|
set_if("threads", encoder_threads)
|
||||||
elif self.vcodec == "libaom-av1":
|
elif self.vcodec == "libaom-av1":
|
||||||
set_if("crf", self.crf)
|
set_if("crf", self.crf)
|
||||||
set_if("preset", self.preset)
|
set_if("preset", self.preset)
|
||||||
if encoder_threads is not None:
|
if encoder_threads is not None:
|
||||||
opts["threads"] = encoder_threads
|
set_if("threads", encoder_threads)
|
||||||
opts["row-mt"] = 1
|
set_if("row-mt", 1)
|
||||||
elif self.vcodec in ("h264_videotoolbox", "hevc_videotoolbox"):
|
elif self.vcodec in ("h264_videotoolbox", "hevc_videotoolbox"):
|
||||||
if self.crf is not None:
|
if self.crf is not None:
|
||||||
opts["q:v"] = max(1, min(100, 100 - self.crf * 2))
|
set_if("q:v", max(1, min(100, 100 - self.crf * 2)))
|
||||||
elif self.vcodec in ("h264_nvenc", "hevc_nvenc"):
|
elif self.vcodec in ("h264_nvenc", "hevc_nvenc"):
|
||||||
opts["rc"] = 0
|
set_if("rc", 0)
|
||||||
set_if("qp", self.crf)
|
set_if("qp", self.crf)
|
||||||
set_if("preset", self.preset)
|
set_if("preset", self.preset)
|
||||||
elif self.vcodec == "h264_vaapi":
|
elif self.vcodec == "h264_vaapi":
|
||||||
|
|||||||
@@ -345,7 +345,9 @@ class TestExtraOptions:
|
|||||||
opts = cfg.get_codec_options()
|
opts = cfg.get_codec_options()
|
||||||
assert opts["qp"] == 20
|
assert opts["qp"] == 20
|
||||||
assert isinstance(opts["qp"], int)
|
assert isinstance(opts["qp"], int)
|
||||||
assert cfg.get_codec_options(as_strings=True)["qp"] == "20"
|
str_opts = cfg.get_codec_options(as_strings=True)
|
||||||
|
assert str_opts["qp"] == "20"
|
||||||
|
assert all(isinstance(v, str) for v in str_opts.values())
|
||||||
|
|
||||||
@require_libsvtav1
|
@require_libsvtav1
|
||||||
def test_structured_fields_win_on_collision(self):
|
def test_structured_fields_win_on_collision(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user