diff --git a/gst/dvdsub/gstdvdsubdec.c b/gst/dvdsub/gstdvdsubdec.c index 77bfbc961a..f68825be24 100644 --- a/gst/dvdsub/gstdvdsubdec.c +++ b/gst/dvdsub/gstdvdsubdec.c @@ -950,10 +950,13 @@ gst_dvd_sub_dec_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) break; } case GST_EVENT_CUSTOM_DOWNSTREAM:{ - GstClockTime ts = GST_EVENT_TIMESTAMP (event); if (gst_event_has_name (event, "application/x-gst-dvd")) { - if (GST_CLOCK_TIME_IS_VALID (ts)) + const GstStructure *s = gst_event_get_structure (event); + GstClockTime ts = GST_CLOCK_TIME_NONE; + + if (gst_structure_get_clock_time (s, "ts", &ts) + && GST_CLOCK_TIME_IS_VALID (ts)) gst_dvd_sub_dec_advance_time (dec, ts); if (gst_dvd_sub_dec_handle_dvd_event (dec, event)) {