void OnDestroy() { if (_updater != null) { _updater.Dispose(); _updater = null; } if (_decoder != null) { _decoder.Dispose(); _decoder = null; } if (_stream != null) { _stream.Dispose(); _stream = null; } if (_demuxer != null) { _demuxer.Dispose(); _demuxer = null; } Utility.Destroy(_texture); Utility.Destroy(_blitMaterial); }
void OpenInternal() { // Demuxer instantiation _demuxer = new Demuxer(resolvedFilePath); if (!_demuxer.IsValid) { Debug.LogError("Failed to open stream (" + resolvedFilePath + ")."); _demuxer.Dispose(); _demuxer = null; return; } // Stream reader instantiation _stream = new StreamReader(_demuxer, _time, _speed / 60); (_storedTime, _storedSpeed) = (_time, _speed); // Decoder instantiation _decoder = new Decoder( _stream, _demuxer.Width, _demuxer.Height, _demuxer.VideoType ); // Texture initialization _texture = new Texture2D( _demuxer.Width, _demuxer.Height, Utility.DetermineTextureFormat(_demuxer.VideoType), false ); _texture.wrapMode = TextureWrapMode.Clamp; _updater = new TextureUpdater(_texture, _decoder.CallbackID); }
void OpenInternal() { // Demuxer instantiation _demuxer = new Demuxer(resolvedFilePath); if (!_demuxer.IsValid) { if (Application.isPlaying) { // In play mode, show an error message, then disable itself // to prevent spamming the console. Debug.LogError("Failed to open stream (" + resolvedFilePath + ")."); enabled = false; } _demuxer.Dispose(); _demuxer = null; return; } // Stream reader instantiation _stream = new StreamReader(_demuxer, _time, _speed / 60); (_storedTime, _storedSpeed) = (_time, _speed); // Decoder instantiation _decoder = new Decoder( _stream, _demuxer.Width, _demuxer.Height, _demuxer.VideoType ); // Texture initialization _texture = new Texture2D( _demuxer.Width, _demuxer.Height, Utility.DetermineTextureFormat(_demuxer.VideoType), false ); _texture.wrapMode = TextureWrapMode.Clamp; _texture.hideFlags = HideFlags.DontSave; _updater = new TextureUpdater(_texture, _decoder); }