mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-02 05:28:48 +00:00
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.
This commit is contained in:
parent
85db327e82
commit
b9c4db5d53
1 changed files with 13 additions and 5 deletions
|
@ -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 ||
|
if (src->cur_end_ts == GST_CLOCK_TIME_NONE || diff > 2 * GST_SECOND ||
|
||||||
diff < 0) {
|
diff < 0) {
|
||||||
discont = TRUE;
|
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);
|
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_wide: %x", event->physical_wide);
|
||||||
GST_DEBUG_OBJECT (src, " physical_letterbox: %d",
|
GST_DEBUG_OBJECT (src, " physical_letterbox: %x",
|
||||||
event->physical_letterbox);
|
event->physical_letterbox);
|
||||||
GST_DEBUG_OBJECT (src, " physical_pan_scan: %d",
|
GST_DEBUG_OBJECT (src, " physical_pan_scan: %x",
|
||||||
event->physical_pan_scan);
|
event->physical_pan_scan);
|
||||||
GST_DEBUG_OBJECT (src, " logical: %d", event->logical);
|
GST_DEBUG_OBJECT (src, " logical: %x", event->logical);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DVDNAV_HIGHLIGHT:{
|
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 */
|
/* Send ourselves a seek event to wake everything up and flush */
|
||||||
seek = gst_event_new_seek (1.0, rsndvd_format, GST_SEEK_FLAG_FLUSH,
|
seek = gst_event_new_seek (1.0, rsndvd_format, GST_SEEK_FLAG_FLUSH,
|
||||||
GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_NONE, -1);
|
GST_SEEK_TYPE_NONE, -1, GST_SEEK_TYPE_NONE, -1);
|
||||||
|
src->flushing_seek = TRUE;
|
||||||
gst_element_send_event (GST_ELEMENT (src), seek);
|
gst_element_send_event (GST_ELEMENT (src), seek);
|
||||||
|
|
||||||
g_mutex_lock (src->dvd_lock);
|
g_mutex_lock (src->dvd_lock);
|
||||||
|
@ -1682,6 +1686,9 @@ rsn_dvdsrc_activate_nav_block (resinDvdSrc * src, GstBuffer * nav_buf)
|
||||||
static void
|
static void
|
||||||
rsn_dvdsrc_clear_nav_blocks (resinDvdSrc * src)
|
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) {
|
while (src->pending_nav_blocks) {
|
||||||
RsnDvdPendingNav *cur = (RsnDvdPendingNav *) src->pending_nav_blocks->data;
|
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);
|
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)
|
if (rsn_dvdsrc_prepare_next_block (src, FALSE) != GST_FLOW_OK)
|
||||||
goto fail;
|
goto fail;
|
||||||
GST_LOG_OBJECT (src, "prepare_next_block after seek done");
|
GST_LOG_OBJECT (src, "prepare_next_block after seek done");
|
||||||
|
|
Loading…
Reference in a new issue