Attention: Here be dragons (unstable version)

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Redot.

VideoStreamPlayback

Inherits: Resource < RefCounted < Object

Internal class used by VideoStream to manage playback state when played from a VideoStreamPlayer.

Description

This class is intended to be overridden by video decoder extensions with custom implementations of VideoStream.

Methods

int

_get_channels() virtual const

float

_get_length() virtual const

int

_get_mix_rate() virtual const

float

_get_playback_position() virtual const

Texture2D

_get_texture() virtual const

bool

_is_paused() virtual const

bool

_is_playing() virtual const

void

_play() virtual

void

_seek(time: float) virtual

void

_set_audio_track(idx: int) virtual

void

_set_paused(paused: bool) virtual

void

_stop() virtual

void

_update(delta: float) virtual

int

mix_audio(num_frames: int, buffer: PackedFloat32Array = PackedFloat32Array(), offset: int = 0)


Method Descriptions

int _get_channels() virtual const 🔗

Returns the number of audio channels.


float _get_length() virtual const 🔗

Returns the video duration in seconds, if known, or 0 if unknown.


int _get_mix_rate() virtual const 🔗

Returns the audio sample rate used for mixing.


float _get_playback_position() virtual const 🔗

Return the current playback timestamp. Called in response to the VideoStreamPlayer.stream_position getter.


Texture2D _get_texture() virtual const 🔗

Allocates a Texture2D in which decoded video frames will be drawn.


bool _is_paused() virtual const 🔗

Returns the paused status, as set by _set_paused.


bool _is_playing() virtual const 🔗

Returns the playback state, as determined by calls to _play and _stop.


void _play() virtual 🔗

Called in response to VideoStreamPlayer.autoplay or VideoStreamPlayer.play. Note that manual playback may also invoke _stop multiple times before this method is called. _is_playing should return true once playing.


void _seek(time: float) virtual 🔗

Seeks to time seconds. Called in response to the VideoStreamPlayer.stream_position setter.


void _set_audio_track(idx: int) virtual 🔗

Select the audio track idx. Called when playback starts, and in response to the VideoStreamPlayer.audio_track setter.


void _set_paused(paused: bool) virtual 🔗

Set the paused status of video playback. _is_paused must return paused. Called in response to the VideoStreamPlayer.paused setter.


void _stop() virtual 🔗

Stops playback. May be called multiple times before _play, or in response to VideoStreamPlayer.stop. _is_playing should return false once stopped.


void _update(delta: float) virtual 🔗

Ticks video playback for delta seconds. Called every frame as long as both _is_paused and _is_playing return true.


int mix_audio(num_frames: int, buffer: PackedFloat32Array = PackedFloat32Array(), offset: int = 0) 🔗

Render num_frames audio frames (of _get_channels floats each) from buffer, starting from index offset in the array. Returns the number of audio frames rendered, or -1 on error.