After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 765689 - rtspsrc: Various problems related to seeking causing scrub seeking to fail
rtspsrc: Various problems related to seeking causing scrub seeking to fail
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal normal
: 1.8.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-04-27 17:51 UTC by Sebastian Dröge (slomo)
Modified: 2016-05-02 07:04 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
rtspsrc: Don't propagate spurious state change returns from internal elements further (1.45 KB, patch)
2016-04-27 17:52 UTC, Sebastian Dröge (slomo)
committed Details | Review
rtpjitterbuffer: Ensure to not take caps with the wrong pt for getting the clock-rate (3.04 KB, patch)
2016-04-27 17:52 UTC, Sebastian Dröge (slomo)
committed Details | Review
rtspsrc: Update caps for TCP whenever they change (3.56 KB, patch)
2016-04-27 17:52 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2016-04-27 17:51:59 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.
Comment 1 Sebastian Dröge (slomo) 2016-04-27 17:52:48 UTC
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
Comment 2 Sebastian Dröge (slomo) 2016-04-27 17:52:53 UTC
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.
Comment 3 Sebastian Dröge (slomo) 2016-04-27 17:52:59 UTC
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.
Comment 4 Sebastian Dröge (slomo) 2016-04-29 07:09:19 UTC
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