diff options
author | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2012-01-30 18:46:07 +0000 |
---|---|---|
committer | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2012-02-01 12:05:26 +0000 |
commit | 7a9fff74c6b6a3bc9559d624af3e8d71f8771db8 (patch) | |
tree | de801c5a7a00900f6c2511d2937dada74713bcd3 /ext/resindvd | |
parent | 73a8c272c0d3a61aab75b9aa653fba7aa51b772f (diff) | |
download | gstreamer-plugins-bad-7a9fff74c6b6a3bc9559d624af3e8d71f8771db8.tar.gz |
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
Diffstat (limited to 'ext/resindvd')
-rw-r--r-- | ext/resindvd/resindvdsrc.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/ext/resindvd/resindvdsrc.c b/ext/resindvd/resindvdsrc.c index 2a52fcd8a..53320752b 100644 --- a/ext/resindvd/resindvdsrc.c +++ b/ext/resindvd/resindvdsrc.c @@ -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); |