summaryrefslogtreecommitdiffstats
path: root/ext
diff options
context:
space:
mode:
authorJan Schmidt <thaytan@noraisin.net>2009-03-25 02:20:12 +0000
committerDave Robillard <dave@drobilla.net>2009-05-03 12:03:13 -0400
commit3e38f28d5e2e82a2b0c13361ed075389fd7c84ab (patch)
tree8f1e48e25957103ea1230afa86f93caed01eda66 /ext
parent3d2037b110a1ee8a42d9dde8d8dbdb1eb70cf932 (diff)
downloadgst-plugins-bad-3e38f28d5e2e82a2b0c13361ed075389fd7c84ab.tar.gz
gst-plugins-bad-3e38f28d5e2e82a2b0c13361ed075389fd7c84ab.tar.bz2
gst-plugins-bad-3e38f28d5e2e82a2b0c13361ed075389fd7c84ab.zip
resindvd: Make highlights work when jumping into menus
Make the highlights re-appear correctly when jumping back into menus by making sure to set the flushing_seek flag for user-action initiated seeks. Fiddle some debug related to tracking down the issue.
Diffstat (limited to 'ext')
-rw-r--r--ext/resindvd/resindvdsrc.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/ext/resindvd/resindvdsrc.c b/ext/resindvd/resindvdsrc.c
index 2d98f04b..69344367 100644
--- a/ext/resindvd/resindvdsrc.c
+++ b/ext/resindvd/resindvdsrc.c
@@ -762,6 +762,9 @@ rsn_dvdsrc_step (resinDvdSrc * src, gboolean have_dvd_lock)
if (src->cur_end_ts == GST_CLOCK_TIME_NONE || diff > 2 * GST_SECOND ||
diff < 0) {
discont = TRUE;
+ g_print ("Discont NAV packet start TS %" GST_TIME_FORMAT
+ " != end TS %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (new_start_ptm), GST_TIME_ARGS (src->cur_end_ts));
}
}
@@ -903,12 +906,12 @@ rsn_dvdsrc_step (resinDvdSrc * src, gboolean have_dvd_lock)
rsn_dvdsrc_prepare_spu_stream_event (src, phys_track, forced_only);
- GST_DEBUG_OBJECT (src, " physical_wide: %d", event->physical_wide);
- GST_DEBUG_OBJECT (src, " physical_letterbox: %d",
+ GST_DEBUG_OBJECT (src, " physical_wide: %x", event->physical_wide);
+ GST_DEBUG_OBJECT (src, " physical_letterbox: %x",
event->physical_letterbox);
- GST_DEBUG_OBJECT (src, " physical_pan_scan: %d",
+ GST_DEBUG_OBJECT (src, " physical_pan_scan: %x",
event->physical_pan_scan);
- GST_DEBUG_OBJECT (src, " logical: %d", event->logical);
+ GST_DEBUG_OBJECT (src, " logical: %x", event->logical);
break;
}
case DVDNAV_HIGHLIGHT:{
@@ -1297,6 +1300,7 @@ rsn_dvdsrc_handle_navigation_event (resinDvdSrc * src, GstEvent * event)
/* Send ourselves a seek event to wake everything up and flush */
seek = gst_event_new_seek (1.0, rsndvd_format, GST_SEEK_FLAG_FLUSH,
GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_NONE, -1);
+ src->flushing_seek = TRUE;
gst_element_send_event (GST_ELEMENT (src), seek);
g_mutex_lock (src->dvd_lock);
@@ -1682,6 +1686,9 @@ rsn_dvdsrc_activate_nav_block (resinDvdSrc * src, GstBuffer * nav_buf)
static void
rsn_dvdsrc_clear_nav_blocks (resinDvdSrc * src)
{
+ GST_DEBUG_OBJECT (src, "Clearing %d pending navpacks",
+ g_slist_length (src->pending_nav_blocks));
+
while (src->pending_nav_blocks) {
RsnDvdPendingNav *cur = (RsnDvdPendingNav *) src->pending_nav_blocks->data;
@@ -2206,7 +2213,8 @@ rsn_dvdsrc_do_seek (RsnBaseSrc * bsrc, GstSegment * segment)
g_mutex_unlock (src->dvd_lock);
}
- GST_LOG_OBJECT (src, "Entering prepare_next_block after seek");
+ GST_LOG_OBJECT (src, "Entering prepare_next_block after seek."
+ " Flushing = %d", src->flushing_seek);
if (rsn_dvdsrc_prepare_next_block (src, FALSE) != GST_FLOW_OK)
goto fail;
GST_LOG_OBJECT (src, "prepare_next_block after seek done");