from enum import IntEnum from typing import Any, ClassVar, Union import numpy as np from PIL import Image from av.frame import Frame from .format import VideoFormat from .plane import VideoPlane _SupportedNDarray = Union[ np.ndarray[Any, np.dtype[np.uint8]], np.ndarray[Any, np.dtype[np.uint16]], np.ndarray[Any, np.dtype[np.float32]], ] supported_np_pix_fmts: set[str] class PictureType(IntEnum): NONE = 0 I = 1 P = 2 B = 3 S = 4 SI = 5 SP = 6 BI = 7 class VideoFrame(Frame): format: VideoFormat pts: int planes: tuple[VideoPlane, ...] pict_type: int colorspace: int color_range: int @property def time(self) -> float: ... @property def width(self) -> int: ... @property def height(self) -> int: ... @property def interlaced_frame(self) -> bool: ... @property def rotation(self) -> int: ... def __init__( self, width: int = 0, height: int = 0, format: str = "yuv420p" ) -> None: ... def reformat( self, width: int | None = None, height: int | None = None, format: str | None = None, src_colorspace: str | int | None = None, dst_colorspace: str | int | None = None, interpolation: int | str | None = None, src_color_range: int | str | None = None, dst_color_range: int | str | None = None, ) -> VideoFrame: ... def to_rgb(self, **kwargs: Any) -> VideoFrame: ... def to_image(self, **kwargs: Any) -> Image.Image: ... def to_ndarray( self, channel_last: bool = False, **kwargs: Any ) -> _SupportedNDarray: ... @staticmethod def from_image(img: Image.Image) -> VideoFrame: ... @staticmethod def from_numpy_buffer( array: _SupportedNDarray, format: str = "rgb24", width: int = 0 ) -> VideoFrame: ... @staticmethod def from_ndarray( array: _SupportedNDarray, format: str = "rgb24", channel_last: bool = False ) -> VideoFrame: ... @staticmethod def from_bytes( data: bytes, width: int, height: int, format: str = "rgba", flip_horizontal: bool = False, flip_vertical: bool = False, ) -> VideoFrame: ...
Memory