resindvd: fix wedge in preroll when playbin2 deinterlacing is enabled

When deinterlacing is enabled, an extra colorspace element is added.
Colorspace is a basetransform, and is then the only basetransform
element on the video path. A while ago, basetransform started delaying
events till caps were set on its source pad. These things conspired
to end up sending the DVD highlight events onto a blocked pad on
subtitleoverlay.

Ensuring these highlight events are only sent once we're in playing
mode fixes the issue.

https://bugzilla.gnome.org/show_bug.cgi?id=668762
This commit is contained in:
Vincent Penquerc'h 2012-01-30 18:46:07 +00:00
parent 73a8c272c0
commit 7a9fff74c6

View file

@ -1120,7 +1120,7 @@ rsn_dvdsrc_step (resinDvdSrc * src, gboolean have_dvd_lock)
break;
}
if (src->highlight_event && have_dvd_lock) {
if (src->highlight_event && have_dvd_lock && src->in_playing) {
GstEvent *hl_event = src->highlight_event;
src->highlight_event = NULL;
@ -1411,8 +1411,12 @@ rsn_dvdsrc_create (GstBaseSrc * bsrc, guint64 offset,
}
}
highlight_event = src->highlight_event;
src->highlight_event = NULL;
if (src->in_playing) {
highlight_event = src->highlight_event;
src->highlight_event = NULL;
} else {
highlight_event = NULL;
}
/* Schedule a clock callback for the any pending nav packet */
rsn_dvdsrc_check_nav_blocks (src);