GNOME Bugzilla – Bug 787586
souphttpsrc : Issue with gst-plugins-good v1.12 during seek request on SRT file [regression]
Last modified: 2017-11-10 12:38:40 UTC
Facing the below issue with gst-plugins-good v1.12 in the below scenario :
1. Play a SRT file.
2. Use souphttpsrc to download the SRT file from a HTTP source.
3. The pipeline comprises gstsubparse plugin which parses the data received.
4. Issue a seek request/position change request.
After this, souphttpsrc stops pushing data.
The issue was not seen with gst-plugins-good v1.8.3 and can be reproduced with v1.12.
When I reverted the changes in the patch https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/ext/soup/gstsouphttpsrc.c?id=183695c61a54f1a9628e5ef7dd951e904b29362a, (which went in between v1.8.3 and v1.12) , the issue disappears and seek/position change works fine.
Requesting you to please suggest on this.
Marking as blocker for now as it appears to be a regression.
Can you provide a test-case for reproducing this, including a public URI?
Thanks for the attention.
The test case is as below :
1. Place an AV(can use any basic container format MKV,MP4 etc) and corresponding SRT file in OTT source. Can use a local instance of Apache server for this.
For example : http://xx.xx.xx.xx/a/2012_XviD_MP3_mkv.mkv
2. Play the file i.e.create a AV pipeline(using souphttpsrc) and a SRT pipeline(using souphttpsrc and subparse).
3. Once AV and SRT subtitles are displayed, issue a seek request(set position request). For example, if the duration of the content is 2 hours, issue a seek request to duration 30 mins from begin.
The issue can be reproduced using the above steps.
Can you also attach a debug log with GST_DEBUG=3,soup*:6?
Created attachment 360044 [details]
Attached the logs.
In the logs, there is an ASSERT(after seek request)because subparse did not received proper data after the seek request :
ERROR:gstsubparse.c:881:parse_subrip_time: assertion failed: (p != NULL)
Can you please update on this ?
Did someone get a chance to look into this ?
Started investigating this
Are both the mkv and the SRT served over http? Also, does the HTTP server support range requests?
Tried with Sintel and its SRT but seeking didn't make the subtitles disappear. Can you share the media you are using?
Also, is this debug log the full output you got? I don't see the log entries related to souphttpsrc trying to seek at all.
- Yes, both the mkv and SRT are served over http and probably the Apache server supports range requests because when rollback to previous version(the one's before the patch) of the .c/.h files of soup, it starts working.
- The log is the full output of GST_DEBUG=3,soup*:6.
- I am attaching the SRT file which I used.
- Note : the issue does not reproduce(on the same version i.e. v1.12) if the files are served from the file src.
Created attachment 361334 [details]
I still couldn't reproduce the issue.
Can you try providing another log? This one doesn't contain the do_seek() function call logs from souphttpsrc.
Do you use playbin or a custom pipeline?
Maybe just provide a GST_DEBUG=6 full log to make it easier to track this down.
I suspect this has been fixed in master since souphttpsrc: Fix seeking back to 0
Can you confirm ?
Yes, it works for me now with the commit https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=770bb07f3059a529a54a3fa3521da641afe25c5e.
Yay, thanks !