[longomatch] Fix loading segments in the player
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Fix loading segments in the player
- Date: Mon, 7 Jul 2014 11:21:30 +0000 (UTC)
commit 28fe9610c5abaecb4cae0cc4684851397963cf11
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Wed May 14 21:43:08 2014 +0200
Fix loading segments in the player
LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs | 47 ++++++++++++++++-----------
1 files changed, 28 insertions(+), 19 deletions(-)
---
diff --git a/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs b/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs
index 7f4b8cd..7a3e846 100644
--- a/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs
+++ b/LongoMatch.GUI.Multimedia/Gui/PlayerBin.cs
@@ -169,23 +169,8 @@ namespace LongoMatch.Gui
#region Public methods
- public void Open(string filename) {
- ResetGui();
- CloseSegment();
- if (filename != this.filename) {
- readyToSeek = false;
- this.filename = filename;
- try {
- player.Open(filename);
- }
- catch (Exception ex) {
- Log.Exception (ex);
- //We handle this error async
- }
- } else {
- player.Seek (new Time (0), true);
- }
- detachbutton.Sensitive = true;
+ public void Open (string filename) {
+ Open (filename, true);
}
public void Play() {
@@ -213,7 +198,6 @@ namespace LongoMatch.Gui
IsPlayingPrevState = false;
muted=false;
emitRateScale = true;
- readyToSeek = false;
}
public void LoadPlayListPlay (PlayListPlay play, bool hasNext) {
@@ -295,6 +279,26 @@ namespace LongoMatch.Gui
#region Private methods
+ public void Open(string filename, bool seek) {
+ ResetGui();
+ CloseSegment();
+ if (filename != this.filename) {
+ readyToSeek = false;
+ this.filename = filename;
+ try {
+ Log.Debug ("Openning new file " + filename);
+ player.Open(filename);
+ }
+ catch (Exception ex) {
+ Log.Exception (ex);
+ //We handle this error async
+ }
+ } else if (seek) {
+ player.Seek (new Time (0), true);
+ }
+ detachbutton.Sensitive = true;
+ }
+
bool SegmentLoaded {
get {
return segment.Start.MSeconds != -1;
@@ -302,17 +306,22 @@ namespace LongoMatch.Gui
}
void LoadSegment (string filename, Time start, Time stop, float rate = 1) {
- Open (filename);
+ Log.Debug (String.Format ("Loading player segment {0} {1} {2} {3}",
+ filename, start, stop, rate));
+ Open (filename, false);
segment.Start = start;
segment.Stop = stop;
rate = rate == 0 ? 1 : rate;
closebutton.Show();
if (readyToSeek) {
+ Log.Debug ("Player is ready to seek, seeking to " +
+ start.ToMSecondsString());
SetScaleValue ((int) (rate * SCALE_FPS));
player.Rate = (double) rate;
player.Seek (start, true);
player.Play ();
} else {
+ Log.Debug ("Delaying seek until player is ready");
pendingSeek = new object[3] {start, stop, rate};
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]