... by forcing a state changed to PLAYING, which should otherwise be a
no-op as elements should already be in that state.
In particular, jitterbuffer needs new base_time as soon as possible to perform
proper timing (e.g. eos timeout handling) and can't wait for the new base_time
that will be distributed when the whole pipeline returns to PLAYING.
See bug #646397.
if (base_time != -1)
gst_element_set_base_time (GST_ELEMENT_CAST (src), base_time);
/* to manage jitterbuffer buffer mode */
- if (src->manager)
+ if (src->manager) {
gst_element_set_base_time (GST_ELEMENT_CAST (src->manager), base_time);
+ /* and to have base_time trickle further down,
+ * e.g. to jitterbuffer for its timeout handling */
+ if (base_time != -1)
+ gst_element_set_state (GST_ELEMENT_CAST (src->manager), state);
+ }
}
static GstRTSPResult