void OnGUI() { if (mDebugGuiScale <= 0 || mMovie == null) { return; } // draw in the bottom left and move along int wh = (int)Mathf.Min(Screen.height * mDebugGuiScale, Screen.width * mDebugGuiScale); Rect debugRect = new Rect(0, Screen.height - wh, wh, wh); // draw graphs on the row below if (mPerformanceTextures.Count > 0) { debugRect.y -= debugRect.height; } for (int t = 0; t < mStreamTextures.Count; t++) { var texture = mStreamTextures[t]; if (texture == null) { continue; } GUI.DrawTexture(debugRect, texture); debugRect.x += debugRect.width; } // draw graphs on the row below if (mPerformanceTextures.Count > 0) { debugRect.y += debugRect.height; debugRect.x = 0; } for (int t = 0; t < mPerformanceTextures.Count; t++) { var texture = mPerformanceTextures[t]; if (texture == null) { continue; } GUI.DrawTexture(debugRect, texture); debugRect.x += debugRect.width; } // draw some other debug String Text = ""; Text += "Codec: " + mMovie.GetCodec() + "\n"; Text += "Error: " + mMovie.GetFatalError() + "\n"; Text += "Last Frame Requested: " + mMovie.GetTimeMs() + "\n"; Text += "Last Frame Copied: " + mMovie.GetLastFrameCopiedMs() + "\n"; Text += "OutOfSync: " + ((long)mMovie.GetLastFrameCopiedMs() - (long)mMovie.GetTimeMs()) + "\n"; GUI.Label(new Rect(0, Screen.height - (wh * 3), wh * 2, wh), Text); }
void UpdateMovie() { // queue not initialised (we haven't started) if (mFilenameQueue == null) { return; } // see if movie is finished to move onto next if (mMovie != null) { // check duration var Duration = mMovie.GetDurationMs(); var CurrentTime = mMovie.GetTimeMs(); if (Duration > 0 && CurrentTime >= Duration) { mMovie = null; System.GC.Collect(); } else { //Debug.Log("Current duration: " + CurrentTime + "/" + Duration ); } } // need to alloc next if (mMovie == null) { if (mFilenameQueue.Count == 0) { Debug.Log("queue finished.... "); OnFinished(); return; } var Filename = mFilenameQueue [0]; mFilenameQueue.RemoveAt(0); var Params = new PopMovieParams(); //Params.mSkipPushFrames = true; try { mMovie = new PopMovie(Filename, Params, true); if (mEnableDebugLog) { mMovie.AddDebugCallback(Debug.Log); } } catch (System.Exception e) { Debug.LogError("Error creating movie; " + e.Message); if (mErrorText != null) { mErrorText.text = e.Message; } } } if (mMovie != null) { mMovie.Update(); } }