mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 19:51:11 +00:00
shout2: Add compatibility for libshout >= 2.4.2
In libshout >=2.4.2 shout_open() can return SHOUTERR_RETRY in addition to SHOUTERR_BUSY. The nonblocking example in libshout fixes the problem in a similar way, as mentioned by the author in this issue: https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2316 Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/848 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1363>
This commit is contained in:
parent
92f8b54657
commit
9e2f679ae1
1 changed files with 6 additions and 0 deletions
|
@ -576,7 +576,13 @@ gst_shout2send_connect (GstShout2send * sink)
|
||||||
ret = shout_open (sink->conn);
|
ret = shout_open (sink->conn);
|
||||||
|
|
||||||
/* wait for connection or timeout */
|
/* wait for connection or timeout */
|
||||||
|
#ifdef SHOUTERR_RETRY
|
||||||
|
/* starting with libshout 2.4.2, shout_open() has broken API + ABI and
|
||||||
|
* can also return SHOUTERR_RETRY (a new define) to mean "try again" */
|
||||||
|
while (ret == SHOUTERR_BUSY || ret == SHOUTERR_RETRY) {
|
||||||
|
#else
|
||||||
while (ret == SHOUTERR_BUSY) {
|
while (ret == SHOUTERR_BUSY) {
|
||||||
|
#endif
|
||||||
if (gst_util_get_timestamp () - start_ts > sink->timeout * GST_MSECOND) {
|
if (gst_util_get_timestamp () - start_ts > sink->timeout * GST_MSECOND) {
|
||||||
goto connection_timeout;
|
goto connection_timeout;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue