[totem] backend: Rewind to beginning of chapter
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [totem] backend: Rewind to beginning of chapter
- Date: Mon, 18 Mar 2013 07:38:35 +0000 (UTC)
commit d97997a5e3393dc8fad678dc14007ff0d7df8ba5
Author: Bastien Nocera <hadess hadess net>
Date: Mon Mar 18 08:26:12 2013 +0100
backend: Rewind to beginning of chapter
If the seek happened within 4 seconds of the start of the start
of the chapter, go to the previous chapter, otherwise, seek
back to the beginning of the chapter.
src/backend/bacon-video-widget.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/src/backend/bacon-video-widget.c b/src/backend/bacon-video-widget.c
index c282046..34aa281 100644
--- a/src/backend/bacon-video-widget.c
+++ b/src/backend/bacon-video-widget.c
@@ -95,6 +95,7 @@
#define OSD_SIZE 130 /* Size of the OSD popup */
#define OSD_MARGIN 8 /* Pixels from the top-left */
#define LOGO_SIZE 256 /* Maximum size of the logo */
+#define REWIND_OR_PREVIOUS 4000
#define MAX_NETWORK_SPEED 10752
#define BUFFERING_LEFT_RATIO 1.1
@@ -4060,8 +4061,18 @@ handle_chapters_seek (BaconVideoWidget *bvw,
entry = NULL;
if (forward && l->next)
entry = l->next->data;
- else if (!forward && l->prev)
- entry = l->prev->data;
+ else if (!forward) {
+ gint64 current_start;
+ if (gst_toc_entry_get_start_stop_times (l->data, ¤t_start, NULL)) {
+ if (bvw->priv->current_time - current_start / GST_MSECOND < REWIND_OR_PREVIOUS &&
+ bvw->priv->current_time - current_start / GST_MSECOND > 0 &&
+ l->prev) {
+ entry = l->prev->data;
+ } else {
+ entry = l->data;
+ }
+ }
+ }
if (!entry)
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]