diff options
author | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2012-01-30 18:46:07 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2012-02-03 00:23:20 +0000 |
commit | 58ef7c9719bdf56bb10013ccd6d0cf8292f7f2b3 (patch) | |
tree | b1e5f418ed85fab2d98842807f409a92b6c491e4 /ext | |
parent | 605d3a196041f664ef6f33328ee867b4d1f3453b (diff) |
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')
-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 75cefe813..317921998 100644 --- a/ext/resindvd/resindvdsrc.c +++ b/ext/resindvd/resindvdsrc.c @@ -1119,7 +1119,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; @@ -1410,8 +1410,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); |