Use GPUVideoSource for hardware-accelerated video decoding
Some checks are pending
GPU Worker CI/CD / test (push) Waiting to run
GPU Worker CI/CD / deploy (push) Blocked by required conditions

- CIDVideoSource now uses GPUVideoSource when GPU is available
- Enables CUDA hardware decoding for video sources
- Should significantly improve rendering performance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
giles
2026-02-04 01:03:16 +00:00
parent 0bd8ee71c7
commit ef4bc24eda
2 changed files with 53 additions and 13 deletions

View File

@@ -134,9 +134,18 @@ class CIDVideoSource:
raise ValueError(f"Could not resolve video source '{self.cid}' for actor_id={self.actor_id}")
logger.info(f"CIDVideoSource._ensure_source: resolved to path={path}")
# Import from primitives where VideoSource is defined
from sexp_effects.primitive_libs.streaming import VideoSource
self._source = VideoSource(str(path), self.fps)
# Use GPU-accelerated video source if available
try:
from sexp_effects.primitive_libs.streaming_gpu import GPUVideoSource, GPU_AVAILABLE
if GPU_AVAILABLE:
logger.info(f"CIDVideoSource: using GPUVideoSource for {path}")
self._source = GPUVideoSource(str(path), self.fps, prefer_gpu=True)
else:
raise ImportError("GPU not available")
except (ImportError, Exception) as e:
logger.info(f"CIDVideoSource: falling back to CPU VideoSource ({e})")
from sexp_effects.primitive_libs.streaming import VideoSource
self._source = VideoSource(str(path), self.fps)
def read_at(self, t: float):
self._ensure_source()