Internal class used by [VideoStream] to manage playback state when played from a [VideoStreamPlayer].
This class is intended to be overridden by video decoder extensions with custom implementations of [VideoStream].
Returns the number of audio channels.
Returns the video duration in seconds, if known, or 0 if unknown.
Returns the audio sample rate used for mixing.
Return the current playback timestamp. Called in response to the [member VideoStreamPlayer.stream_position] getter.
Allocates a [Texture2D] in which decoded video frames will be drawn.
Returns the paused status, as set by [method _set_paused].
Returns the playback state, as determined by calls to [method _play] and [method _stop].
Called in response to [member VideoStreamPlayer.autoplay] or [method VideoStreamPlayer.play]. Note that manual playback may also invoke [method _stop] multiple times before this method is called. [method _is_playing] should return true once playing.
Seeks to [code]time[/code] seconds. Called in response to the [member VideoStreamPlayer.stream_position] setter.
Select the audio track [code]idx[/code]. Called when playback starts, and in response to the [member VideoStreamPlayer.audio_track] setter.
Set the paused status of video playback. [method _is_paused] must return [code]paused[/code]. Called in response to the [member VideoStreamPlayer.paused] setter.
Stops playback. May be called multiple times before [method _play], or in response to [method VideoStreamPlayer.stop]. [method _is_playing] should return false once stopped.
Ticks video playback for [code]delta[/code] seconds. Called every frame as long as [method _is_paused] and [method _is_playing] return true.
Render [code]num_frames[/code] audio frames (of [method _get_channels] floats each) from [code]buffer[/code], starting from index [code]offset[/code] in the array. Returns the number of audio frames rendered, or -1 on error.