using Godot;
using System;
using System.IO;
using System.Collections.Generic;
using VideoOrchestra.Utils;
namespace VideoOrchestra
{
///
/// Test controller for VP9 video loading and playback
/// Demonstrates usage of VideoOrchestraManager with sample VP9 streams
///
public partial class VP9TestController : Control
{
private VideoOrchestraManager _orchestraManager;
private TextureRect[] _textureRects;
private Label _statusLabel;
private Button _loadButton;
private Button _playButton;
private Button _stopButton;
// VP9 WebM video files
private string[] _webmFilePaths = new string[]
{
"res://assets/haewon-oo-00-vp9.webm",
"res://assets/haewon-oo-01-vp9.webm",
"res://assets/haewon-oo-02-vp9.webm"
};
private byte[][] _webmFileData;
private List[] _extractedFrames; // VP9 frames per stream
private bool _isPlaying = false;
private int _currentFrame = 0;
private Timer _playbackTimer;
public override void _Ready()
{
SetupUI();
InitializeOrchestra();
SetupPlaybackTimer();
}
private void SetupUI()
{
// Get UI references
_textureRects = new TextureRect[3];
_textureRects[0] = GetNode("UI/StreamContainer/Stream0/TextureRect0");
_textureRects[1] = GetNode("UI/StreamContainer/Stream1/TextureRect1");
_textureRects[2] = GetNode("UI/StreamContainer/Stream2/TextureRect2");
_statusLabel = GetNode