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 WINPR_ATTR_NODISCARD
42 FREERDP_API BOOL freerdp_dsp_supports_format(const AUDIO_FORMAT* WINPR_RESTRICT format,
43 BOOL encode);
44
45 WINPR_ATTR_NODISCARD
46 FREERDP_API BOOL freerdp_dsp_encode(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
47 const AUDIO_FORMAT* WINPR_RESTRICT srcFormat,
48 const BYTE* WINPR_RESTRICT data, size_t length,
49 wStream* WINPR_RESTRICT out);
50
51 WINPR_ATTR_NODISCARD
52 FREERDP_API BOOL freerdp_dsp_decode(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
53 const AUDIO_FORMAT* WINPR_RESTRICT srcFormat,
54 const BYTE* WINPR_RESTRICT data, size_t length,
55 wStream* WINPR_RESTRICT out);
56
57 WINPR_ATTR_NODISCARD
58 FREERDP_API BOOL freerdp_dsp_context_reset(FREERDP_DSP_CONTEXT* WINPR_RESTRICT context,
59 const AUDIO_FORMAT* WINPR_RESTRICT targetFormat,
60 UINT32 FramesPerPacket);
61
62#ifdef __cplusplus
63}
64#endif
65
66#endif /* FREERDP_CODEC_DSP_H */