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 497020 - Add fully async HTTP source based on libsoup.
Add fully async HTTP source based on libsoup.
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other All
: Normal enhancement
: 0.10.6
Assigned To: Wim Taymans
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-11-15 11:27 UTC by Wouter Cloetens
Modified: 2007-11-15 17:26 UTC
See Also:
GNOME target: ---
GNOME version: Unversioned Enhancement


Attachments
Fully async HTTP source based on libsoup-2.2 (15.07 KB, patch)
2007-11-15 11:28 UTC, Wouter Cloetens
none Details | Review
Fully async HTTP source based on libsoup-2.2 (15.31 KB, patch)
2007-11-15 16:27 UTC, Wouter Cloetens
committed Details | Review

Description Wouter Cloetens 2007-11-15 11:27:35 UTC
See bug 338827.

libneon does not support async handling, so it's not a structural solution.
libsoup does.
Comment 1 Wouter Cloetens 2007-11-15 11:28:34 UTC
Created attachment 99138 [details] [review]
Fully async HTTP source based on libsoup-2.2

This adds a fully async HTTP source based on libsoup.
start() returns immediately. URL parsing, DNS lookup, connection, HTTP
negotiation and reception of data is completely asynchronous (with use of a new
GMainLoop) and handled in create().
This is a bare-bones implementation and lacks many of the features on
neonhttpsrc. HTTPS should work too, but was not tested.
Comment 2 Wouter Cloetens 2007-11-15 16:27:20 UTC
Created attachment 99148 [details] [review]
Fully async HTTP source based on libsoup-2.2

Fix hang, presumably due not being allowed to call soup_session_abort() from the main thread while the source element's thread is blocked in its mainloop.
Comment 3 Wim Taymans 2007-11-15 17:26:31 UTC
        Patch by: Wouter Cloetens <wouter at mind dot be>

        * configure.ac:
        * ext/Makefile.am:
        * ext/soup/Makefile.am:
        * ext/soup/gstsouphttpsrc.c: (_do_init),
        (gst_souphttp_src_base_init), (gst_souphttp_src_class_init),
        (gst_souphttp_src_init), (gst_souphttp_src_dispose),
        (gst_souphttp_src_set_property), (gst_souphttp_src_get_property),
        (gst_souphttp_src_create), (gst_souphttp_src_start),
        (gst_souphttp_src_stop), (gst_souphttp_src_unlock),
        (gst_souphttp_src_set_location), (soup_got_chunk), (soup_response),
        (soup_session_close), (plugin_init):
        * ext/soup/gstsouphttpsrc.h:
        Added HTTP source based on libsoup. Fixes #497020.