Soundcloud HTTP streaming stopped working after FMOD Core update

Hello all. I am a developer of a game that utilizes a custom plugin in UE4 that implements the FMOD Core. We used version 1.06.09 (five years old) and so far we use it exclusively for streaming music from Soundcloud and calculating FFTs of these streams on the fly.

A problem we experience is that the Channel::setPosition causes the stream to seize playing/existing, after which Sound::getOpenState keeps returning HTTP access errors. Here is a log made using the logging version of FMOD. Note that I had to censor our Soundcloud client ID in the streaming URL.

Log 1.06.09 - setPosition failing
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi.cpp(3887) - filename = https://api.soundcloud.com/tracks/219610160/stream?client_id=[CLIENT ID] : mode 02010088
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi.cpp(3891) - FMOD_NONBLOCKING specified.  Putting into queue to be opened asynchronously!
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_thread.cpp(162) - Initializing FMOD nonblocking thread (0).  priority 1
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_thread.cpp(163) - - Stacksize 81920.  Stack pointer 0000000000000000 : usesemaphore = 1 : sleeptime = 0
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_thread.cpp(46) - * FMOD nonblocking thread (0) started
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi.cpp(4027) - setdata soundi = 00000267676E6EB8 : node = 000002676520D9B0
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi.cpp(4031) - add node to async list : head = 000002676364E590.  list count = 0
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_async.cpp(307) - Starting Asynchronous operation on sound 00000267676E6EB8
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(526) -     filename = https://api.soundcloud.com/tracks/219610160/stream?client_id=[CLIENT ID] : mode 02010088
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_system.cpp(1076) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_system.cpp(1076) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_system.cpp(1076) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_system.cpp(1076) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_system.cpp(1076) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_system.cpp(1076) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_system.cpp(1076) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_system.cpp(1076) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Error: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_codec_fsb5.cpp(127) -     Header check failed. Not an FSB5
Error: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_codec_oggvorbis.cpp(381) -     failed to open as ogg
Error: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_codec_midi.cpp(2966) -     'HThd' ID check failed [???d]
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(996) -     Format has 0 subsounds.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1093) -     Create as FMOD_CREATESTREAM
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1175) -     decode buffersize = 17280 : blocksize = 1152 : format = 2
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1993) -     mode 0201008a length 17280 samples, lengthbytes 3860270
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(2060) -     channels = 2
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(2066) -     output = 0000026656BC8C88
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_output_software.cpp(154) -     lengthpcm 17280, lengthbytes 3860270, channels 2, format 2, freq 44100, mode 0201008a
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1475) -     Seek stream to start
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1487) -     flush stream buffer
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1492) -     flush successful.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1508) -     switch file handle from small blocking single buffered to large nonblocking doublebuffered.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_thread.cpp(162) -         Initializing FMOD file thread.  priority 1
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_thread.cpp(163) -         - Stacksize 16384.  Stack pointer 0000000000000000 : usesemaphore = 0 : sleeptime = 10
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_thread.cpp(46) -         * FMOD file thread started
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_system.cpp(1076) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1906) -     No name found in file, use filename.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1967) -     done.  OpenState now = FMOD_OPENSTATE_READY.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_async.cpp(452) - Finished Asynchronous operation on sound 00000267676E6EB8
--- Stream starts playing ---
--- setPosition is called on the channel ---
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_async.cpp(307) - Starting Asynchronous operation on sound 00000267676E6EB8
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_file_net.cpp(1077) -     FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_file_net.cpp(1077) -     FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_async.cpp(452) - Finished Asynchronous operation on sound 00000267676E6EB8
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_sound.cpp(474) - FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Error: [UpdateStream - getOpenState]: The specified resource requires authentication or is forbidden.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_sound.cpp(474) - FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Error: [UpdateStream - getOpenState]: The specified resource requires authentication or is forbidden.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_sound.cpp(474) - FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Error: [UpdateStream - getOpenState]: The specified resource requires authentication or is forbidden.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_sound.cpp(474) - FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Error: [UpdateStream - getOpenState]: The specified resource requires authentication or is forbidden.
--- And so on ---

I narrowed down the issue to that this only seems to happen when the position that the stream is set to is not yet buffered, because setting the position of the stream only slightly ahead results in an audible skip with resumed streaming, as expected. Similarly, we have received bug reports for our game that involve the stream also stopping in the middle of a track, which I assume also has to do with the stream reaching a point that is no longer buffered.

I then attempted to use the Sound::seekData function to buffer the part of the stream that we want the stream to skip to (assuming that is what this function does), but that also failed. This time with a socket error.

Log 1.06.09 - seekData failing
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(526) - filename = https://api.soundcloud.com/tracks/219610160/stream?client_id=[CLIENT ID] : mode 02000088
Error: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_codec_fsb5.cpp(127) - Header check failed. Not an FSB5
Error: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_codec_oggvorbis.cpp(381) - failed to open as ogg
Error: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_codec_midi.cpp(2966) - 'HThd' ID check failed [???d]
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(996) - Format has 0 subsounds.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1093) - Create as FMOD_CREATESTREAM
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1175) - decode buffersize = 17280 : blocksize = 1152 : format = 2
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1993) - mode 0200008a length 17280 samples, lengthbytes 3860270
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(2060) - channels = 2
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(2066) - output = 00000146945E6198
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_output_software.cpp(154) - lengthpcm 17280, lengthbytes 3860270, channels 2, format 2, freq 44100, mode 0200008a
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1475) - Seek stream to start
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1487) - flush stream buffer
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1492) - flush successful.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1508) - switch file handle from small blocking single buffered to large nonblocking doublebuffered.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1906) - No name found in file, use filename.
c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_systemi_sound.cpp(1967) - done.  OpenState now = FMOD_OPENSTATE_READY.
--- Stream starts playing ---
--- seekData is called on the stream ---
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_net.cpp(427) - FMOD_RESULT = 43 -- A socket error occurred.  This is a catch-all for socket-related errors not listed elsewhere.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_file_net.cpp(1077) - FMOD_RESULT = 43 -- A socket error occurred.  This is a catch-all for socket-related errors not listed elsewhere.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_net.cpp(427) - FMOD_RESULT = 43 -- A socket error occurred.  This is a catch-all for socket-related errors not listed elsewhere.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_file_net.cpp(1077) - FMOD_RESULT = 43 -- A socket error occurred.  This is a catch-all for socket-related errors not listed elsewhere.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_file_net.cpp(1077) - FMOD_RESULT = 42 -- Couldn't connect to the specified host.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_soundi.cpp(357) - FMOD_RESULT = 42 -- Couldn't connect to the specified host.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_sound.cpp(520) - FMOD_RESULT = 42 -- Couldn't connect to the specified host.
Error: [Seek stream position]: Couldn't connect to the specified host.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_file_net.cpp(1077) - FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_channel.cpp(134) - FMOD_RESULT = 30 -- An invalid object handle was used.
Error: [UpdateStream - getPosition]: An invalid object handle was used.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_channelcontrol.cpp(238) - FMOD_RESULT = 30 -- An invalid object handle was used.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_channel.cpp(134) - FMOD_RESULT = 30 -- An invalid object handle was used.
Error: [UpdateStream - getPosition]: An invalid object handle was used.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_channelcontrol.cpp(238) - FMOD_RESULT = 30 -- An invalid object handle was used.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_channel.cpp(134) - FMOD_RESULT = 30 -- An invalid object handle was used.
Error: [UpdateStream - getPosition]: An invalid object handle was used.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_channelcontrol.cpp(238) - FMOD_RESULT = 30 -- An invalid object handle was used.
Warning: c:\jk\workspace\Build__1.7__API_Win\lowlevel_api\src\fmod_channel.cpp(134) - FMOD_RESULT = 30 -- An invalid object handle was used.
Error: [UpdateStream - getPosition]: An invalid object handle was used.
--- And so on ---

I found in the FMOD Core version history that the very next release had "Sound::seekData support for HTTP streams," so I felt an update was necessary and updated the FMOD Core straight to the latest version (2.01.06). The problem that arises now is that streams simply won’t start playing anymore, as it only throws HTTP access errors now, see the log below. Note that this also happens on the oldest available version of the FMOD Core (1.08.00), which is still newer than the one we were using before.

Log 2.01.06 - stream failing to start
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_systemi.cpp(3970) - filename = https://api.soundcloud.com/tracks/219610160/stream?client_id=[CLIENT ID] : mode 02010088
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_systemi.cpp(3974) - FMOD_NONBLOCKING specified.  Putting into queue to be opened asynchronously!
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_thread.cpp(209) - Init FMOD nonblocking thread (0). Affinity: 0x8000000000000003, Priority: 0xFFFF7FFC, Stack Size: 114688, Semaphore: Yes, Sleep Time: 0, Looping: Yes.
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_systemi.cpp(4111) - setdata soundi = 000001C014D34198 : node = 000001BFCD0B4810
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_systemi.cpp(4115) - add node to async list : head = 000001C00CDBA248.  list count = 0
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_async.cpp(191) - Starting Asynchronous operation on sound 000001C014D34198
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_systemi_sound.cpp(640) -     Create name='https://api.soundcloud.com/tracks/219610160/stream?client_id=[CLIENT ID]', mode=0x02010088
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_os_net_winsock.cpp(218) -     Attempting connection to '13.32.241.38:80'
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_os_net_winsock.cpp(218) -     Attempting connection to '54.192.86.110:80'
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_fsb5.cpp(614) -     FMOD_RESULT = 19 -- Unsupported file or audio format.
Error: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_oggvorbis.cpp(357) -     failed to open as ogg
Error: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_mod.cpp(1242) -     'M.K.' etc ID check failed [UUUU]
Error: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_s3m.cpp(1545) -     'SCRM' ID check failed [??$]
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_fsb5.cpp(614) -     FMOD_RESULT = 19 -- Unsupported file or audio format.
Error: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_oggvorbis.cpp(357) -     failed to open as ogg
Error: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_mod.cpp(1242) -     'M.K.' etc ID check failed [UUUU]
Error: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_s3m.cpp(1545) -     'SCRM' ID check failed [??$]
Error: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_xm.cpp(2206) -     'Extended Module: ' ID check failed [???d]
Error: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_it.cpp(4092) -     'IMPM' etc ID check failed [???d]
Error: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_codec_midi.cpp(2867) -     'HThd' ID check failed [???d]
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_systemi_sound.cpp(1340) -     Stream: name='(null)', format=2, channels=2, frequency=44100, lengthbytes=3860270, lengthpcm=10641024, pcmblocksize=1152, loopstart=0, loopend=0, mode=0x00000000, channelmask=0x00000000, channelorder=0, peakvolume=0.000000.
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_thread.cpp(209) -     Init FMOD file thread. Affinity: 0x8000000000000003, Priority: 0xFFFF7FFC, Stack Size: 49152, Semaphore: No, Sleep Time: 10, Looping: Yes.
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_os_net_winsock.cpp(218) -     Attempting connection to '54.192.86.110:80'
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_system.cpp(1035) -     FMOD_RESULT = 46 -- Operation could not be performed because specified sound/DSP connection is not ready.
Error: [UpdateStream - playSound]: Operation could not be performed because specified sound/DSP connection is not ready.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_file_net.cpp(968) -     FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_systemi_sound.cpp(1594) -     FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_async.cpp(336) - Finished Asynchronous operation on sound 000001C014D34198
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_sound.cpp(467) - FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Error: [UpdateStream - getOpenState]: The specified resource requires authentication or is forbidden.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_sound.cpp(467) - FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Error: [UpdateStream - getOpenState]: The specified resource requires authentication or is forbidden.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_sound.cpp(467) - FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Error: [UpdateStream - getOpenState]: The specified resource requires authentication or is forbidden.
Warning: c:\jk\workspace\Build__2.1__API_Win\core_api\src\fmod_sound.cpp(467) - FMOD_RESULT = 22 -- The specified resource requires authentication or is forbidden.
Error: [UpdateStream - getOpenState]: The specified resource requires authentication or is forbidden.
--- And so on ---

The code we use for streaming goes as follows. The stream is created using System->createStream(ANSIStream, FMOD_2D | FMOD_IGNORETAGS, 0, &SoundPlayback->Stream) with ANSIStream the stream URL and Soundplayback->Stream the Sound object. Next we poll System->playSound(SoundPlayback->Stream, nullptr, false, &SoundPlayback->Channel) with SoundPlayback->Channel the Channel object, until the sound can be played back over the Channel object (i.e. the function returns FMOD_OK).

In summary, I tried to use the Sound::setPosition function on version 1.06.09 on an HTTP stream, but that results in playback stopping completely. Updating to version 2.01.06 results in streams not even being able to start anymore.

I hope that someone will be able to help us figure out how to mitigate either of these issues, because we need to be able to set the stream positions.

Hi ,
If you have a url i can test myself I can see what might be happening. Can send them by email if you dont want them public.

1 Like

I would like to send it in private, but I will need an email address to send it to. Alternatively, if I am given the level 1 trust level in Discourse, I should be able to send you a private message on the forums.

you can use support@fmod.com

Thank you! I sent the full URL.

Just to give an update, the issue is simply a server configuration issue, it is just ‘permission denied’.
This will take some more investigation to formulate GET headers differently to impersonate a browser for example, but I have read some hosts issue cookies to allow a browser to access the file, and that’s not something FMOD will be doing if it is the case.

1 Like

As an update I have now found that the error returned from the server was a subtle header format issue, which is not checked on a lot of servers. We have rectified this and your url now plays as it used to.
This will be updated in the next release.

1 Like

I have finally gotten around to testing the new version, and it seems to work! Thank you very much for your time and effort!