mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-30 20:59:44 +00:00
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:
parent
73a8c272c0
commit
7a9fff74c6
1 changed files with 7 additions and 3 deletions
|
@ -1120,7 +1120,7 @@ rsn_dvdsrc_step (resinDvdSrc * src, gboolean have_dvd_lock)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (src->highlight_event && have_dvd_lock) {
|
if (src->highlight_event && have_dvd_lock && src->in_playing) {
|
||||||
GstEvent *hl_event = src->highlight_event;
|
GstEvent *hl_event = src->highlight_event;
|
||||||
|
|
||||||
src->highlight_event = NULL;
|
src->highlight_event = NULL;
|
||||||
|
@ -1411,8 +1411,12 @@ rsn_dvdsrc_create (GstBaseSrc * bsrc, guint64 offset,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
highlight_event = src->highlight_event;
|
if (src->in_playing) {
|
||||||
src->highlight_event = NULL;
|
highlight_event = src->highlight_event;
|
||||||
|
src->highlight_event = NULL;
|
||||||
|
} else {
|
||||||
|
highlight_event = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Schedule a clock callback for the any pending nav packet */
|
/* Schedule a clock callback for the any pending nav packet */
|
||||||
rsn_dvdsrc_check_nav_blocks (src);
|
rsn_dvdsrc_check_nav_blocks (src);
|
||||||
|
|
Loading…
Reference in a new issue