GNOME Bugzilla – Bug 765689
rtspsrc: Various problems related to seeking causing scrub seeking to fail
Last modified: 2016-05-02 07:04:58 UTC
+++ This bug was initially created as a clone of Bug #760532 +++ See the testcase in the other bug. The other bug is still valid, but it only happens in that testcase because of other bugs. The following patches are enough to make the testcase work on top of 1.8, nothing else is needed.
Created attachment 326884 [details] [review] rtspsrc: Don't propagate spurious state change returns from internal elements further We handle them inside rtspsrc and override them in all other cases anyway, so do the same for "internal" state changes like PAUSED->PAUSED and PLAYING->PLAYING. This keeps unexpected NO_PREROLL to confuse state changes in GstBin. See also https://bugzilla.gnome.org/show_bug.cgi?id=760532
Created attachment 326885 [details] [review] rtpjitterbuffer: Ensure to not take caps with the wrong pt for getting the clock-rate Especially the caps on the pad might be out of date, and the new caps would be provided for the current pt via the request-pt-map signal.
Created attachment 326886 [details] [review] rtspsrc: Update caps for TCP whenever they change We only changed them for UDP so far, which caused the wrong seqnum-base and other information to be passed to rtpjitterbuffer/etc when seeking. This usually wasn't that much of a problem as the code there is robust enough, but every now and then it causes us to drop up to 32756 packets before we continue doing anything meaningful.
Attachment 326884 [details] pushed as d24e687 - rtspsrc: Don't propagate spurious state change returns from internal elements further Attachment 326885 [details] pushed as 608b4ee - rtpjitterbuffer: Ensure to not take caps with the wrong pt for getting the clock-rate Attachment 326886 [details] pushed as 7c728db - rtspsrc: Update caps for TCP whenever they change