[totem] Bug 151909 – Add frame-by-frame playback
- From: Bastien Nocera <hadess src gnome org>
- To: svn-commits-list gnome org
- Subject: [totem] Bug 151909 – Add frame-by-frame playback
- Date: Tue, 30 Jun 2009 16:40:00 +0000 (UTC)
commit 5cc7ad5f8521684612443298944a4517e6923e72
Author: Bastien Nocera <hadess hadess net>
Date: Tue Jun 30 17:39:16 2009 +0100
Bug 151909 â?? Add frame-by-frame playback
2009-06-30 Bastien Nocera <hadess hadess net>
* src/backend/bacon-video-widget-gst-0.10.c
(bacon_video_widget_step):
* src/backend/bacon-video-widget.h:
* src/totem-object.c (totem_action_handle_key_press):
Add frame-by-frame stepping, requires gstreamer 0.10.24,
and a newer gst-plugins-base (Closes: #151909)
ChangeLog | 9 +++++++++
src/backend/bacon-video-widget-gst-0.10.c | 13 +++++++++++++
src/backend/bacon-video-widget.h | 2 ++
src/totem-object.c | 4 ++++
4 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 77174c6..64e4f29 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2009-06-30 Bastien Nocera <hadess hadess net>
+ * src/backend/bacon-video-widget-gst-0.10.c
+ (bacon_video_widget_step):
+ * src/backend/bacon-video-widget.h:
+ * src/totem-object.c (totem_action_handle_key_press):
+ Add frame-by-frame stepping, requires gstreamer 0.10.24,
+ and a newer gst-plugins-base (Closes: #151909)
+
+2009-06-30 Bastien Nocera <hadess hadess net>
+
* src/plugins/lirc/totem_lirc_default: Small tweaks for the
default LIRC setup
diff --git a/src/backend/bacon-video-widget-gst-0.10.c b/src/backend/bacon-video-widget-gst-0.10.c
index 5a1462e..95a19e4 100644
--- a/src/backend/bacon-video-widget-gst-0.10.c
+++ b/src/backend/bacon-video-widget-gst-0.10.c
@@ -3391,6 +3391,19 @@ bacon_video_widget_seek (BaconVideoWidget *bvw, double position, GError **error)
return bacon_video_widget_seek_time (bvw, seek_time / GST_MSECOND, error);
}
+gboolean
+bacon_video_widget_step (BaconVideoWidget *bvw, GError **error)
+{
+#if GST_CHECK_VERSION(0,10,24)
+ GstEvent *event;
+
+ event = gst_event_new_step (GST_FORMAT_BUFFERS, 1, 1.0, TRUE, FALSE);
+
+ gst_element_send_event (bvw->priv->play, event);
+#endif
+ return TRUE;
+}
+
static void
bvw_stop_play_pipeline (BaconVideoWidget * bvw)
{
diff --git a/src/backend/bacon-video-widget.h b/src/backend/bacon-video-widget.h
index 616cfe9..112c710 100644
--- a/src/backend/bacon-video-widget.h
+++ b/src/backend/bacon-video-widget.h
@@ -183,6 +183,8 @@ gboolean bacon_video_widget_seek (BaconVideoWidget *bvw,
gboolean bacon_video_widget_seek_time (BaconVideoWidget *bvw,
gint64 time,
GError **error);
+gboolean bacon_video_widget_step (BaconVideoWidget *bvw,
+ GError **error);
gboolean bacon_video_widget_can_direct_seek (BaconVideoWidget *bvw);
double bacon_video_widget_get_position (BaconVideoWidget *bvw);
gint64 bacon_video_widget_get_current_time (BaconVideoWidget *bvw);
diff --git a/src/totem-object.c b/src/totem-object.c
index 5f711f0..3f0a26c 100644
--- a/src/totem-object.c
+++ b/src/totem-object.c
@@ -3463,6 +3463,10 @@ totem_action_handle_key_press (Totem *totem, GdkEventKey *event)
else
totem_action_play_pause (totem);
break;
+ case GDK_period:
+ totem_action_pause (totem);
+ bacon_video_widget_step (totem->bvw, NULL);
+ break;
#ifdef HAVE_XFREE
case XF86XK_AudioPause:
case XF86XK_AudioStop:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]