/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #2023 X March 21 19:50 PM BrasÃlia Time * * * Licensa de Copia (C) <2024> <Aurora Boreal> * * * * Este programa e software livre: voce pode redistribuir isto e/ou * * modificar isto sobre os termos do GNU Licensa Geral Pública como 25 * publicado pela Fundacao de Software Livre, tanto a versão 3 da * * Licensa, ou (dependendo da sua opcao) qualquer versao posterior. * * * * Este programa e distribuido na esperanca que isto vai ser util, * * mas SEM QUALQUER GARANTIA; sem ate mesmo a implicada garantia de * * COMERCIALIZAcaO ou CABIMENTO PARA UM FIM PARTICULAR. Veja a * * Licensa Geral Publica para mais detalhes. * * * * Você deve ter recebido uma cópia da LICENSA GERAL PUBLICA e a GNU * * Licensa Publica Menor junto com este programa * * Se não, veja <http://www.gnu.org/licenses/>. * * * * Suporte: sourceforge.net github.com * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Pereira: arsoftware25@gmail.com ricardo@arsoftware.net.br * * xcx: arsoftware10@gmail.com charli@arsoftware.net.br * Yasmin: yasmin@arsoftware.net.br * pereira1001@users.sourceforge.net */ The codenames in the changelog are very important GNU contributors also my Grand Ma... First of all: thanks to the developers of: Libav(ffmpeg) SDL Rabbit MP3 DLL Dialog Medien MP3 OCX Maplay 1.2, sorry Jeff... Netshow 2.0 (NetShow was Microsoft's original framework for Internet network broadcasting, intended to compete with RealNetworks RealMedia & Vivo (acquired in 1998 by RealNetworks). It was later renamed and marketed under the Windows Media umbrella.) https://stackoverflow.com/ http://equ.sourceforge.net/ Second: in 01/01/2020 the license of our portions of the code have changed from GPL3 to LGPL, read the file: https://www.gnu.org/licenses/gpl-3.0.txt and: https://www.gnu.org/licenses/lgpl-3.0.txt for more information, then it can be used in open source projects or commercial applications, ok? Now back to the technical information... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mv_______->decoder_c___debug_flag=0; // if 1 it will simulate a delay in the audio, if 2 in the video test also to see if the return from hibernation and suspend state is working as expected, my tests passed, but we will test again in Win10 and 11 (if possible) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RSP MP3 OCX 1.0.2 project, sourceforge project rsppmp3 site : https://sourceforge.net/projects/rsppmp3 GitHub : https://github.com/maria901/rsppmp3_v27 (not updated anymore, Microsoft login problem, believe or not) Win32/64 Dll to play all audio and video that are supported by the library Libav Libav is provided as GPL and LGPL, soon our binary packages will have both methods, for the moment it is only GPL (just wait) rspmp3ocx1.dll and interface2.dll compiled with gcc 11.4.0, SDL2 (mod) compiled with an older version, We don't remember. The files are available in the following folders: /bin <- the compiled binaries x64 /bin_amanda_x86 <- the compiled binaries x86 /c#_sample_old <- the old C# sample project ready to be compiled with SharpDevelop 5.1.0 (not updated since 2021) /c#_sample_amanda_x86_old <- the old C# sample project ready to be compiled with SharpDevelop 5.1.0 (not updated since 2021) /c#_sample_visual_studio_2022 <- the C# project for Visual Studio 2022, in .Net framework 4.5.1 mode for x64 /c#_sample_visual_studio_2022_x86 <- the C# project for Visual Studio 2022, in .Net framework 4.5.1 mode for x86 /doc <- the documentation files in doxygen format for rspmp3ocx1.dll /doc_interface2 <- the documentation files in doxygen format for interface2.dll /parse_webm_m <- the sources for the DLL that fix the absence of duration in Webm files (Webm files that returns -1 for the duration) not handled in the past in Libav /interface2 <- sources of the interface2.DLL, that is the interface for Libav /morcego <- sources for the morcego_interface.o obj file, some small functions /mp3_dll <- sources for the rspmp3ocx1.DLL, decoder.c and player.c are the main files /sdl_2.0 <- the sources for our modified SDL 2.0 library, ready to be compiled again if needed /sqlite <- sources for the Amanda_27.DLL, it is just a wrapper for SQLite, recommended the latest SQLite library /touch <- sources for the C++ library SoundTouch that allows the change in playback speed in many modes Documentation of the version 20.6.0 available online at: https://arsoftware.net.br/binarywork/Amanda_Ava_Pereira/rsppmp3_doc_8.9.9/html/decoder_8c.html http://nomade.sf.net/Amanda_Ava_Pereira/rsppmp3_doc_8.9.9/html/decoder_8c.html link broken in 2023 It says 8.9.9 but it is the 20.6.0 Description - Ability to play media files in the following formats: All media formats supported by ffmpeg (new webm files (2021), flv avi mov rm ra including the new amazingly fast and advanced rsp format (.ricardo4) (:-)) and many many more) - It has a high quality (we supose) graphical equalizer (copied (as usual) from the XMMS project), as far as we know it is optimized for 44100 (soon 48000) sample rate, we will be using the Shibatch version later, because some people say that it is a real high quality version) - It has a spectrum analyzer (now working) with 10 bands (but limited to 44100 sample rate) - The decoder engine is loaded dynamically in the process(sic...) - You can define what wave out device ( soundcard ) will play the MP3 file (in case you have twenty soundcards installed, but for BlueTooth phones it is handy, the sample project waits for your selection to return the playback if the Phone is close (it was modified to work like Edge)) - Not support to next file playback in a playlist for EarPhones command, but soon it will (code will be borrowed from Edge) - The control has support to Xing and VBRI based VBR files (by Libav) - The control can retrieve bitrate, samplerate, layer, stereo mode and the time of the media file as formatted string or milliseconds - Several wave effects, the Amanda wav effect can make a mono file play as stereo, give it a try - ReplayGain and the new and recommended BENormalize normalization method - Ability to extract to wav pcm in 16, 24 and 32 bits and FLOAT (soon to all formats too) - Future versions will be able to play backwards. (in a few years from now) - Future versions will have more features (at least this is what everyone is expecting we supose) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Limitations: All problems related to Libav are related also to this dll If you want to see a Libav problem that can crash our DLL just try to play a flv file with an id3 v2 tag, soon we will fix it or create a workaround (how Ricardo?) Partial subtitles support for the moment (we need free time to add this, then wait) Can select any audio track for playback (sic..., don't believe on it) but only the first video track for the moment, it will be extended soon ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Libav version information: BEGIN: { Libav for x64 release ffmpeg version N-115086-g96449cfeae-20240506 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable- gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfree type --enable-libfribidi --enable-gmp --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm --extra-version=20240506 libavutil 59. 17.100 / 59. 17.100 libavcodec 61. 5.103 / 61. 5.103 libavformat 61. 3.103 / 61. 3.103 libavdevice 61. 2.100 / 61. 2.100 libavfilter 10. 2.101 / 10. 2.101 libswscale 8. 2.100 / 8. 2.100 libswresample 5. 2.100 / 5. 2.100 libpostproc 58. 2.100 / 58. 2.100 -------------------------------------- Libav for x86 release ffmpeg version N-115087-ga9586a00df-20240506 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=i686-w64-mingw32- --arch=i686 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable -xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --disable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --disable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --disable-libsvtav1 --enable-libtwolame --disable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --disable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags= --cc=i686-w64-mingw32-gcc --cxx=i686-w64-mingw32-g++ --ar=i686-w64-mingw32-gcc-ar --ranlib=i686-w64-mingw32-gcc-ranlib --nm=i686-w64-mingw32-gcc-nm --extra-version=20240506 libavutil 59. 17.100 / 59. 17.100 libavcodec 61. 5.103 / 61. 5.103 libavformat 61. 3.103 / 61. 3.103 libavdevice 61. 2.100 / 61. 2.100 libavfilter 10. 2.101 / 10. 2.101 libswscale 8. 2.100 / 8. 2.100 libswresample 5. 2.100 / 5. 2.100 libpostproc 58. 2.100 / 58. 2.100 } END: You can replace the Libav dlls with different and updated versions, indeed it is recommended In a near future the Libav will be incorporated inside the rspmp3ocx1.dll(not sure, but the sources are there for a long time now, just need to be compiled...) to avoid too many dlls in the same path of the dll and avoid conflicts with different copies of the Libav dlls in the same process running (it is rare to occur but is possible) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Changelog: What is new in 21.0.1 build 667768 '08 aug 2024 - 12:25' Codename Odemar Recompiled with GCC 12.4.0, minor modifications. What is new in 20.9.4 build 667761 '06 may 2024 - 20:53' Codename Cheung Updated the Libav DLLs to the latest version for both win32 and win64, minor modifications. What is new in 20.8.5 build 667752 '20 jan 2024 - 05:30' Codename Richard Updated the 64 bits version of the Libav to the latest version available, notice that the x32 version dates from 05/2023, until we find an updated version this will remain as this version, if you really need a latest version of the Libav for x32 we suggest you to compiled it yourself (if you are brave enough), minor modifications. What is new in 20.7.0 build 667737 '11 jun 2023 - 18:29' Codename Jaime Added a new function Get_Audio_Description, it will tell the description of the multichannels, like mono, stereo, 5.1, 7.1 and more, minor modifications, now when media with no audio is playing it will not report two channels but 0. What is new in 20.6.5 build 667732 '11 jun 2023 - 5:57 AM' Codename Odemar Fixed the error of the playback of media files without audio, minor modifications. What is new in 20.6.0 build 667727 '10 jun 2023 - 02:44 AM' Codename Elisa Replaced the old version 5.0 of Libav with version 6.0, small changes was needed and done, next version will be better handling stereo, 5.1, 7.1 and more channels with description, minor modifications, important Visual Studio 22 if used requires patch to compile .Net framework 4.5.1, it is this way to keep running on Windows 7, not only Windows 10 and 11, also maybe next release will include the diminished version of the decoders supporting only most used audio, like Opus, the whole package size is small, more, not tested whether Libav 6.0 can finally generate on the fly the duration for Webm files missing this info on the header, notice that the normal for Webm is to have this duration on the header. What is new in 20.5.6 build 667723 '09 jun 2023 - 10:14 AM' Codename Lucilene Adjusted the makefiles to don´t create folders and files in you 'C:\Cygwin' folder, now the sources and binaries is released in the same package, next version to be released today in a few hours will have the Visual Studio sample project updated, also the Libav library will be updated, minor modifications. What is new in 20.4.8 build 667712 '14 nov 2022 - 11:09 AM' Codename Szwec Fixed a bug that was causing a division by 0 in the function get_next_item_z, updated the libav library, minor modifications. What is new in 20.1.2 build 667674 '28 july 2022 - 03:46 AM' codename 'Dimech' Fixed a weird bug in the audio and video sync code that could only occur on very fast machines, minor modifications. What is new in 20.1.1 build 667673 '27 july 2022 - 11:40 AM' codename 'Richard' Added a copy of the sample project as a full Visual Studio 2022 package, older version was provided as a SharpDevelop project, minor modifications. What is new in 18.0.9 build 667471 'Sat 30/October/2021 09:38:25' codename 'Graffam' Fixed a bug that may cause the sound of wave out to go to 0 during seek while paused, minor modifications What is new in 18.0.8 build 667470 'Sat 30/October/2021 08:19:24' codename 'Peeters' Added update of the video frame and audio position if the seek is called when the playback is paused, the replacement for Libav has the basic audio formats supported, today will be added also wav pcm playback 16 bits Notice that if we add all the formats supported by Libav it will also be huge, minor modifications What is new in 16.0.9 build 667271 'Thu 14/October/2021 06:19:45' codename 'Daly' Small modifications and added a new function to show the video bitrate, if available of course, notice that some webm files don't report a video bitrate but includes all in the audio bitrate, also a bug occurs sometimes when the media files are assiciated with the mp3dll.exe application, it is hard to occur and we will fix it when we figure out how to reproduce the problem, next release will use the new Libav libraries available (15/October/2021) What is new in 15.5.8 build 667220 'Terça(Tuesday) 10 Agosto 2021 12:06' codename 'Haible' First release with full support to subtitles as SUBTITLE_BITMAP, missing for the moment SUBTITLE_TEXT and SUBTITLE_ASS, will be added soon, minor modifications. What is new in 14.1.8 build 667080 'Terça(Tuesday) 03 Agosto 2021 10:51' codename 'Brabec' First version capable of playing video in the Desktop window, minor modifications. What is new in 13.6.5 build 667027 'Segunda(Monday) 02 Agosto 2021 15:39' codename 'Clark' Now the DLL can detect and adjust the playback to a new Phone or new SoundCard available on the system on the fly, before when a new Phone was detected by Windows 10 the playback was paused, now it keep playing with the new attached device, minor modifications. What is new in 13.5.5 build 667017 'Sabado(Saturday) 31 Julho 2021 08:08' codename 'Kovalenko' Updated and uploaded the latest rsppmp3 release, the sample was enhanced and some small bugs got fixed, minor modifications. What is new in 13.4.2 build 667004 'Sexta(Friday) 23 Julho 2021 09:03' codename 'Krüger' Fixed a weird bug in the new cache system, minor modifications. What is new in 13.2.8 build 666990 Quarta 21 Julho 2021 11:42 codename 'Beebe' The old packages may have up to 100 milliseconds of delay between audio and video syc, new versions have less difference, anyway you can calibrate it a little more yourself modifying the line 2082 of the libav_video.c file of the release 13.2.8 and above, minor modifications. What is new in 13.2.6 build 666988 Tue 20/July/2021 21:59:41 codename 'Huang' Fixed two bugs related to each other that can generate error in sync and wrong duration information, the update is a must, also the .DB file (the cache) need to be deleted because the bugs can save erroneus information that need to be updated, minor modifications. What is new in 13.1.1 build 666973 Tue 20/July/2021 14:43:57 codename 'Page and Mentré' First release with full support to cache when loading normalization code and new webm files that need to compute the duration from the audio wav extraction, notice that the reported bug that was done yesterday at 00:00 was not fixed yet, it only occurs with fast machines and will be fixed today, minor modifications. What is new in 12.3.2 build 666894 Thu 15/July/2021 08:10:15 codename 'Dréo' Rearranged the sources to small names and now the precompiled binaries goes in another package name (bin), the first step for cache usage is ready but not complete, support for egenration of duration of new webm files is already working, minor modifications. What is new in 11.5.4 build 666816 Thu 08/July/2021 06:08:35 codename Chéreau Incomplete version, for debug purposes only, new version will be available soon, tomorrow is my son's birthday, the name is Ricardo What is new in 10.2.2 build 66684 Wed 16/June/2021 14:26:55 codename Rino Adjusted the wav effect that was causing distortion when enabled to work with all samplerates without problem, minor modifications. What is new in 10.1.6 build 66678 Sat 29/May/2021 23:11:09 codename Hu Fixed a bug that was causing distortion in the playback of files with sample rate below 16000, it was caused by our own wav effect that is enabled with the function BE_Special_Wav_Effect, now if the sample rate is below 16000 the effect will just be disabled during the playback, when we got more time we will try to allow the use of this effect with these sample rates, (sorry for the time missing at this moment), minor modifications. What is new in 10.0.9 build 66671 Fri 28/May/2021 13:45:40 codename Weidendorfer Fixed a abs call bug referred to the maximum negative value problem, older versions could crash with an array bounds error due to this problem, minor modifications. What is new in 10.0.8 build 66670 Thu 27/May/2021 03:08:10 codename Breuer Fixed weird bug when returning from floating window where a video window black is positioned in the wrong position covering part of the form controls, now the cursor don`t disappear in floating window mode, minor modifications. What is new in 10.0.3 build 66665 Sat 08/May/2021 06:40:10 codename Shen First release with a supported floating video window, minor modifications. What is new in 10.0.1 build 6664 Sat 01/May/2021 22:24:00 codename Joyez Updated the Libav library to the latest version What is new in 9.9.3 build 6656 Sat 01/May/2021 00:18:57 codename Lesourd Removed the code that adjusted the memory usage report of the application running the DLL, in the function 'clean_up_memory_p', maybe this is the reason for the fullscreen playback crash of two days ago, we will keep testing it What is new in 9.9.1 build 6654 Tue 27/April/2021 19:41:24 codename Allouche Fixed a bug in the fullscreen code that was occurring only in some cases, in this case the taskbar was appearing during the playback, now it is always hidden, minor modifications What is new in 9.8.3 build 6646 Thu 08/April/2021 12:23:34 codename Raux Replaced the old ini file with a xml file (.mis), enhanced the appearence of the progress bar (slider), minor modifications What is new in 9.7.4 build 6637 b Wed 07/April/2021 17:24:02 codename Lecerf Fixed a weird bug on returning from fullscreen, minor modifications What is new in 9.7.4 build 6637 Sat 03/April/2021 08:26:25 Fixed a weird memory leak that can make the memory usage go to more than 2 GB when used to play a large playlist, the problem occurred because the informations about the intrinsics of some Libav usage is difficult to find, and some informations are not just incomplete but wrong, fixed in this version, minor sample modifications. What is new in 8.9.7 build 6560 Sat 27/March/2021 19:32:35 Fixed a few memory leaks in the Libav interface to decode audio, added memory usage code to quickly see whether a memory leak is occurring. What is new in 8.9.6 build 6559 Fri 19/March/2021 14:15:10 Fixed small bugs, minor modifications. What is new in 8.7.2 build 6535 Sat 06/March/2021 02:46:24 Updated the Libav library to the version compiled at 05-March-2021, minor modifications. What is new in 8.7.2 build 6535 date - Wed 10/February/2021 23:43:37 Fixed a weird bug that was causing the last 3 frames to appear again after the end of the playback, minor modifications. What is new in 8.7.1 build 6534 date - Wed 10/February/2021 23:43:37 Recompiled the libav interface DLL to use the latest ffmpeg files version, minor modifications. What is new in 8.7.0 build 6533 date - Sun 10/January/2021 08:01:10 Recompiled the libav interface DLL to use the latest ffmpeg files version, minor modifications. What is new in 8.6.9 build 6532 date - Sun 10/January/2021 08:01:10 Fixed a bug that was not closing the media file, then all files loaded was always in the memory and cannot be renamed or deleted, fixed now, updated the Libav library to the latest version available, added a new function to fix a bug that was causing a crash at the Playback button on fullscreen, now it will wait for a valid value for the wavout before calling 'PlaybackResume', minor modifications. What is new in 8.6.3 build 6526 date - Fri 04/December/2020 17:40:45 As Microsoft stated a Direct3D device can be in either an operational state or a lost state. The operational state is the normal state of the device in which the device runs and presents all rendering as expected. The device makes a transition to the lost state when an event, such as the loss of keyboard focus in a full-screen application, causes rendering to become impossible. The lost state is characterized by the silent failure of all rendering operations, which means that the rendering methods can return success codes even though the rendering operations fail. In this situation, the error code D3DERR_DEVICELOST is returned by IDirect3DDevice9::Present. This problem was affecting our version of the DLL that was using SDL version 2.0.12, we already did some modifications to the SDL code to fix a problems that was affecting SDL_CreateWindowFrom and now we have added the function get_device_lost_state_k() to SDL to make it possible to know after a call to SDL_RenderPresent whether the Direct3D device was in lost state, if this is the case the code will try to acquire the operational state again and again, without it the code will only show the updated window if the user restart the player, the d3d11 mode was not tested because I don't have a machine with windows 10 at this moment but support to it will also be added in the future, we have yet a lot of improvements to add to this DLL and speed of playback is one of the concerns, minor bugs fixed. What is new in 8.6.2 build 6525 date - Thu 03/December/2020 17:00:44 Added a workaround to avoid the equalizer silence bug, just to clarify that the silence bug happens in all x86 processors using the standard i387 FP (including SSE) code (because of the way underflow exceptions are handled), to solve the problem we have added a call to: _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); before calls to code that can cause a Flush-to-zero floating point problem, without it if your media file have a few seconds of silence the processor usage will go to 100%, this problem affects all prior versions that have the equalizer as far as I remeber it was part of the DLL since 2002 but I only become aware of this problem in the past week, if the Flush-to-zero workaround may cause problems to your code make a call to _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_OFF); at the end of the playback to return to the standard floating point mode, fixed a memory leak in the video decoder thread (missing call to av_packet_unref to unused packets and missing calls to the packets allocated in the video player thread) sample project updated a lot, modified the sources to allow the compilation with gcc 10.2.0 (I know that this is weird but is true, if you want to see the problem try to compile with 10.2.0 any prior version), not fixed yet a bug that occurs during the first execution of ctrl+alt+del, as soon you do it the player window will freeze until you restart the player, notice that a second ctrl+alt+del will not generate the problem until you reboot, it is hard to track down the bug because it needs a reboot to reproduce the problem again but I promise that the SDL2 code will be fixed very soon, fixed a bug in the voice removal code, it was clipping, minor modifications and due to multi-thread support of Libav now enabled (disabled in the past because it is the default) increased the decoding speed a lot, and now also we are using SWS_FAST_BILINEAR for fast video resize and convert code, in the past we was using SWS_BICUBIC, notice that yet our DLL cannot play as fast as Media Player Classic Home Cinema 1.7.13 or Windows Media Player but we are working on it..., also for the moment the equalizer is optimized for 44100 sample rate, future versions will have also 48000 and 32000 full support, have a great day. What is new in 7.7.7 build 6440 date - Sun 29/November/2020 15:50:57 Replaced the SDL library 1.2.14 with SDL 2-2.0.12 with some customizations to fit our needs, like the old version, if you replace our modified SDL with the standard SDL2.dll you will see that the sample application just crash, examine the sources to see where is the problem, if you are curious, despite this new version the performance is almost the same as 1.2.14, at least in my 1ghz windows 7 machine, maybe in windows 10 the performance is better, anyway you will see that the bottleneck is in the Libav function calls to decode and convert the video data, we are yet researching on it to enhance the playback speed, minor modifications. What is new in 7.6.8 build 6431 date - Fri 20/November/2020 21:13:32 Fixed a bug that was causing the finished event to don't be raised, and this was causing the playback of wpl playlists to just stop as soon a mp3 file with a video frame on it was found, also the loop was not working, minor modifications What is new in 7.6.2 build 6425 date - Sun 25/October/2020 10:28:01 Replaced the 5.1 and 7.1 channels downmix code that we are using in the release 7.6.1 with a code that comes from Android sources that some developers agree that is a better solution, minor modifications. What is new in 7.6.1 build 6424 date - Sat 17/October/2020 07:22:55 Added full 5.1 and 7.1 channels support in systems that have only stereo output, notice that for the moment in a real 5.1 and 7.1 system all the channels will be mixed and sent to the front speakers, this limitation will be solved in the next week. Solved a weird memory leak on libav.c related to the AVCodecContext variable of the video decoder, minor modifications. What is new in 7.5.2 build 6415 date - Wed 14/October/2020 07:42:41 Fixed a bug that was making the last slice of pcm data to don't play at the end of the audio playback, this bug was introduced during a creation of a workaround to a Windows 7 problem in the Windows API function waveOutClose that was causing a memory error crash when this function was called at the end of the playback, to avoid this Microsoft original bug the function finalizeplayer at the end of playback was not calling waveOutClose but the handle was remaining open until a next playback start where the function initplayer was being called and where the function waveOutClose is being called to close the handle and start a new player process, at that time it was the only way to don't generate a memory access error at the end of playback, notice that Windows 95 up to Windows XP don't have this weird waveOutClose problem and we almost pulled our hair out to understand what was wrong with the Windows APIs, if you are new to the wav APIs take a look in initplayer and finalizeplayer to see how to handle it correctly at least until Microsoft introduce modifications on these APIs again. Added support to the following sample formats: AV_SAMPLE_FMT_U8, ///< unsigned 8 bits AV_SAMPLE_FMT_S16, ///< signed 16 bits AV_SAMPLE_FMT_S32, ///< signed 32 bits AV_SAMPLE_FMT_FLT, ///< float AV_SAMPLE_FMT_DBL, ///< double AV_SAMPLE_FMT_U8P, ///< unsigned 8 bits, planar AV_SAMPLE_FMT_S16P, ///< signed 16 bits, planar AV_SAMPLE_FMT_S32P, ///< signed 32 bits, planar AV_SAMPLE_FMT_FLTP, ///< float, planar AV_SAMPLE_FMT_DBLP, ///< double, planar AV_SAMPLE_FMT_S64, ///< signed 64 bits AV_SAMPLE_FMT_S64P, ///< signed 64 bits, planar Feel free to make your tests, the multichannel support for the moment is the hability to handle the multichannel and play only the front right and left channels while older versions cannot do this, minor modifications. What is new in 7.2.2 build 6385 date - Mon 12/October/2020 16:48:39 Added two new functions, SlowComputersCommand_k_p and GetOriginalNumberofChannels. Information about the function SlowComputersCommand_k_p: When the computer is old the time required to decompress and draw the video can be more than the processing time available, without this the audio and video will just lose sync and the audio will finish before the playback of all the video frames. Using this option will adjust the audio and video sync as soon the sync is lost, but it is not perfect, frames will be dropped a lot, it is optional because some users may want to see all the frames without drop, make your tests... Information about the GetOriginalNumberofChannels: It will retrieve the number of channels in the media file. It is required because internally any number of channels above two are converted to two at this moment, this is just informative, maybe in the future the DLL will be able to access and use the additional channels and play it using WaveOutWrite api. Minor modifications, and only above version 7.1.4 the DLL is capable of playing multichannel media files(5.1 e 7.1), the update to these new versions is very important. What is new in 7.1.4 build 6377 date - Sun 11/October/2020 12:33:16 Updated the Libav library with the release compiled by BtbN at https://github.com/BtbN/FFmpeg-Builds/releases it is the release [Auto-Build 2020-10-10 12:30], minor bugs fixed. What is new in 7.0.9 build 63702 date - Sun 04/October/2020 15:33:16 Added code to drop frames when the time required to decode and show the media file is less than required, it now allows to see a video (even without some frames) with a better quality, the old releases will just lose sync, minor bugs fixed. What is new in 7.0.7 build 6370 date - Sun 27/September/2020 18:12:06 Modified the audio and video sync code, now it is more accurate, it can have up to 12 milliseconds difference when compared with the real playback position of the video, from my point of view it is ok, nobody will be able to detect the absence of sync, minor bugs fixed. What is new in 7.0.5 build 6368 date - Sun 27/September/2020 10:48:51 Due to the modifications added to the video playback thread to make it possible to show the remaining frames after the end of the video playback a bug was introduced that will appear when a mp3 file with a video frame is played, (and this kind of mp3 file is common these days), minor bugs fixed (as usual...). What is new in 7.0.0 build 6363 date - Sun 20/September/2020 12:56:06 Replaced the Libav dlls with the release from Zeranoe compiled in 31/August/2020, fixed some problems in the sample project in the SoundTouch control, removed some debug infrmation that was sent to the installed debugger or DebugView, this version yet is not as fast as Windows Media Player and Media Player Classic Home Cinema, the delays occur on the Libav decoding functions and in the SDL video handling routines, we need to figure out what kind of magic Media Player Classic was doing to play 5 times faster than this DLL when the library is the same, minor bugs fixed, next week we will be fixing finally the weird audio and video sync code that we have created ourselves, it works but can be improved. What is new in 6.8.8 build 6351 date - Tue 08/September/2020 03:23:18 Added a new thread to help to speed up the decoding process but yet this decoder and player is not as fast as Media Player Classic Home Cinema and Windows Media Player, the problem is in the compiled version of Libav that apparently was compiled wthout optimization because MPC is also using Libav. Next version will use the audio and video sync that I stole from Chrome, the problem is that it need to be very well tested and debugged, for the moment we will keep using our old weird method that is not perfect but works. What is new in 5.5.6 build 6219 date - Mon 31/August/2020 10:02:06 Fixed a few memory leaks, minor modifications, more changes will be added in the next sunday. What is new in 5.5.2 build 6194 date - Sun 30/August/2020 20:01:52 Fixed a few bugs that was causing the DLL to crash, yet the playback of HD videos is slow, apparently the Libav libraries was compiled without optimization, the delay to decode the media files come from the Libav function avcodec_send_packet but we need to research a little more on it, if you have a fast machine you will not notice the problem, and was detected also a few memory leaks that will be fixed if the problem is in our code, because if it come from the Libav only a new release will solve the problem, this is what we have to say for the moment, and it was an amazing hacking day. What is new in 5.4.29 build 6157 date - Sun 30/August/2020 02:52:49 It is there, the first 64 bits release of the rsppmp3 project, it now not only start but plays audio and video, but notice that despite being using the latest Libav llbrary the playback of HD videos is slower than other players like Windows Media Player and Media Player Classic Home Cinema, I will investigate this problem in the rest of the sunday, feel free to download and test it in your own system and send some feedback, notice that Win32 versions using this release of Libav will only be provided if someone request, a hug and thanks for using our software. What is new in 5.4.1 build 6129 date - Sun 23/August/2020 21:00:00 First version compiled correctly for win64, but the sample is not able to play yet, we only need to debug a little more to make it usable, or maybe you can hack on it and fix what is making it unable to play at this moment Next sunday we will work more on it. What is new in 5.3.1 build 6113 date - Sun 16/August/2020 17:54:33 The conversion is almost done, only needs a few more hours, but I will have this hours available to do it in the next sunday. Notice that no bugs will be fixed during the conversion, only after. The delay of this conversion comes from my unability to work perfectly with Emacs until I learn the basics (again) and the APIs removed from the old version of Libav of 2011. A hug to you... What is new in 5.2.12 build 6105 date - Sun 16/August/2020 10:11:52 First pass of the conversion to x64 is ready, now we are working on the second step, this release don't play at this moment, maybe in the end of the day, just wait. Changelog What is new in 5.2.3 build 6039 Only the modifications was the addition of a new partner, new e-mail to support , new primary homepage and we are using again the name BinaryWork Corp., we hope to never change it again in the future, about e-mails e phone number it is checked instantly because now I have a decent smart phone and good friends are paying the bills of our company, then we can answer your questions very fast, another important thing: the decoder from this release of libav is very slow and it can lose sync during the playback of full hd webm and flv files, this don't occur with new releases of libav, we have an audio only player based in libav that is already 64 bits and the video decoder have been enhanced a lot by the original libav maintainers the name is arplayer and it is available also on sourceforge, as soon we got more time we will replace this 2011 version of the libav with a 2020 release both 32 and 64 bits, ok? the whatsapp number can be found on the botton of this page fell free to contact us 24x7 365 days of the year, minor modifications, a hug to you for using our lovely software. What is new in 5.1.15 build 6090 Debug version, have a bug in the libav library, that is slow, do not use this version in your products at least untill the fixes, , fixed a bug that was causing an error when a wpl playlist was loaded, in this case the next call to the Is_WPL_Playlist function was failing, added sort routines from Microsoft in the listview code, fixed a weird problem that was causing an error during the second call to the load of the wpl file, thanks to the, https://stackoverflow site for the help. What is new in 5.1.14 build 6089 Debug version, have a bug in the libav library, that is slow, and in the sort of the listview when playing a wpl playlist file, do not use this version in your products , at least untill the fixes. What is new in 5.1.9 build 6084 Added code to the sample project to disable the standby mode and the monitor to turning off, minor changes. What is new in 5.1.5 build 6080 Fixed a weird bug that could cause an access violation in the DLL, minor bugs fixed. What is new in 5.1.2 build 6077 Added documentation on the package, it is in the folder <extracted folder>\rsppmp3 sources\doxygen docs\html\index.html no new modifications. What is new in 5.1.1 build 6076 Fixed a bug in the initplayer function that caused the call to waveOutClose to occur with the wrong parameters, minor bugs fixed. What is new in 5.0.35 build 6000 Changed the sample project to target the .net framework 4.5 then the Microsoft .NET Framework 4.5.1 must be installed on your machine, download link: http://www.microsoft.com/en-us/download/details.aspx?id=40779 or you need to have the Visual Studio 17, I am using sharpdevelop 5, in this version if the decode and playback requires too much processor time more than what is available the sync between audio and video can be lost, future versions maybe will avoid it, minor bugs fixed. What is new in 5.0.26 build 5991 The function that detect the frame rate during the playback need fixes, it is disabled for the moment, fixed a bug that created crashes when you click cancel or exit the application during playback, the error was reported in the function PlaybackCancel, for the moment the playback of some media files requires fast machines to avoid frames being dropped, fixed a bug that only occurs when the Soundtouch feature was enabled, it was making the absence of sync when frames need to be dropped when the playback was above normal speed, the problem only appeared in slow machines. What is new in bw_4.0.12_build_5899.rar Added update of the frame rate dinamicaly, now the player can detect and adjust the frame rate at runtime, this feature was missing. What is new in bw_4.0.10_build_5897.rar What is new in bw_4.0.5_build_5892.rar Fixed weird bug in the video section that only appears in windows 8, the bug was causing a crash during resize of the video window What is new in sr_3.3.607_build_000C00005877_.rar Win7 problems not fixed completely yet, now basic win7 resize of the window is possible, fullscreen not working yet, don't occur with all win7 machines, this is weird What is new in sr_3.3.603_build_000C00005873_.rar Due to a crash during the resize of the main video player window in win7 now the dll can be used for the moment to create an audio only player, the video player will be fixed soon. What is new in be_arabian_mp3_dll_3.3.568_build_000C00005838_.rar Update of the company info. What is new in be_arabian_mp3_dll_3.3.566_build_000C00005833_.rar Small modifications. What is new in be_arabian_mp3_dll_3.3.499_build_000C00005776_.7z Enhanced the audio and video sync, now it is close to the perfect mode, and the hability to keep playing audio and video after a suspend or hibernate state is not working very weel yet, please fix it if you have interest in this feature, to me it is useless and I think that the playback need to stop when entering these states a la Windows Media Player. What is new in be_arabian_mp3_dll_3.3.471_build_000C00005748_.7z To avoid possible problems now the framerate is always detected based up to the first 500 seconds of playback for any file. What is new in be_arabian_mp3_dll_3.3.464_build_000C00005741_.7z Added code to detect the correct framerate for some flv files that Libav report erroneous values, now old flv files will play perfectly. What is new in be_arabian_mp3_dll_3.3.186_build_000C00005463_.7z SoundTouch now when used will sinchronize the modified audio with the video perfectly, modofied the Open and Play functions to avoid a nasty bug that could cause these functions to don't return, now the window information is passed on these functions. What is new in the version 3.3.118 build 5395 Added a function to enhance the fullscreen modes, minor modifications. What is new in the version 3.3.86 build 5363 Large enhancements on the audio and video sinchronization , now when returning from suspend and hibernation state the sinchronization will recover perfectly, many other modifications. What is new in the version 3.2.928 build 5205 Fixed a small problem in the audio and video sinchronization, the value of the time required to draw the image was in seconds and not milliseconds, now the milliseconds will be diminished of the requested sleep time making it more accurate, anyway you will not perceive the difference because the method that I was using to sinchronize already was able to compensate for this problem, the variable in question was 'timespent'. What is new in the version 3.2.918 build 5195 Due to some flaws on the ReplayGain we developed the new BENormalize normalization method, it s based on the peak value of the samples, believe me it gives better results than ReplayGain, just make some tests and you will see. What is new in the version 3.2.886 build 5163 Now the apllication running the DLL will not hijack the focus when the video is loaded, then you can do other works while the player is running in the background , you can test it if you set the loop mode. What is new in the version 3.2.878 build 5155 Modified the sample project to avoid some problems, next release will adjust the size of the player window without a reload of the media file as expected, the modified sources of SDL was included and if you don't have the whole DirecX SDK installed (like me) you will find the file dxguid.lib handy, it is in the SDL sources folder, and now with all the sources available anyone can compile this to 64 bits, at least my portions of the sources are win64 ready for a long time now. What is new in the version 3.2.874 build 5151 Fixed problem that occurs when the DirectX surface is lost , now it will recover from this situation without any problem, and I don't supose that modifications to SDL more than we did are necessary. What is new in the version 3.2.816 build 5093 Modified the behavior of the Open and Play functions now it will return -1 if you are calling these while the last call was not finished loading the media file, without it the DLL can enter in an infinite loop waiting for something that never will occur, if you receive a -1 from this call you only need to add a Sleep(3000) and call the open or play function again with the same media file, it sounds strange but it is very weird to track where the loading processing is to stop it immediately at anytime, maybe in the future this behavour will be modified but for the moment this is the best thing to do, many small bugs removed. What is new in the version 3.2.766 build 5043 Now we are using DirectX for drawing because it is faster, some apis modified for DirecX support, the SDL version embedded on our code is a lot different than the original version, and it depends on the msvcr90.dll, I will not remove this dependency without a good reason, it would be great to keep msvcr90.dll with us to remember how important the MSVC compilers was in the past , but if someone ask I will make it compile with mingw, indeed I love to convert projects to mingw because they run faster and no dependency of any kind and easy port to 64 with Cygwin, another thing, the audio and video sinchronization has several different modes to avoid problems, but yet I don't know if it is perfect, take a look, and yet the seek on webm files don't occurs as expected, this is a Libav problem, the only solution that I have to this problem is slow, then it is not a solution at all. What is new in the version 3.2.9 build 4286 First release capable of playing video, it will skip some frames it the processor time is not enough to process the video draw request (as expected), the video is outside of the form for the moment, next release will show the video inside the form as a picturebox, many modifications and bug fixes, the spectrum analizer now is a real FFT based spectrum analizer and work very well. What is new in the version 3.1.238 build 3515 The seek on webm files is not working as expected , we are thinking about what is the best workaround to this problem, a slow solution is ready but since it is slow it is not a real fix to the problem, we need code to handle webm outside the Libav, this appears to be the best solution or hook on the Libav apis and replace the webm functions with another fixed implementation. What is new in the version 3.1.169 build 3446 Fixed weird memory access problem on the id3 v1 tag implementation that was there since 2001. What is new in the version 2.5.68 build 2745 Removed the ffms2.dll because it is slow, and now we are using directly the Libav dlls (included), many other modifications, and no change in the external apis, fixed many bugs too, this is a stable release. What is new in the version 2.2.83 build 2460 Many bugs fixed, added also many enhancements. What is new in the version 2.1.40 build 2317 First release with Libav support(ffmsi2.dll) Now the dll can play all media formats, video support will follow Many modifications when compared with older releases, Some functions was renamed and removed too. Check the sources to see what is different. What is new in the version 1.9.2 build 2072 An unexpected problem started on version 1.8.1 fixed in this version, in this case an AAC or MP4 would just not play, fixed. What is new in the version 1.8.8 build 2068 After now the DLL can only play perfect MPEG data, if it is a problem to you comment out the lines 233, 234 and 235 of the player.c source file. What is new in the version 1.8.4 build 2067 Detected a bug on the mp3 decoder (it is not a joke) it may cause the DLL to become in an instable state and crash the application, it only occurs if you pass an invalid media file that is not a perfect mp3, the chances of this occur is small but will be fixed as soon as I got time, sorry for this problem , I have removed the mpeglib as the decoder just due to these problems, and I was not expecting this problem also with madlib. What is new in the version 1.8.1 build 2066 Important information: after 11 years the spectrum analizer is finally working. What is new in the version 1.8.1 build 2066 Too many modifications to be listed here, now the win64 version need to be compiled, you only need to adjust the makefile to do it, many many modifications, replace older versions of this dll with this release for fixes. Another important information: after now the additional media formats supported will only be able to seek after 2 seconds of playback, for wav and mpeg (mp3) it is not affected, maybe in a near future when I gathering the Standard C sources of all the media formats directly it will be able to seek like mp3 and wav. What is new in the version 1.5.8 build 2043 Small modifications, the API ConvertMP3ToWav has changed their arguments, please check your code if you will just replace an older version of the DLL with the new version, both win32 and win64 binaries of the latest release is available. What is new in the version 1.5.7 build 2042 Fixed a weird bug in the playback of mono files that will play it slowly, sorry for not figuring it out before. What is new in the version 1.5.6 build 2041 Removed mpeglib, it has severallimitations to decode a damaged mp3 file then it was just removed nowonly madlib decodes mp3, several modofocations and enhancements, the 64 bits release is the same as the version 1.5.5,if you need compile the 64 bits to update, the win32 version dll is real version 1.5.6, in the next release both binaries will be exactly the same, absence of time at this moment, sorry, the sample project in C# was modified and the 64 bits version is old,it will be updated also on the next release. What is new in the version 1.5.5 build 2040 Added possibility to convert the mp3 data to various wav modes, PCM 16 24 32 and FLOAT, minor modifications. What is new in the version 1.5.2 build 2037 (Tue May 17 GMT 13:42:28 2011 , by arab) Fixed a bug on the equalizer when running on 64 bits systems, minor modifications. What is new in the version 1.5.0 build 2034 (Mon May 16 GMT 17:10:29 2011 , by arab) Now the win32 and win64 dlls compiles only with mingw and mingw64, first release with both 32 and 64 bits of the dlls and sample project, many modifications on the sources, and now the playback is always madlib. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Installation and Usage: Install : Extract the files to an empty folder Uninstall: Delete the folder Important: 1-No access to the registry from the DLL (maybe from Libav or SDL, please check if it is a problem to you), it is Windows 7/8/10 safe at least my portions of the code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Valquiria and Yasmin says thanks for using our software. Melhorado no Brasil - whats +55 41 9627-1708