GNOME Bugzilla – Bug 580851
rtspsrc: various; sanity of ranges, setting of base_time and eof behaviour
Last modified: 2009-05-04 15:07:17 UTC
(a) live WMS server may report range as e.g. npt=3.000-3.000 during DESCRIBE, and as 0.000-5370199679810142.208 upon PLAY. Neither of these provide something useful (and may lead to overflow problems), so some sanity checks can be helpful. (b) During flushing seek processing, base_time of udpsrc is reset to have timestamps/running_time resume at 0. However, the base_time of rtspsrc is not reset, so there is an inconsistency in subsequent downstream (initial) timestamps depending on UDP or interleaved TCP. (c) If eof is reached, server might close connection or send eof message/request. In any case, this is announced as "connection closed" but a subsequent state change might still try to perform TEARDOWN etc with subsequent read/write errors.
Created attachment 133635 [details] [review] Patch for (a) sanity range check
Created attachment 133636 [details] [review] Patch for (b) base_time setting
Created attachment 133637 [details] [review] Patch for (c) eof handling
commit 959a9b494b7eb2d5ea02bae722339c75a93d7e1e Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> Date: Thu Apr 30 10:24:27 2009 +0200 rtspsrc: avoid errors after server eof Server eof (e.g. connection closed) is announced as connection closed, so better record state and act accordingly to prevent (read/write) errors during subsequent teardown/cleanup sequences. #Fixes 580851.(c). commit 734548a34fbb6679dc6b7c568b2cceb2a903a2dc Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> Date: Thu Apr 30 10:19:27 2009 +0200 rtspsrc: also set base_time on src after flush timestamps following flush/seek should be consistent between UDP and TCP interleaved case. Fixes #580851.(b). commit 20c7be5741bfd39e2d2cbe647522b99bd339e101 Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> Date: Thu Apr 30 10:17:23 2009 +0200 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).