basertpdepayload: create valid segment when given non-time segment

This will become an error in 1.10.

https://bugzilla.gnome.org/show_bug.cgi?id=765796
This commit is contained in:
Zaheer Abbas Merali 2016-04-29 00:59:42 -07:00 committed by Sebastian Dröge
parent a2c050a4be
commit 0f609bc6c6

View file

@ -613,6 +613,9 @@ gst_rtp_base_depayload_handle_event (GstRTPBaseDepayload * filter,
{
GST_OBJECT_LOCK (filter);
gst_event_copy_segment (event, &filter->segment);
if (filter->segment.format != GST_FORMAT_TIME)
GST_ERROR_OBJECT (filter,
"Non-TIME segments are not supported and will likely fail");
GST_OBJECT_UNLOCK (filter);
/* don't pass the event downstream, we generate our own segment including
@ -717,8 +720,11 @@ create_segment_event (GstRTPBaseDepayload * filter, guint rtptime,
if (position == -1)
position = start;
running_time = gst_segment_to_running_time (&filter->segment,
GST_FORMAT_TIME, start);
if (G_LIKELY (filter->segment.format == GST_FORMAT_TIME))
running_time = gst_segment_to_running_time (&filter->segment,
GST_FORMAT_TIME, start);
else
running_time = 0;
gst_segment_init (&segment, GST_FORMAT_TIME);
segment.rate = priv->play_speed;