Hello community,

here is the log from the commit of package fluidsynth for openSUSE:Factory 
checked in at 2020-04-19 21:35:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fluidsynth (Old)
 and      /work/SRC/openSUSE:Factory/.fluidsynth.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fluidsynth"

Sun Apr 19 21:35:11 2020 rev:50 rq:793920 version:2.1.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/fluidsynth/fluidsynth.changes    2020-02-29 
21:20:25.914031739 +0100
+++ /work/SRC/openSUSE:Factory/.fluidsynth.new.2738/fluidsynth.changes  
2020-04-19 21:35:14.290364013 +0200
@@ -1,0 +2,10 @@
+Mon Apr 13 16:42:51 UTC 2020 - Tom Mbrt <[email protected]>
+
+- Update to version 2.1.2
+  * fluidsynth now exits with error when user-provided command-line
+    arguments are out-of-range
+  * add verbose error logging to opensles and oboe drivers
+  * fix a memory leak in oboe driver
+  * fix a NULL dereference in the fluidsynth commandline program
+
+-------------------------------------------------------------------

Old:
----
  fluidsynth-2.1.1.tar.gz

New:
----
  fluidsynth-2.1.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fluidsynth.spec ++++++
--- /var/tmp/diff_new_pack.PylTo8/_old  2020-04-19 21:35:15.014365506 +0200
+++ /var/tmp/diff_new_pack.PylTo8/_new  2020-04-19 21:35:15.014365506 +0200
@@ -25,7 +25,7 @@
 
 %define sover   2
 Name:           fluidsynth
-Version:        2.1.1
+Version:        2.1.2
 Release:        0
 Summary:        A Real-Time Software Synthesizer That Uses Soundfont(tm)
 License:        LGPL-2.1-or-later

++++++ fluidsynth-2.1.1.tar.gz -> fluidsynth-2.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/.azure-pipelines-mac.yml 
new/fluidsynth-2.1.2/.azure-pipelines-mac.yml
--- old/fluidsynth-2.1.1/.azure-pipelines-mac.yml       2020-02-16 
19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/.azure-pipelines-mac.yml       2020-04-06 
10:40:37.000000000 +0200
@@ -7,9 +7,11 @@
 - job: macOS
   pool:
     vmImage: 'macOS-10.14'
+# recommended by 
https://github.com/Homebrew/brew/issues/2491#issuecomment-294207661
   steps:
     - script: |
-        brew update
+        brew update || brew update
+        brew upgrade
         brew install glib gobject-introspection libsndfile pkg-config jack 
dbus-glib pulseaudio portaudio sdl2
       displayName: 'Prerequisites'
     - script: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/.cirrus.yml 
new/fluidsynth-2.1.2/.cirrus.yml
--- old/fluidsynth-2.1.1/.cirrus.yml    2020-02-16 19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/.cirrus.yml    2020-04-06 10:40:37.000000000 +0200
@@ -7,7 +7,7 @@
             image_family: freebsd-13-0-snap
             image_family: freebsd-12-0
 
-    install_script: pwd && ls -la && pkg install -y cmake glib alsa-lib ladspa 
portaudio pulseaudio pkgconf sdl2
+    install_script: pwd && ls -la && pkg update --force && pkg install -y 
cmake glib alsa-lib ladspa portaudio pulseaudio pkgconf sdl2
     
     compile_script: pwd && ls -la && mkdir $HOME/fluidsynth_install/ && mkdir 
build && cd build && cmake -Werror=dev 
-DCMAKE_INSTALL_PREFIX=$HOME/fluidsynth_install -Denable-portaudio=1 
-Denable-ladspa=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_VERBOSE_MAKEFILE=0  
-DNO_GUI=1 .. && make -j4 && make check && make install
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/CMakeLists.txt 
new/fluidsynth-2.1.2/CMakeLists.txt
--- old/fluidsynth-2.1.1/CMakeLists.txt 2020-02-16 19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/CMakeLists.txt 2020-04-06 10:40:37.000000000 +0200
@@ -29,7 +29,7 @@
 # FluidSynth package version
 set ( FLUIDSYNTH_VERSION_MAJOR 2 )
 set ( FLUIDSYNTH_VERSION_MINOR 1 )
-set ( FLUIDSYNTH_VERSION_MICRO 1 )
+set ( FLUIDSYNTH_VERSION_MICRO 2 )
 set ( VERSION 
"${FLUIDSYNTH_VERSION_MAJOR}.${FLUIDSYNTH_VERSION_MINOR}.${FLUIDSYNTH_VERSION_MICRO}"
 )
 set ( FLUIDSYNTH_VERSION "\"${VERSION}\"" )
 
@@ -44,7 +44,7 @@
 # This is not exactly the same algorithm as the libtool one, but the results 
are the same.
 set ( LIB_VERSION_CURRENT 2 )
 set ( LIB_VERSION_AGE 3 )
-set ( LIB_VERSION_REVISION 1 )
+set ( LIB_VERSION_REVISION 2 )
 set ( LIB_VERSION_INFO
       "${LIB_VERSION_CURRENT}.${LIB_VERSION_AGE}.${LIB_VERSION_REVISION}" )
 
@@ -583,7 +583,7 @@
     if ( enable-readline )
     pkg_check_modules ( READLINE readline )
     if ( NOT READLINE_FOUND )
-        find_package ( Readline )
+        find_package ( READLINE )
         set ( READLINE_FOUND ${HAVE_READLINE} )
     endif ( NOT READLINE_FOUND )
     if ( READLINE_FOUND )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/cmake_admin/FindREADLINE.cmake 
new/fluidsynth-2.1.2/cmake_admin/FindREADLINE.cmake
--- old/fluidsynth-2.1.1/cmake_admin/FindREADLINE.cmake 1970-01-01 
01:00:00.000000000 +0100
+++ new/fluidsynth-2.1.2/cmake_admin/FindREADLINE.cmake 2020-04-06 
10:40:37.000000000 +0200
@@ -0,0 +1,22 @@
+# Try to find the READLINE library
+#  HAVE_READLINE - system has READLINE
+#  READLINE_INCLUDE_DIR - READLINE include directory
+#  READLINE_LIBRARIES - Libraries needed to use READLINE
+
+if ( READLINE_INCLUDE_DIR AND READLINE_LIBRARIES )
+    set ( READLINE_FIND_QUIETLY TRUE )
+endif ( READLINE_INCLUDE_DIR AND READLINE_LIBRARIES )
+
+find_path ( READLINE_INCLUDE_DIR NAMES history.h readline/history.h )
+find_library ( READLINE_LIBRARIES NAMES readline )
+
+if ( READLINE_INCLUDE_DIR AND READLINE_LIBRARIES )
+    set ( HAVE_READLINE TRUE CACHE BOOL "Found readline header and lib" FORCE )
+endif ( READLINE_INCLUDE_DIR AND READLINE_LIBRARIES )
+
+include ( FindPackageHandleStandardArgs )
+FIND_PACKAGE_HANDLE_STANDARD_ARGS( READLINE DEFAULT_MSG 
+                                   READLINE_INCLUDE_DIR 
+                                   READLINE_LIBRARIES )
+
+mark_as_advanced( READLINE_INCLUDE_DIR READLINE_LIBRARIES HAVE_READLINE )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/cmake_admin/FindReadline.cmake 
new/fluidsynth-2.1.2/cmake_admin/FindReadline.cmake
--- old/fluidsynth-2.1.1/cmake_admin/FindReadline.cmake 2020-02-16 
19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/cmake_admin/FindReadline.cmake 1970-01-01 
01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-# Try to find the READLINE library
-#  HAVE_READLINE - system has READLINE
-#  READLINE_INCLUDE_DIR - READLINE include directory
-#  READLINE_LIBRARIES - Libraries needed to use READLINE
-
-if ( READLINE_INCLUDE_DIR AND READLINE_LIBRARIES )
-    set ( READLINE_FIND_QUIETLY TRUE )
-endif ( READLINE_INCLUDE_DIR AND READLINE_LIBRARIES )
-
-find_path ( READLINE_INCLUDE_DIR NAMES history.h readline/history.h )
-find_library ( READLINE_LIBRARIES NAMES readline )
-
-if ( READLINE_INCLUDE_DIR AND READLINE_LIBRARIES )
-    set ( HAVE_READLINE TRUE CACHE BOOL "Found readline header and lib" FORCE )
-endif ( READLINE_INCLUDE_DIR AND READLINE_LIBRARIES )
-
-include ( FindPackageHandleStandardArgs )
-FIND_PACKAGE_HANDLE_STANDARD_ARGS( READLINE DEFAULT_MSG 
-                                   READLINE_INCLUDE_DIR 
-                                   READLINE_LIBRARIES )
-
-mark_as_advanced( READLINE_INCLUDE_DIR READLINE_LIBRARIES HAVE_READLINE )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/doc/Doxyfile 
new/fluidsynth-2.1.2/doc/Doxyfile
--- old/fluidsynth-2.1.1/doc/Doxyfile   2020-02-16 19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/doc/Doxyfile   2020-04-06 10:40:37.000000000 +0200
@@ -5,7 +5,7 @@
 #---------------------------------------------------------------------------
 DOXYFILE_ENCODING = UTF-8
 PROJECT_NAME = libfluidsynth
-PROJECT_NUMBER = 2.1.1
+PROJECT_NUMBER = 2.1.2
 OUTPUT_DIRECTORY = api
 CREATE_SUBDIRS = NO
 OUTPUT_LANGUAGE = English
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/doc/fluidsettings.xml 
new/fluidsynth-2.1.2/doc/fluidsettings.xml
--- old/fluidsynth-2.1.1/doc/fluidsettings.xml  2020-02-16 19:55:28.000000000 
+0100
+++ new/fluidsynth-2.1.2/doc/fluidsettings.xml  2020-04-06 10:40:37.000000000 
+0200
@@ -354,8 +354,7 @@
             </desc>
         </setting>
     </synth>
-        
-    
+
     <audio>
         <setting>
             <isFirst>Audio driver settings</isFirst>
@@ -367,7 +366,7 @@
                   coreaudio (Mac OS X),<br />
                   dart (OS/2)
             </def>
-            <vals>alsa, coreaudio, dart, dsound, file, jack, oss, portaudio, 
pulseaudio, sdl2, sndman, waveout</vals>
+            <vals>alsa, coreaudio, dart, dsound, file, jack, oboe, opensles, 
oss, portaudio, pulseaudio, sdl2, sndman, waveout</vals>
             <desc>
                 The audio system to be used. In order to use sdl2 as audio 
driver, the application is responsible for initializing SDL's audio 
subsystem.<br /><br /><strong>Note:</strong> sdl2 and waveout are available 
since fluidsynth 2.1.
             </desc>
@@ -642,13 +641,13 @@
             <name>alsa.device</name>
             <type>str</type>
             <def>default</def>
-            <desc>ALSA MIDI device to use for RAW ALSA MIDI driver.</desc>
+            <desc>ALSA MIDI hardware device to use for RAW ALSA MIDI driver 
(not to be confused with the MIDI port).</desc>
         </setting>
         <setting>
             <name>alsa_seq.device</name>
             <type>str</type>
             <def>default</def>
-            <desc>ALSA sequencer device to use for ALSA sequencer 
driver.</desc>
+            <desc>ALSA sequencer hardware device to use for ALSA sequencer 
driver (not to be confused with the MIDI port).</desc>
         </setting>
         <setting>
             <name>alsa_seq.id</name>
@@ -678,13 +677,13 @@
             <name>oss.device</name>
             <type>str</type>
             <def>/dev/midi</def>
-            <desc>Device to use for OSS MIDI driver.</desc>
+            <desc>The hardware device to use for OSS MIDI driver (not to be 
confused with the MIDI port).</desc>
         </setting>
         <setting>
             <name>winmidi.device</name>
             <type>str</type>
             <def>default</def>
-            <desc>Device for Windows MIDI driver.</desc>
+            <desc>The hardware device to use for Windows MIDI driver (not to 
be confused with the MIDI port).</desc>
         </setting>
     </midi>
     
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/doc/fluidsynth-v20-devdoc.txt 
new/fluidsynth-2.1.2/doc/fluidsynth-v20-devdoc.txt
--- old/fluidsynth-2.1.1/doc/fluidsynth-v20-devdoc.txt  2020-02-16 
19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/doc/fluidsynth-v20-devdoc.txt  2020-04-06 
10:40:37.000000000 +0200
@@ -8,8 +8,8 @@
 \author David Henningsson
 \author Tom Moebert
 \author Copyright &copy; 2003-2020 Peter Hanappe, Conrad Berhörster, Antoine 
Schmitt, Pedro López-Cabanillas, Josh Green, David Henningsson, Tom Moebert
-\version Revision 2.1.1
-\date 2020-02-16
+\version Revision 2.1.2
+\date 2020-04-05
 
 All the source code examples in this document are in the public domain; you 
can use them as you please. This document is licensed under the Creative 
Commons Attribution-Share Alike 3.0 Unported License. To view a copy of this 
license, visit http://creativecommons.org/licenses/by-sa/3.0/ . The FluidSynth 
library is distributed under the GNU Lesser General Public License. A copy of 
the GNU Lesser General Public License is contained in the FluidSynth package; 
if not, visit http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt or write to 
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
02110-1301 USA.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/src/drivers/fluid_adriver.c 
new/fluidsynth-2.1.2/src/drivers/fluid_adriver.c
--- old/fluidsynth-2.1.1/src/drivers/fluid_adriver.c    2020-02-16 
19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/src/drivers/fluid_adriver.c    2020-04-06 
10:40:37.000000000 +0200
@@ -213,7 +213,7 @@
 
     fluid_settings_register_int(settings, "audio.realtime-prio",
                                 FLUID_DEFAULT_AUDIO_RT_PRIO, 0, 99, 0);
-    
+
     fluid_settings_register_str(settings, "audio.driver", "", 0);
 
     for(i = 0; i < FLUID_N_ELEMENTS(fluid_audio_drivers) - 1; i++)
@@ -223,7 +223,7 @@
         {
             def_name = fluid_audio_drivers[i].name;
         }
-    
+
         /* Add the driver to the list of options */
         fluid_settings_add_option(settings, "audio.driver", 
fluid_audio_drivers[i].name);
 
@@ -265,7 +265,7 @@
 
     fluid_settings_dupstr(settings, "audio.driver", &name);        /* ++ alloc 
name */
     FLUID_LOG(FLUID_ERR, "Couldn't find the requested audio driver '%s'.", 
name ? name : "NULL");
-    
+
     allnames = fluid_settings_option_concat(settings, "audio.driver", NULL);
     if(allnames != NULL)
     {
@@ -280,9 +280,9 @@
 
         FLUID_FREE(allnames);
     }
-    
+
     FLUID_FREE(name);
-    
+
     return NULL;
 }
 
@@ -291,7 +291,7 @@
  * @param settings Configuration settings used to select and create the audio
  *   driver.
  * @param synth Synthesizer instance for which the audio driver is created for.
- * @return The new audio driver instance.
+ * @return The new audio driver instance or NULL on error
  *
  * Creates a new audio driver for a given \p synth instance with a defined set
  * of configuration \p settings. The \p settings instance must be the same that
@@ -329,8 +329,8 @@
  * @param settings Configuration settings used to select and create the audio
  *   driver.
  * @param func Function called to fill audio buffers for audio playback
- * @param data User defined data pointer to pass to 'func'
- * @return The new audio driver instance.
+ * @param data User defined data pointer to pass to \p func
+ * @return The new audio driver instance or NULL on error
  *
  * Like new_fluid_audio_driver() but allows for custom audio processing before
  * audio is sent to audio driver. It is the responsibility of the callback
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/src/drivers/fluid_oboe.cpp 
new/fluidsynth-2.1.2/src/drivers/fluid_oboe.cpp
--- old/fluidsynth-2.1.1/src/drivers/fluid_oboe.cpp     2020-02-16 
19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/src/drivers/fluid_oboe.cpp     2020-04-06 
10:40:37.000000000 +0200
@@ -126,7 +126,6 @@
 
     try
     {
-
         dev = FLUID_NEW(fluid_oboe_audio_driver_t);
 
         if(dev == NULL)
@@ -171,21 +170,25 @@
         ->setCallback(dev->oboe_callback);
 
         result = builder->openStream(&stream);
-        dev->stream = stream;
-
         if(result != Result::OK)
         {
+            FLUID_LOG(FLUID_ERR, "Unable to open Oboe audio stream");
             goto error_recovery;
         }
 
+        dev->stream = stream;
         dev->cont = 1;
 
         FLUID_LOG(FLUID_INFO, "Using Oboe driver");
 
-        stream->start();
+        result = stream->start();
+        if(result != Result::OK)
+        {
+            FLUID_LOG(FLUID_ERR, "Unable to start Oboe audio stream");
+            goto error_recovery;
+        }
 
         return reinterpret_cast<fluid_audio_driver_t *>(dev);
-
     }
     catch(...)
     {
@@ -205,7 +208,6 @@
 
     try
     {
-
         dev->cont = 0;
 
         if(dev->stream != NULL)
@@ -216,6 +218,9 @@
     }
     catch(...) {}
 
+    // the audio stream is silently allocated with new, but neither the API 
docs nor code examples mention that it should be deleted
+    delete dev->stream;
+
     delete dev->oboe_callback;
 
     FLUID_FREE(dev);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/src/drivers/fluid_opensles.c 
new/fluidsynth-2.1.2/src/drivers/fluid_opensles.c
--- old/fluidsynth-2.1.1/src/drivers/fluid_opensles.c   2020-02-16 
19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/src/drivers/fluid_opensles.c   2020-04-06 
10:40:37.000000000 +0200
@@ -109,7 +109,7 @@
 
     if(!dev->engine)
     {
-        FLUID_LOG(FLUID_ERR, "Failed to create OpenSLES connection");
+        FLUID_LOG(FLUID_ERR, "Failed to create the OpenSL ES engine, error 
code 0x%lx", result);
         goto error_recovery;
     }
 
@@ -117,6 +117,7 @@
 
     if(result != SL_RESULT_SUCCESS)
     {
+        FLUID_LOG(FLUID_ERR, "Failed to realize the OpenSL ES engine, error 
code 0x%lx", result);
         goto error_recovery;
     }
 
@@ -124,6 +125,7 @@
 
     if(result != SL_RESULT_SUCCESS)
     {
+        FLUID_LOG(FLUID_ERR, "Failed to retrieve the OpenSL ES engine 
interface, error code 0x%lx", result);
         goto error_recovery;
     }
 
@@ -131,6 +133,7 @@
 
     if(result != SL_RESULT_SUCCESS)
     {
+        FLUID_LOG(FLUID_ERR, "Failed to create the OpenSL ES output mix 
object, error code 0x%lx", result);
         goto error_recovery;
     }
 
@@ -138,6 +141,7 @@
 
     if(result != SL_RESULT_SUCCESS)
     {
+        FLUID_LOG(FLUID_ERR, "Failed to realize the OpenSL ES output mix 
object, error code 0x%lx", result);
         goto error_recovery;
     }
 
@@ -179,6 +183,7 @@
 
     if(result != SL_RESULT_SUCCESS)
     {
+        FLUID_LOG(FLUID_ERR, "Failed to create the OpenSL ES audio player 
object, error code 0x%lx", result);
         goto error_recovery;
     }
 
@@ -186,6 +191,7 @@
 
     if(result != SL_RESULT_SUCCESS)
     {
+        FLUID_LOG(FLUID_ERR, "Failed to realize the OpenSL ES audio player 
object, error code 0x%lx", result);
         goto error_recovery;
     }
 
@@ -194,6 +200,7 @@
 
     if(result != SL_RESULT_SUCCESS)
     {
+        FLUID_LOG(FLUID_ERR, "Failed to retrieve the OpenSL ES audio player 
interface, error code 0x%lx", result);
         goto error_recovery;
     }
 
@@ -202,6 +209,7 @@
 
     if(result != SL_RESULT_SUCCESS)
     {
+        FLUID_LOG(FLUID_ERR, "Failed to retrieve the OpenSL ES buffer queue 
interface, error code 0x%lx", result);
         goto error_recovery;
     }
 
@@ -224,23 +232,38 @@
 
     if(result != SL_RESULT_SUCCESS)
     {
+        FLUID_LOG(FLUID_ERR, "Failed to register the opensles_callback, error 
code 0x%lx", result);
         goto error_recovery;
     }
 
     if(dev->is_sample_format_float)
     {
-        
(*dev->player_buffer_queue_interface)->Enqueue(dev->player_buffer_queue_interface,
 dev->sles_buffer_float, dev->period_frames * NUM_CHANNELS * sizeof(float));
+        result = 
(*dev->player_buffer_queue_interface)->Enqueue(dev->player_buffer_queue_interface,
 dev->sles_buffer_float, dev->period_frames * NUM_CHANNELS * sizeof(float));
     }
     else
     {
-        
(*dev->player_buffer_queue_interface)->Enqueue(dev->player_buffer_queue_interface,
 dev->sles_buffer_short, dev->period_frames * NUM_CHANNELS * sizeof(short));
+        result = 
(*dev->player_buffer_queue_interface)->Enqueue(dev->player_buffer_queue_interface,
 dev->sles_buffer_short, dev->period_frames * NUM_CHANNELS * sizeof(short));
+    }
+
+    if(result != SL_RESULT_SUCCESS)
+    {
+        FLUID_LOG(FLUID_ERR, "Failed to add a buffer to the queue, error code 
0x%lx", result);
+        goto error_recovery;
+    }
+
+    result = 
(*dev->audio_player_interface)->SetCallbackEventsMask(dev->audio_player_interface,
 SL_PLAYEVENT_HEADATEND);
+
+    if(result != SL_RESULT_SUCCESS)
+    {
+        FLUID_LOG(FLUID_ERR, "Failed to set OpenSL ES audio player callback 
events, error code 0x%lx", result);
+        goto error_recovery;
     }
 
-    
(*dev->audio_player_interface)->SetCallbackEventsMask(dev->audio_player_interface,
 SL_PLAYEVENT_HEADATEND);
     result = 
(*dev->audio_player_interface)->SetPlayState(dev->audio_player_interface, 
SL_PLAYSTATE_PLAYING);
 
     if(result != SL_RESULT_SUCCESS)
     {
+        FLUID_LOG(FLUID_ERR, "Failed to set OpenSL ES audio player play state 
to playing, error code 0x%lx", result);
         goto error_recovery;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/src/drivers/fluid_sdl2.c 
new/fluidsynth-2.1.2/src/drivers/fluid_sdl2.c
--- old/fluidsynth-2.1.1/src/drivers/fluid_sdl2.c       2020-02-16 
19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/src/drivers/fluid_sdl2.c       2020-04-06 
10:40:37.000000000 +0200
@@ -60,7 +60,7 @@
 
     if(!SDL_WasInit(SDL_INIT_AUDIO))
     {
-        FLUID_LOG(FLUID_ERR, "SDL2 not initialized");
+        FLUID_LOG(FLUID_WARN, "SDL2 not initialized, SDL2 audio driver won't 
be usable");
         return;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/src/fluidsynth.c 
new/fluidsynth-2.1.2/src/fluidsynth.c
--- old/fluidsynth-2.1.1/src/fluidsynth.c       2020-02-16 19:55:28.000000000 
+0100
+++ new/fluidsynth-2.1.2/src/fluidsynth.c       2020-04-06 10:40:37.000000000 
+0200
@@ -490,7 +490,10 @@
             }
             else
             {
-                fluid_settings_setstr(settings, "audio.driver", optarg);
+                if(fluid_settings_setstr(settings, "audio.driver", optarg) != 
FLUID_OK)
+                {
+                    goto cleanup;
+                }
             }
 
             break;
@@ -508,7 +511,10 @@
             break;
 
         case 'c':
-            fluid_settings_setint(settings, "audio.periods", atoi(optarg));
+            if(fluid_settings_setint(settings, "audio.periods", atoi(optarg)) 
!= FLUID_OK)
+            {
+                goto cleanup;
+            }
             break;
 
         case 'd':
@@ -533,7 +539,10 @@
             }
             else
             {
-                fluid_settings_setstr(settings, "audio.file.endian", optarg);
+                if(fluid_settings_setstr(settings, "audio.file.endian", 
optarg) != FLUID_OK)
+                {
+                    goto cleanup;
+                }
             }
 
             break;
@@ -543,7 +552,10 @@
             break;
 
         case 'F':
-            fluid_settings_setstr(settings, "audio.file.name", optarg);
+            if(fluid_settings_setstr(settings, "audio.file.name", optarg) != 
FLUID_OK)
+            {
+                goto cleanup;
+            }
             fast_render = 1;
             break;
 
@@ -552,7 +564,10 @@
             break;
 
         case 'g':
-            fluid_settings_setnum(settings, "synth.gain", atof(optarg));
+            if(fluid_settings_setnum(settings, "synth.gain", atof(optarg)) != 
FLUID_OK)
+            {
+                goto cleanup;
+            }
             break;
 
         case 'h':
@@ -572,12 +587,18 @@
             break;
 
         case 'K':
-            fluid_settings_setint(settings, "synth.midi-channels", 
atoi(optarg));
+            if(fluid_settings_setint(settings, "synth.midi-channels", 
atoi(optarg)) != FLUID_OK)
+            {
+                goto cleanup;
+            }
             break;
 
         case 'L':
             audio_channels = atoi(optarg);
-            fluid_settings_setint(settings, "synth.audio-channels", 
audio_channels);
+            if(fluid_settings_setint(settings, "synth.audio-channels", 
audio_channels) != FLUID_OK)
+            {
+                goto cleanup;
+            }
             break;
 
         case 'l':                      /* disable LASH */
@@ -596,7 +617,10 @@
             }
             else
             {
-                fluid_settings_setstr(settings, "midi.driver", optarg);
+                if(fluid_settings_setstr(settings, "midi.driver", optarg) != 
FLUID_OK)
+                {
+                    goto cleanup;
+                }
             }
 
             break;
@@ -636,7 +660,10 @@
             break;
 
         case 'p' :
-            fluid_settings_setstr(settings, "midi.portname", optarg);
+            if(fluid_settings_setstr(settings, "midi.portname", optarg) != 
FLUID_OK)
+            {
+                goto cleanup;
+            }
             break;
 
         case 'q':
@@ -665,7 +692,10 @@
             break;
 
         case 'r':
-            fluid_settings_setnum(settings, "synth.sample-rate", atof(optarg));
+            if(fluid_settings_setnum(settings, "synth.sample-rate", 
atof(optarg)) != FLUID_OK)
+            {
+                goto cleanup;
+            }
             break;
 
         case 's':
@@ -692,7 +722,10 @@
             }
             else
             {
-                fluid_settings_setstr(settings, "audio.file.type", optarg);
+                if(fluid_settings_setstr(settings, "audio.file.type", optarg) 
!= FLUID_OK)
+                {
+                    goto cleanup;
+                }
             }
 
             break;
@@ -710,7 +743,10 @@
             break;
 
         case 'z':
-            fluid_settings_setint(settings, "audio.period-size", atoi(optarg));
+            if(fluid_settings_setint(settings, "audio.period-size", 
atoi(optarg)) != FLUID_OK)
+            {
+                goto cleanup;
+            }
             break;
 #ifdef GETOPT_SUPPORT
 
@@ -780,7 +816,10 @@
 
     if(audio_groups != 0)
     {
-        fluid_settings_setint(settings, "synth.audio-groups", audio_groups);
+        if(fluid_settings_setint(settings, "synth.audio-groups", audio_groups) 
!= FLUID_OK)
+        {
+            goto cleanup;
+        }
     }
 
     if(fast_render)
@@ -970,12 +1009,13 @@
         }
 
         fluid_settings_dupstr(settings, "audio.file.name", &filename);
-        if (!quiet) {
-            printf("Rendering audio to file '%s'..\n", filename);
-        }
-
         if(filename)
         {
+            if (!quiet)
+            {
+                printf("Rendering audio to file '%s'..\n", filename);
+            }
+
             FLUID_FREE(filename);
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/src/midi/fluid_midi.c 
new/fluidsynth-2.1.2/src/midi/fluid_midi.c
--- old/fluidsynth-2.1.1/src/midi/fluid_midi.c  2020-02-16 19:55:28.000000000 
+0100
+++ new/fluidsynth-2.1.2/src/midi/fluid_midi.c  2020-04-06 10:40:37.000000000 
+0200
@@ -2207,6 +2207,7 @@
  * @param player MIDI player instance
  * @param tempo Tempo to set playback speed to (in microseconds per quarter 
note, as per MIDI file spec)
  * @return Always returns #FLUID_OK
+ * @note Tempo change events contained in the MIDI file can override the 
specified tempo at any time!
  */
 int fluid_player_set_midi_tempo(fluid_player_t *player, int tempo)
 {
@@ -2227,6 +2228,7 @@
  * @param player MIDI player instance
  * @param bpm Tempo in beats per minute
  * @return Always returns #FLUID_OK
+ * @note Tempo change events contained in the MIDI file can override the 
specified BPM at any time!
  */
 int fluid_player_set_bpm(fluid_player_t *player, int bpm)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.1.1/src/synth/fluid_synth.c 
new/fluidsynth-2.1.2/src/synth/fluid_synth.c
--- old/fluidsynth-2.1.1/src/synth/fluid_synth.c        2020-02-16 
19:55:28.000000000 +0100
+++ new/fluidsynth-2.1.2/src/synth/fluid_synth.c        2020-04-06 
10:40:37.000000000 +0200
@@ -3624,7 +3624,7 @@
  * <code>0 <= j < fluid_synth_count_effects_channels()</code> is a zero-based 
index denoting the effect channel within
  * unit \p k.
  *
- * Any voice playing is assigned to audio channels based on the MIDI channel 
its playing on. Let \p chan be the
+ * Any playing voice is assigned to audio channels based on the MIDI channel 
it's playing on: Let \p chan be the
  * zero-based MIDI channel index an arbitrary voice is playing on. To 
determine the audio channel and effects unit it is
  * going to be rendered to use:
  *


Reply via email to