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 787586 - souphttpsrc : Issue with gst-plugins-good v1.12 during seek request on SRT file [regression]
souphttpsrc : Issue with gst-plugins-good v1.12 during seek request on SRT fi...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.12.x
Other Linux
: Normal blocker
: 1.12.4
Assigned To: gstreamermm-maint
gstreamermm-maint
Depends on:
Blocks:
 
 
Reported: 2017-09-12 13:43 UTC by Debdeep
Modified: 2017-11-10 12:38 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Requested logs (505.75 KB, text/x-c)
2017-09-19 13:15 UTC, Debdeep
Details
SRT file (135.76 KB, application/x-subrip)
2017-10-11 15:35 UTC, Debdeep
Details

Description Debdeep 2017-09-12 13:43:54 UTC
Dear Members,

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.
Comment 1 Tim-Philipp Müller 2017-09-19 09:09:40 UTC
Marking as blocker for now as it appears to be a regression.
Comment 2 Sebastian Dröge (slomo) 2017-09-19 09:49:36 UTC
Can you provide a test-case for reproducing this, including a public URI?
Comment 3 Debdeep 2017-09-19 10:31:15 UTC
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
              http://xx.xx.xx.xx/a/2012_English.srt
              

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.
Comment 4 Sebastian Dröge (slomo) 2017-09-19 10:44:43 UTC
Can you also attach a debug log with GST_DEBUG=3,soup*:6?
Comment 5 Debdeep 2017-09-19 13:15:10 UTC
Created attachment 360044 [details]
Requested logs
Comment 6 Debdeep 2017-09-19 13:17:12 UTC
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)
Comment 7 Debdeep 2017-09-26 10:04:10 UTC
Dear Members,
Can you please update on this ?

Thanks
Comment 8 Debdeep 2017-10-08 17:50:51 UTC
Hi All,
Did someone get a chance to look into this ?

Thanks
Comment 9 Thiago Sousa Santos 2017-10-10 21:30:27 UTC
Started investigating this
Comment 10 Thiago Sousa Santos 2017-10-10 22:49:52 UTC
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.
Comment 11 Debdeep 2017-10-11 15:28:07 UTC
- 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.

Thanks
Comment 12 Debdeep 2017-10-11 15:35:06 UTC
Created attachment 361334 [details]
SRT file
Comment 13 Debdeep 2017-10-30 04:07:35 UTC
Dear Members,
Can you please update on this ?

Thanks
Comment 14 Thiago Sousa Santos 2017-10-30 04:56:21 UTC
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.
Comment 15 Edward Hervey 2017-11-10 09:21:15 UTC
I suspect this has been fixed in master since     souphttpsrc: Fix seeking back to 0

Can you confirm ?
Comment 16 Debdeep 2017-11-10 11:46:42 UTC
Yes, it works for me now with the commit https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=770bb07f3059a529a54a3fa3521da641afe25c5e.

Thanks
Comment 17 Edward Hervey 2017-11-10 12:38:40 UTC
Yay, thanks !