Source code for camtasia.timeline.clips.stitched
"""Stitched (spliced) media clip."""
from __future__ import annotations
from typing import Any, TYPE_CHECKING
from .base import BaseClip
if TYPE_CHECKING:
pass
[docs]
class StitchedMedia(BaseClip):
"""Container for multiple spliced segments from the same source.
The parent ``mediaStart``/``duration`` defines a window into the
child timeline formed by the ``medias`` array.
Args:
data: The raw clip dict.
"""
@property
def nested_clips(self) -> list[BaseClip]:
"""Child clip segments.
Returns:
List of typed clip instances created via ``clip_from_dict``.
"""
from . import clip_from_dict
return [clip_from_dict(m) for m in self._data.get('medias', [])]
@property
def attributes(self) -> dict[str, Any]:
"""Clip attributes dict."""
return self._data.get('attributes', {})
@property
def segment_count(self) -> int:
"""Number of nested clip segments."""
return len(self._data.get('medias', []))
@property
def min_media_start(self) -> int:
"""Minimum media start offset in frames."""
return int(self._data.get('minMediaStart', 0))
[docs]
def clear_segments(self) -> None:
"""Remove all nested segments."""
self._data['medias'] = []