mirror of
https://github.com/huggingface/lerobot.git
synced 2026-05-21 11:39:50 +00:00
chore(video backend): renaming codec into video_backend in get_safe_default_video_backend()
This commit is contained in:
@@ -17,7 +17,7 @@
|
|||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
|
|
||||||
from lerobot.transforms import ImageTransformsConfig
|
from lerobot.transforms import ImageTransformsConfig
|
||||||
from lerobot.utils.import_utils import get_safe_default_codec
|
from lerobot.utils.import_utils import get_safe_default_video_backend
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -34,7 +34,7 @@ class DatasetConfig:
|
|||||||
image_transforms: ImageTransformsConfig = field(default_factory=ImageTransformsConfig)
|
image_transforms: ImageTransformsConfig = field(default_factory=ImageTransformsConfig)
|
||||||
revision: str | None = None
|
revision: str | None = None
|
||||||
use_imagenet_stats: bool = True
|
use_imagenet_stats: bool = True
|
||||||
video_backend: str = field(default_factory=get_safe_default_codec)
|
video_backend: str = field(default_factory=get_safe_default_video_backend)
|
||||||
# When True, video frames are returned as uint8 tensors (0-255) instead of float32 (0.0-1.0).
|
# When True, video frames are returned as uint8 tensors (0-255) instead of float32 (0.0-1.0).
|
||||||
# This reduces memory and speeds up DataLoader IPC. The training pipeline handles the conversion.
|
# This reduces memory and speeds up DataLoader IPC. The training pipeline handles the conversion.
|
||||||
return_uint8: bool = False
|
return_uint8: bool = False
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ from .utils import (
|
|||||||
)
|
)
|
||||||
from .video_utils import (
|
from .video_utils import (
|
||||||
StreamingVideoEncoder,
|
StreamingVideoEncoder,
|
||||||
get_safe_default_codec,
|
get_safe_default_video_backend,
|
||||||
resolve_vcodec,
|
resolve_vcodec,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -202,7 +202,7 @@ class LeRobotDataset(torch.utils.data.Dataset):
|
|||||||
self.episodes = episodes
|
self.episodes = episodes
|
||||||
self.tolerance_s = tolerance_s
|
self.tolerance_s = tolerance_s
|
||||||
self.revision = revision if revision else CODEBASE_VERSION
|
self.revision = revision if revision else CODEBASE_VERSION
|
||||||
self._video_backend = video_backend if video_backend else get_safe_default_codec()
|
self._video_backend = video_backend if video_backend else get_safe_default_video_backend()
|
||||||
self._return_uint8 = return_uint8
|
self._return_uint8 = return_uint8
|
||||||
self._batch_encoding_size = batch_encoding_size
|
self._batch_encoding_size = batch_encoding_size
|
||||||
self._vcodec = resolve_vcodec(vcodec)
|
self._vcodec = resolve_vcodec(vcodec)
|
||||||
@@ -690,7 +690,7 @@ class LeRobotDataset(torch.utils.data.Dataset):
|
|||||||
obj.image_transforms = None
|
obj.image_transforms = None
|
||||||
obj.delta_timestamps = None
|
obj.delta_timestamps = None
|
||||||
obj.episodes = None
|
obj.episodes = None
|
||||||
obj._video_backend = video_backend if video_backend is not None else get_safe_default_codec()
|
obj._video_backend = video_backend if video_backend is not None else get_safe_default_video_backend()
|
||||||
obj._return_uint8 = False
|
obj._return_uint8 = False
|
||||||
obj._batch_encoding_size = batch_encoding_size
|
obj._batch_encoding_size = batch_encoding_size
|
||||||
obj._vcodec = vcodec
|
obj._vcodec = vcodec
|
||||||
@@ -783,7 +783,7 @@ class LeRobotDataset(torch.utils.data.Dataset):
|
|||||||
obj.image_transforms = None
|
obj.image_transforms = None
|
||||||
obj.delta_timestamps = None
|
obj.delta_timestamps = None
|
||||||
obj.episodes = None
|
obj.episodes = None
|
||||||
obj._video_backend = video_backend if video_backend else get_safe_default_codec()
|
obj._video_backend = video_backend if video_backend else get_safe_default_video_backend()
|
||||||
obj._return_uint8 = False
|
obj._return_uint8 = False
|
||||||
obj._batch_encoding_size = batch_encoding_size
|
obj._batch_encoding_size = batch_encoding_size
|
||||||
obj._vcodec = vcodec
|
obj._vcodec = vcodec
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ import torchvision
|
|||||||
from datasets.features.features import register_feature
|
from datasets.features.features import register_feature
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
from lerobot.utils.import_utils import get_safe_default_codec
|
from lerobot.utils.import_utils import get_safe_default_video_backend
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@ def decode_video_frames(
|
|||||||
Currently supports torchcodec on cpu and pyav.
|
Currently supports torchcodec on cpu and pyav.
|
||||||
"""
|
"""
|
||||||
if backend is None:
|
if backend is None:
|
||||||
backend = get_safe_default_codec()
|
backend = get_safe_default_video_backend()
|
||||||
if backend == "torchcodec":
|
if backend == "torchcodec":
|
||||||
return decode_video_frames_torchcodec(video_path, timestamps, tolerance_s, return_uint8=return_uint8)
|
return decode_video_frames_torchcodec(video_path, timestamps, tolerance_s, return_uint8=return_uint8)
|
||||||
elif backend in ["pyav", "video_reader"]:
|
elif backend in ["pyav", "video_reader"]:
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ def is_package_available(
|
|||||||
return package_exists
|
return package_exists
|
||||||
|
|
||||||
|
|
||||||
def get_safe_default_codec():
|
def get_safe_default_video_backend():
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
if importlib.util.find_spec("torchcodec"):
|
if importlib.util.find_spec("torchcodec"):
|
||||||
return "torchcodec"
|
return "torchcodec"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import pytest
|
|||||||
pytest.importorskip("datasets", reason="datasets is required (install lerobot[dataset])")
|
pytest.importorskip("datasets", reason="datasets is required (install lerobot[dataset])")
|
||||||
|
|
||||||
from lerobot.datasets.dataset_reader import DatasetReader
|
from lerobot.datasets.dataset_reader import DatasetReader
|
||||||
from lerobot.utils.import_utils import get_safe_default_codec
|
from lerobot.utils.import_utils import get_safe_default_video_backend
|
||||||
|
|
||||||
# ── Loading ──────────────────────────────────────────────────────────
|
# ── Loading ──────────────────────────────────────────────────────────
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ def test_try_load_returns_true_when_data_exists(tmp_path, lerobot_dataset_factor
|
|||||||
root=dataset.root,
|
root=dataset.root,
|
||||||
episodes=None,
|
episodes=None,
|
||||||
tolerance_s=1e-4,
|
tolerance_s=1e-4,
|
||||||
video_backend=get_safe_default_codec(),
|
video_backend=get_safe_default_video_backend(),
|
||||||
delta_timestamps=None,
|
delta_timestamps=None,
|
||||||
image_transforms=None,
|
image_transforms=None,
|
||||||
)
|
)
|
||||||
@@ -58,7 +58,7 @@ def test_try_load_returns_false_when_no_data(tmp_path):
|
|||||||
root=meta.root,
|
root=meta.root,
|
||||||
episodes=None,
|
episodes=None,
|
||||||
tolerance_s=1e-4,
|
tolerance_s=1e-4,
|
||||||
video_backend=get_safe_default_codec(),
|
video_backend=get_safe_default_video_backend(),
|
||||||
delta_timestamps=None,
|
delta_timestamps=None,
|
||||||
image_transforms=None,
|
image_transforms=None,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user