mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-06 02:32:23 +00:00
Improve debugging in the gtk-video-player sample and set force-aspect-ratio to TRUE if available
This commit is contained in:
parent
f37850249d
commit
8e330baec0
1 changed files with 18 additions and 6 deletions
|
@ -15,7 +15,7 @@ public class MainWindow : Gtk.Window {
|
||||||
HScale _scale;
|
HScale _scale;
|
||||||
Label _lbl;
|
Label _lbl;
|
||||||
bool _updatingScale;
|
bool _updatingScale;
|
||||||
bool _pipelineOK;
|
bool _pipelineOK = false;
|
||||||
|
|
||||||
public static void Main (string[] args) {
|
public static void Main (string[] args) {
|
||||||
Gtk.Application.Init ();
|
Gtk.Application.Init ();
|
||||||
|
@ -128,8 +128,15 @@ public class MainWindow : Gtk.Window {
|
||||||
!msg.Structure.Name.Equals ("prepare-xwindow-id"))
|
!msg.Structure.Name.Equals ("prepare-xwindow-id"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
(msg.Src as XOverlay).XwindowId = _xWindowId;
|
Element src = msg.Src as Element;
|
||||||
(msg.Src as XOverlay).HandleEvents (true);
|
if (src == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (src.HasProperty ("force-aspect-ratio"))
|
||||||
|
src["force-aspect-ratio"] = true;
|
||||||
|
|
||||||
|
(src as XOverlay).XwindowId = _xWindowId;
|
||||||
|
(src as XOverlay).HandleEvents (true);
|
||||||
};
|
};
|
||||||
|
|
||||||
_playbin.Bus.Message += delegate (object bus, MessageArgs margs) {
|
_playbin.Bus.Message += delegate (object bus, MessageArgs margs) {
|
||||||
|
@ -159,10 +166,12 @@ public class MainWindow : Gtk.Window {
|
||||||
sret = _playbin.GetState (out state, out pending, Clock.Second * 5);
|
sret = _playbin.GetState (out state, out pending, Clock.Second * 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sret == StateChangeReturn.Success)
|
if (sret == StateChangeReturn.Success) {
|
||||||
|
Console.WriteLine ("State change successful");
|
||||||
_pipelineOK = true;
|
_pipelineOK = true;
|
||||||
else
|
} else {
|
||||||
Console.WriteLine ("State change failed for {0} ({1})\n", dialog.Filename, sret);
|
Console.WriteLine ("State change failed for {0} ({1})\n", dialog.Filename, sret);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog.Destroy ();
|
dialog.Destroy ();
|
||||||
|
@ -184,12 +193,15 @@ public class MainWindow : Gtk.Window {
|
||||||
|
|
||||||
long duration;
|
long duration;
|
||||||
Gst.Format fmt = Gst.Format.Time;
|
Gst.Format fmt = Gst.Format.Time;
|
||||||
|
Console.WriteLine ("Trying to seek");
|
||||||
|
|
||||||
if ( (_playbin != null) && _pipelineOK && _playbin.QueryDuration (ref fmt, out duration) && duration != -1) {
|
if ( (_playbin != null) && _pipelineOK && _playbin.QueryDuration (ref fmt, out duration) && duration != -1) {
|
||||||
long pos = (long) (duration * _scale.Value);
|
long pos = (long) (duration * _scale.Value);
|
||||||
Console.WriteLine ("Seek to {0}/{1} ({2}%)", pos, duration, _scale.Value);
|
Console.WriteLine ("Seek to {0}/{1} ({2}%)", pos, duration, _scale.Value);
|
||||||
|
|
||||||
_playbin.Seek (Format.Time, SeekFlags.Flush | SeekFlags.KeyUnit, pos);
|
bool ret = _playbin.Seek (Format.Time, SeekFlags.Flush | SeekFlags.KeyUnit, pos);
|
||||||
|
|
||||||
|
Console.WriteLine ("Seeked {0}successfully", (ret ? "" : "not "));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue