rtspsrc: sanity checks on range info

A max range that overflows should not be trusted,
nor should a max range that equals the min range.
Fixes #580851.(a).
This commit is contained in:
Mark Nauwelaerts 2009-04-30 10:17:23 +02:00
parent 56656dd03d
commit 20c7be5741

View file

@ -4389,6 +4389,17 @@ gst_rtspsrc_parse_range (GstRTSPSrc * src, const gchar * range,
GST_DEBUG_OBJECT (src, "range: max %" GST_TIME_FORMAT,
GST_TIME_ARGS (seconds));
/* live (WMS) server might send overflowed large max as its idea of infinity,
* compensate to prevent problems later on */
if (seconds != -1 && seconds < 0) {
seconds = -1;
GST_DEBUG_OBJECT (src, "insane range, set to NONE");
}
/* live (WMS) might send min == max, which is not worth recording */
if (segment->duration == -1 && seconds == segment->start)
seconds = -1;
/* don't change duration with unknown value, we might have a valid value
* there that we want to keep. */
if (seconds != -1)