FreeRDP
Loading...
Searching...
No Matches
include/freerdp/codec/dsp.h
1
20#ifndef FREERDP_CODEC_DSP_H
21#define FREERDP_CODEC_DSP_H
22
23#include <winpr/stream.h>
24
25#include <freerdp/api.h>
26#include <freerdp/codec/audio.h>
27
28#ifdef __cplusplus
29extern "C"
30{
31#endif
32
33 typedef struct S_FREERDP_DSP_CONTEXT FREERDP_DSP_CONTEXT;
34
35 FREERDP_API void freerdp_dsp_context_free(FREERDP_DSP_CONTEXT* context);
36
37 WINPR_ATTR_MALLOC(freerdp_dsp_context_free, 1)
38 WINPR_ATTR_NODISCARD
39 FREERDP_API FREERDP_DSP_CONTEXT* freerdp_dsp_context_new(BOOL encoder);
40
41 FREERDP_API BOOL freerdp_dsp_supports_format(const AUDIO_FORMAT* WINPR_RESTRICT format,
42 BOOL encode);
43 FREERDP_API BOOL freerdp_dsp_encode(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
44 const AUDIO_FORMAT* WINPR_RESTRICT srcFormat,
45 const BYTE* WINPR_RESTRICT data, size_t length,
46 wStream* WINPR_RESTRICT out);
47 FREERDP_API BOOL freerdp_dsp_decode(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
48 const AUDIO_FORMAT* WINPR_RESTRICT srcFormat,
49 const BYTE* WINPR_RESTRICT data, size_t length,
50 wStream* WINPR_RESTRICT out);
51
52 FREERDP_API BOOL freerdp_dsp_context_reset(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
53 const AUDIO_FORMAT* WINPR_RESTRICT targetFormat,
54 UINT32 FramesPerPacket);
55
56#ifdef __cplusplus
57}
58#endif
59
60#endif /* FREERDP_CODEC_DSP_H */