mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 00:36:51 +00:00
rtponviftimestamp: Fix drop-out-of-segment=false mode
Fixing unexpected buffer dropping and flow error in case that: * use-reference-timestamps=false * drop-out-of-segment=false * Calculated utc offset is not valid because buffer is out-of-segment The above case should be considered as a valid data flow without returning errors. Fixing regression introduced by https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1683 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5116>
This commit is contained in:
parent
176b884ec7
commit
3679713519
1 changed files with 6 additions and 9 deletions
|
@ -632,27 +632,24 @@ handle_buffer (GstRtpOnvifTimestamp * self, GstBuffer * buf)
|
|||
}
|
||||
} else if (GST_BUFFER_PTS_IS_VALID (buf) || GST_BUFFER_DTS_IS_VALID (buf)) {
|
||||
time = get_utc_from_offset (self, buf);
|
||||
if (self->prop_drop_out_of_segment && time == GST_CLOCK_TIME_NONE) {
|
||||
GST_ERROR_OBJECT (self, "Failed to get stream time");
|
||||
gst_rtp_buffer_unmap (&rtp);
|
||||
return FALSE;
|
||||
}
|
||||
} else {
|
||||
GST_INFO_OBJECT (self,
|
||||
"Buffer doesn't contain any valid DTS or PTS timestamp");
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (time == GST_CLOCK_TIME_NONE) {
|
||||
GST_ERROR_OBJECT (self, "failed calculating timestamp");
|
||||
if (self->prop_drop_out_of_segment && !GST_CLOCK_TIME_IS_VALID (time)) {
|
||||
GST_ERROR_OBJECT (self, "Failed to get stream time");
|
||||
gst_rtp_buffer_unmap (&rtp);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* convert to NTP time. upper 32 bits should contain the seconds
|
||||
* and the lower 32 bits, the fractions of a second. */
|
||||
time = gst_util_uint64_scale (time, (G_GINT64_CONSTANT (1) << 32),
|
||||
GST_SECOND);
|
||||
if (GST_CLOCK_TIME_IS_VALID (time)) {
|
||||
time = gst_util_uint64_scale (time, (G_GINT64_CONSTANT (1) << 32),
|
||||
GST_SECOND);
|
||||
}
|
||||
|
||||
GST_DEBUG_OBJECT (self, "timestamp: %" G_GUINT64_FORMAT, time);
|
||||
|
||||
|
|
Loading…
Reference in a new issue