summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2012-01-30 18:46:07 +0000
committerTim-Philipp Müller <tim.muller@collabora.co.uk>2012-02-03 00:23:20 +0000
commit58ef7c9719bdf56bb10013ccd6d0cf8292f7f2b3 (patch)
treeb1e5f418ed85fab2d98842807f409a92b6c491e4 /ext
parent605d3a196041f664ef6f33328ee867b4d1f3453b (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.c10
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);