diff --git a/channels/audin/client/alsa/audin_alsa.c b/channels/audin/client/alsa/audin_alsa.c index e81ec63a5..bacdc3230 100644 --- a/channels/audin/client/alsa/audin_alsa.c +++ b/channels/audin/client/alsa/audin_alsa.c @@ -75,12 +75,6 @@ static snd_pcm_format_t audin_alsa_format(UINT32 wFormatTag, UINT32 bitPerChanne return SND_PCM_FORMAT_UNKNOWN; } - case WAVE_FORMAT_ALAW: - return SND_PCM_FORMAT_A_LAW; - - case WAVE_FORMAT_MULAW: - return SND_PCM_FORMAT_MU_LAW; - default: return SND_PCM_FORMAT_UNKNOWN; } diff --git a/channels/audin/client/oss/audin_oss.c b/channels/audin/client/oss/audin_oss.c index 7ffc0cdbc..2da93a148 100644 --- a/channels/audin/client/oss/audin_oss.c +++ b/channels/audin/client/oss/audin_oss.c @@ -88,12 +88,6 @@ static UINT32 audin_oss_get_format(const AUDIO_FORMAT* format) } break; - - case WAVE_FORMAT_ALAW: - return AFMT_A_LAW; - - case WAVE_FORMAT_MULAW: - return AFMT_MU_LAW; } return 0; diff --git a/channels/audin/client/pulse/audin_pulse.c b/channels/audin/client/pulse/audin_pulse.c index 6855d757f..8977c420b 100644 --- a/channels/audin/client/pulse/audin_pulse.c +++ b/channels/audin/client/pulse/audin_pulse.c @@ -280,14 +280,6 @@ static UINT audin_pulse_set_format(IAudinDevice* device, const AUDIO_FORMAT* for break; - case WAVE_FORMAT_ALAW: /* A-LAW */ - sample_spec.format = PA_SAMPLE_ALAW; - break; - - case WAVE_FORMAT_MULAW: /* U-LAW */ - sample_spec.format = PA_SAMPLE_ULAW; - break; - default: return ERROR_INTERNAL_ERROR; } @@ -300,6 +292,8 @@ static UINT audin_pulse_set_format(IAudinDevice* device, const AUDIO_FORMAT* for static void audin_pulse_stream_state_callback(pa_stream* stream, void* userdata) { AudinPulseDevice* pulse = (AudinPulseDevice*)userdata; + WINPR_ASSERT(pulse); + pa_stream_state_t state = pa_stream_get_state(stream); WLog_Print(pulse->log, WLOG_DEBUG, "stream state %s", pulse_stream_state_string(state)); @@ -416,7 +410,7 @@ static UINT audin_pulse_open(IAudinDevice* device, AudinReceive receive, void* u return pa_context_errno(pulse->context); } - for (;;) + while (pulse->stream) { state = pa_stream_get_state(pulse->stream); diff --git a/channels/rdpsnd/client/oss/rdpsnd_oss.c b/channels/rdpsnd/client/oss/rdpsnd_oss.c index a23849b72..91668812b 100644 --- a/channels/rdpsnd/client/oss/rdpsnd_oss.c +++ b/channels/rdpsnd/client/oss/rdpsnd_oss.c @@ -86,12 +86,6 @@ static int rdpsnd_oss_get_format(const AUDIO_FORMAT* format) } break; - - case WAVE_FORMAT_ALAW: - return AFMT_A_LAW; - - case WAVE_FORMAT_MULAW: - return AFMT_MU_LAW; } return 0; diff --git a/channels/rdpsnd/client/pulse/rdpsnd_pulse.c b/channels/rdpsnd/client/pulse/rdpsnd_pulse.c index 311bbf906..957948dff 100644 --- a/channels/rdpsnd/client/pulse/rdpsnd_pulse.c +++ b/channels/rdpsnd/client/pulse/rdpsnd_pulse.c @@ -327,14 +327,6 @@ static BOOL rdpsnd_pulse_set_format_spec(rdpsndPulsePlugin* pulse, const AUDIO_F break; - case WAVE_FORMAT_ALAW: - sample_spec.format = PA_SAMPLE_ALAW; - break; - - case WAVE_FORMAT_MULAW: - sample_spec.format = PA_SAMPLE_ULAW; - break; - default: return FALSE; } @@ -422,7 +414,7 @@ static BOOL rdpsnd_pulse_open_stream(rdpsndDevicePlugin* device) return FALSE; } - for (;;) + while (pulse->stream) { state = pa_stream_get_state(pulse->stream); diff --git a/channels/tsmf/client/pulse/tsmf_pulse.c b/channels/tsmf/client/pulse/tsmf_pulse.c index 34a9fd55a..d580a243a 100644 --- a/channels/tsmf/client/pulse/tsmf_pulse.c +++ b/channels/tsmf/client/pulse/tsmf_pulse.c @@ -176,6 +176,8 @@ static void tsmf_pulse_wait_for_operation(TSMFPulseAudioDevice* pulse, pa_operat static void tsmf_pulse_stream_state_callback(pa_stream* stream, void* userdata) { TSMFPulseAudioDevice* pulse = (TSMFPulseAudioDevice*)userdata; + WINPR_ASSERT(pulse); + pa_stream_state_t state = pa_stream_get_state(stream); switch (state) diff --git a/libfreerdp/codec/dsp.c b/libfreerdp/codec/dsp.c index 913a886a5..26e44f4cf 100644 --- a/libfreerdp/codec/dsp.c +++ b/libfreerdp/codec/dsp.c @@ -1183,6 +1183,12 @@ fail: void freerdp_dsp_context_free(FREERDP_DSP_CONTEXT* context) { +#if defined(WITH_FDK_AAC) + FREERDP_DSP_COMMON_CONTEXT* ctx = (FREERDP_DSP_COMMON_CONTEXT*)context; + WINPR_ASSERT(ctx); + fdk_aac_dsp_uninit(ctx); +#endif + #if defined(WITH_DSP_FFMPEG) freerdp_dsp_ffmpeg_context_free(context); #else diff --git a/libfreerdp/codec/dsp_ffmpeg.c b/libfreerdp/codec/dsp_ffmpeg.c index 4f34d9209..52d33bfc2 100644 --- a/libfreerdp/codec/dsp_ffmpeg.c +++ b/libfreerdp/codec/dsp_ffmpeg.c @@ -70,19 +70,17 @@ static BOOL ffmpeg_codec_is_filtered(enum AVCodecID id, BOOL encoder) case AV_CODEC_ID_MP3: case AV_CODEC_ID_ADPCM_MS: case AV_CODEC_ID_G723_1: + case AV_CODEC_ID_GSM_MS: + case AV_CODEC_ID_PCM_ALAW: + case AV_CODEC_ID_PCM_MULAW: return TRUE; #endif case AV_CODEC_ID_NONE: return TRUE; - case AV_CODEC_ID_GSM_MS: case AV_CODEC_ID_AAC: case AV_CODEC_ID_AAC_LATM: -#if !defined(WITH_DSP_EXPERIMENTAL) - if (encoder) - return TRUE; -#endif return FALSE; default: