• Nix's avatar
    Output: start with a null mixer. · 811af02f
    Nix authored
    There are code paths (mostly error cases) in which it is possible to
    initialize an AudioOutput and then kill it without ever calling
    audio_output_new().  In such a case, its destructor will attempt to
    free a mixer that was never initialized, leading to an attempt to
    take out a lock on a mutex that was similarly never initialized,
    which hangs forever.
    
    Fix by always initializing the mixer appropriately.
    811af02f
Name
Last commit
Last update
..
plugins output/roar: remove unnecessary "volatile" keyword
Domain.cxx output: rename source files
Domain.hxx output: rename source files
Finish.cxx AudioOutput: add constructor and destructor
Init.cxx Output: start with a null mixer.
Internal.hxx OutputThread: unlock mutex for CloseFilter()
MultipleOutputs.cxx MusicChunk: use SignedSongTime for the time stamp
MultipleOutputs.hxx MultipleOutputs: use SignedSongTime for elapsed_time
OutputAPI.hxx output: rename source files
OutputCommand.cxx output: rename source files
OutputCommand.hxx OutputAll: convert to class, move instance to class Partition
OutputControl.cxx output: rename "chunk" to "current_chunk"
OutputControl.hxx output: move functions into the AudioOutput struct
OutputPlugin.cxx AudioOutput: make "plugin" a reference
OutputPlugin.hxx Mixer: rename struct mixer_plugin to MixerPlugin
OutputPrint.cxx output: rename source files
OutputPrint.hxx OutputAll: convert to class, move instance to class Partition
OutputState.cxx fs/output, fs/TextFile: move to fs/io/
OutputState.hxx *Save, *State: use the OutputStream API instead of FILE*
OutputThread.cxx OutputThread: fall back to PCM if given DSD sample rate is not supported
Registry.cxx output/sles: new output plugin for Android
Registry.hxx output: rename source files
Timer.cxx Timer: move to output/
Timer.hxx Timer: move to output/