Mach1 Spatial SDK
Loading...
Searching...
No Matches
Mach1TranscodeCAPI.h
1// Mach1 Spatial SDK
2// Copyright © 2017-2021 Mach1. All rights reserved.
3
4#pragma once
5
6#include "Mach1Point3D.h"
7#include <string>
8#include <vector>
9
10#if defined(Mach1DecodeCore_h) || defined(Mach1EncodeCore_h) || defined(Mach1PositionalCore_h) || defined(Mach1TranscodeCore_h) || defined(Mach1AudioTimelineCore_h)
11# ifndef M1_API
12# if defined(_WINDOWS) || defined(_WIN32)
13# define M1_API __declspec(dllexport)
14# else
15# define M1_API
16# endif
17# endif
18#else
19# ifndef M1_API
20# if !defined(M1_STATIC) && (defined(_WINDOWS) || defined(_WIN32))
21# define M1_API __declspec(dllimport)
22# else
23# define M1_API
24# endif
25# endif
26#endif
27
28const int Mach1TranscodeMAXCHANS = 64;
29
30/* TODO: Implement process settings for object-audio format conversions
31struct Mach1TranscodeProcessSettings {
32 bool processObjectBed = true;
33 bool processChannelBed = true;
34 bool enableBinauralRendering = true;
35};
36*/
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41M1_API void *Mach1TranscodeCAPI_create();
42M1_API void Mach1TranscodeCAPI_delete(void *M1obj);
43
44M1_API int Mach1TranscodeCAPI_getInputFormat(void *M1obj);
45M1_API int Mach1TranscodeCAPI_getOutputFormat(void *M1obj);
46M1_API int Mach1TranscodeCAPI_getInputNumChannels(void *M1obj);
47M1_API int Mach1TranscodeCAPI_getOutputNumChannels(void *M1obj);
48M1_API int Mach1TranscodeCAPI_getFormatFromString(void *M1obj, const char *str);
49M1_API const char *Mach1TranscodeCAPI_getFormatName(void *M1obj, int fmt);
50M1_API const char **Mach1TranscodeCAPI_getAllFormatNames(void *M1obj);
51M1_API int Mach1TranscodeCAPI_getFormatsCount(void *M1obj);
52
53M1_API float Mach1TranscodeCAPI_processNormalization(void *M1obj, float **bufs, int numSamples);
54M1_API void Mach1TranscodeCAPI_processMasterGain(void *M1obj, float **bufs, int numSamples, float masterGain);
55
56M1_API float Mach1TranscodeCAPI_db2level(void *M1obj, float db);
57M1_API float Mach1TranscodeCAPI_level2db(void *M1obj, float level);
58
59M1_API void Mach1TranscodeCAPI_setLFESub(void *M1obj, int *subChannelIndices, int numChannels, int sampleRate);
60M1_API void Mach1TranscodeCAPI_setSpatialDownmixer(void *M1obj, float corrThreshold);
61M1_API bool Mach1TranscodeCAPI_getSpatialDownmixerPossibility(void *M1obj);
62M1_API float *Mach1TranscodeCAPI_getAvgSamplesDiff(void *M1obj);
63
64M1_API void Mach1TranscodeCAPI_setInputFormat(void *M1obj, int inFmt);
65M1_API void Mach1TranscodeCAPI_setInputFormatCustomPointsJson(void *M1obj, char *inJson);
66M1_API void Mach1TranscodeCAPI_setInputFormatCustomPoints(void *M1obj, struct Mach1Point3D *points, int count);
67
68M1_API void Mach1TranscodeCAPI_setOutputFormat(void *M1obj, int outFmt);
69M1_API void Mach1TranscodeCAPI_setOutputFormatCustomPointsJson(void *M1obj, char *outJson);
70M1_API void Mach1TranscodeCAPI_setOutputFormatCustomPoints(void *M1obj, struct Mach1Point3D *points, int count);
71
72M1_API void Mach1TranscodeCAPI_setCustomPointsSamplerCallback(void *M1obj, Mach1Point3D *(*callback)(long long, int &));
73
74M1_API bool Mach1TranscodeCAPI_processConversionPath(void *M1obj);
75M1_API void Mach1TranscodeCAPI_getMatrixConversion(void *M1obj, float *matrix);
76M1_API void Mach1TranscodeCAPI_processConversion(void *M1obj, float **inBufs, float **outBufs, int numSamples);
77
78M1_API int *Mach1TranscodeCAPI_getFormatConversionPath(void *M1obj, int *count);
79
80#ifdef __cplusplus
81}
82#endif
Definition Mach1Point3D.h:17