FF (mpeg and) SoX 2a Input Plugin for Winamp

Copyright © 2010-2018 by Peter Belkner (http://home.snafu.de/pbelkner/)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Nanos gigantum humeris insidentes: This project is dedicated to my European heritage. It is strictly to be understood as a statement against the "sweet" liberal lie of "multiculturalism" which is going to destroy Europe as we know it, in particular against the Merkel regime selling out Europe for nothing as we watch.

Download the Latest Version


  1. About
  2. News
  3. Installation
  4. Configuration

1. About

FF (mpeg and) SoX Input 2a is a plug-in for Winamp based on the FFmpeg and SoX libraries. Using FFmpeg almost all multimedia files may be played with Winamp, including but by far not restricted to H.264, VP8, and Opus.

Note that only a minimal FFmpeg is bundled with FF (mpeg and) SoX 2a Input Plugin releases. If you you want to have full FFmpeg support you have to get a complete FFmpeg build from third party sites (see below).

Home:   http://in-ffsox.sourceforge.net/
Project:   http://sourceforge.net/projects/in-ffsox/
Download:   http://sourceforge.net/projects/in-ffsox/files/in_ffsox-2a/
FF (mpeg and) SoX Input at WA Forum:   http://forums.winamp.com/showthread.php?t=319968 (discontinued)
Yet Another (WA)SAPI Output for Winamp:   http://out-yasapi.sourceforge.net/
Loudness Analysis with BS1770GAIN:   http://bs1770gain.sourceforge.net/
Loudness Analysis with R128GAIN:   http://r128gain.sourceforge.net/
Keep HDD Alive for Winamp:   http://gen-hdd.sourceforge.net/
Yet Another Shuffle for Winamp:   http://gen-yas.sourceforge.net/

2. News

2018-02-05 0.4.9
  • Fixed determining audio PTS when downmixing.
  • Replaced meanwhile deprecated AVFormatContext::filename by AVFormatContext::url.
2018-01-06 0.4.8
  • For another time re-wrote the core Makefile in order to avoid recursion.
  • Included unistalling SoX, Opus, or FFmpeg, respectively, when a new version is downloaded.
  • Included an upload target in order to automate the up-load of a release to sourceforge.net by means of the rsync command. (Note: This release was up-loaded using the new feature.)
  • Added a README file to the release.
2018-01-01 0.4.7
2017-12-29 0.4.6 Fixed a bug w.r.t. SoX re-sampling slipping through in v0.4.3. (A big thank you goes out to Ralf for pointing me to it!)
2017-12-27 0.4.5
  • Renamed the project from FFSoX Player 2a to FF (mpeg and) SoX 2a Input Plugin for Winamp.
  • Further polished the build process.
  • Dropped the call to av_lockmgr_register() which was decalared deprecated (cf. [FFmpeg-devel,2/5] lavc: replace and deprecate the lock manager). The respective comment in "libavodec/avcodec.h" reads:
     * @deprecated This function does nothing, and always returns 0. Be sure to
     *             build with thread support to get basic thread safety.
  • Support for the YASAPI output plug-in (circumvent Winamp technologie in case the output plug-in offers a respective API and directly write to the YASAPI ring buffer; not published yet from YASAPI side).
2017-12-24 0.4.4 Fixed broken Skip.
2017-12-22 0.4.3
  • Subsitituded all FFmpeg APIs marked deprecated by there avertised replacements, in particular
  • Even if these changes doesn't provide any advantage in end-user experience we hope that we've made the plug-in fit for the next FFmpeg version bump and that in that case it just will need re-complilation to be compatibe with third party (full) FFmpeg builds again.
2017-12-15 0.4.2 Having observed that sometimes the visualization is not starting after playing video as a consequence it is now possible to configure a respective delay in order to avoid this.
2017-11-30 0.4.1
2017-11-26 0.4.0
  • Made in_ffsox compatible again with the latest FFmpeg builds by replacing avpicture_deinterlace() (which was dropped from FFmpeg and came from avcodec-<version>.dll) by the yadif deinterlacing filter from avfilter-<version>.dll. As a consequence this release depends on the following FFmpeg DLLs:
    • avutil-86.dll,
    • swresample-3.dll,
    • swscale-5.dll,
    • postproc-55.dll,
    • avcodec-85.dll,
    • avformat-85.dll,
    • avfilter-7.dll.
  • Moved to SoX 4.4.2, i.e. libox-3.dll.
  • Added a swich for disabling/enabling the plugin to the configuration dialog.
  • Moved from the MSYS environment to the MSYS2 environment.
  • Re-structured (simplified) the build process (hence 2a instead of just 2) by making use of a feature known as delayloading.
  • Added a political statement to the top of this page.
2015-02-02 0.3.3 Pass -666 for bufferlenms to the output module when playing video.
2014-10-04 0.3.1 Made the plug-in compatible with the latest FFmpeg (cf. changed FFmpeg ABI).
2014-05-16 0.3
2014-01-01 0.2.1 Fixed a serious synchronization issue between this plugin and WA's output module.
2013-12-31 0.2 Removed playing on stop until the audio buffer is empty.
2013-12-20 0.1.5
  • Fixed clipping of the decoder under certain circumstances.
  • Reverted back to avutil-52 (i.e. being compatible with Zeranoe's FFmpeg builds again).
2013-12-18 0.1.4
  • Added a convenience option to force a certain sample rate.
  • Support for multiple frames in a FFmpeg packet.
  • Support for file/version info in resources.
  • Support for bumped avutil-53 (instead of avutil-52 as before).
  • Added the Theora video codec to the crippled FFmpeg shipped with the plugin.
  • Refer to the Winamp Enthusiast Forum instead of the dying Winamp Forum.
  • Fixed getfileinfo() again.
2013-12-08 0.1.3 Fixed getfileinfo().
2013-11-23 0.1.2 Adapted the build process to latest FFmpeg.
2013-10-06 0.1.1 Fixed seeking when embedded albumart is BMP or PNG.
2013-09-28 0.1 FFSoXPlayer 1 is not recommended any longer because of incompatibilies with recent FFmpeg versions.

3. Installation

  1. If not already done download and install Winamp:
    Winamp, Download bei heise
  2. If not already done close Winamp.
  3. Download the latest FF (mpeg and) SoX 2a Input Plugin release.
  4. Run the installer "in_ffsox-<ver>.exe".
  5. If you want to have full FFmpeg support do the following:
    Otherwise you are confined to the crippled FFmpeg shipped with the FF (mpeg and) SoX 2a Input Plugin, configured as follows:
    # decoders
    # demuxers
  6. Start Winamp.

4. Configuration

4.1. General

4.1.1. Winamp
Extensions:  a semicolon separated list of extensions for which Winamp should use this plugin (including a switch for disabling/enabling the plugin)
Bits per Sample:  the bit depth of the audio stream this plugin should deliver to Winamp, shoud correspond to Preferences → Playback → Playback → Audio Allow 24bit
Show Video:  whether this plugin should display the video in case video is present
Show Visualization:  whether this plugin should force Winamp to display the visualization in case no video is present or displaying video is switched off (the optional delay specifies a time interval to elaps until the visualization starts)
4.1.2. Replay Gain
Off:  whether not to apply replay gain
Weight:  which replay gain to apply: 0% – album gain, 100% – track gain
Overwrite Comment:  whether the File Info dialog should display replay gain related information in it's Comment field

4.2. Audio

4.2.1. Audio
Queue Size:  how many FFmpeg audio packets the plugin shoud cache
Preamp:  amplify or attenuate, respectively, the audio by a certain amount
AC3 DRC:  for AC3 audio, whether dynamic range compression (DRC) according the FFmpeg specification should be applied (switched off: the FFmpeg default behavior appplies wich seems to be 0.0)
Force Stereo:  wether two channel stereo should be output
4.2.2. SoX
Mode:  Off – never use SoX, Automatic – use SoX when appropriate, or Force – always use SoX
Sample Rate:  Minimum – whether to resample only if the input sample rate is lower then the configured one, Multiple – wether to resample to the lowest multiple of the input sample rate which is greater or equal than the configured on (i.e. if you want to force resampling to the configured sample rate both switches), Minimum as well as Multiple, have to be switched off), Force – a convenience to switch off both, Minimum and Multiple (i.e. force the configured sample rate)
Dither:  which algorithm to be used for dithering

4.3. Video

Queue Size:  how many FFmpeg video packets the plugin shoud cache
Minimum Drift:  the minimum time difference between audio and video to tolerate in order to not drop a video frame (please note that this parameter is sensitive to the overall stability of the plugin)
Maximum Drift:  the maximum time difference between audio and video to tolerate in order to not drop a video frame (please note that this parameter is sensitive to the overall stability of the plugin)
YADIF Disabled:  Whether the yet another deinterlacing filter (YADIF) should be disabled
YADIF Parity:  In case YADIF is enabled, choose it's mode parameter out of
  • output one frame for each frame,
  • output one frame for each field,
  • output one frame for each frame, but skip the spatial interlacing check, or
  • output one frame for each field, but skip the spatial interlacing check.
YADIF Mode:  In case YADIF is enabled, choose it's parity parameter out of
  • assume the top field is first,
  • assume the bottom field is first, or
  • enable automatic detection of field parity.
YADIF Deinterlace:  In case YADIF is enabled, choose it's deinterlace parameter out of
  • deinterlace all frames, or
  • only deinterlace frames marked as interlaced.

4.4. Convert


These options mirror their respective playback general and audio counterparts but instead define how this plugin shout interact with Winamp's transcoding feature, i.e. Playlist Item → Context Menu → Send To → Format Converter: