Hi,
It seems there is a mismatch or an issue with the prebuilt libs. Thanks for looking in!
Summary
When linking against the prebuilt macOS Mach1Transcode static libs, format lookup fails (getFormatFromString() returns 0) and processConversionPath() returns false. The exact same code works when the SDK is built from source, so this appears to be a prebuilt‑lib mismatch or out‑of‑sync issue.
Environment
- OS: macOS 14.5 (Build 23F79)
- Compiler: Apple clang 16.0.0 (clang-1600.0.26.6)
- Developer tools: Command Line Tools (/Library/Developer/CommandLineTools)
- Mach1 SDK: 1458dca
- Prebuilt libs path:
libs/mach1-sdk/examples/mach1spatial-c/ios/Pod-Mach1SpatialAPI/Mach1SpatialAPI/Lib/osx
- Also tested: SDK built from source (works)
Steps to Reproduce
- Link against the prebuilt macOS Mach1Transcode static libs.
- Run this minimal program:
#include <Mach1Transcode.h>
int main() {
Mach1Transcode<float> t;
int in = t.getFormatFromString("Stereo");
int out = t.getFormatFromString("M1Spatial-8");
printf("in=%d out=%d\n", in, out);
t.setInputFormat(in);
t.setOutputFormat(out);
bool ok = t.processConversionPath();
printf("processConversionPath=%d\n", ok);
return 0;
}
Actual Behavior
getFormatFromString() returns 0 for known formats (e.g., "Stereo", "5.1_C", "M1Spatial-8").
processConversionPath() returns false.
processConversion() is therefore unusable.
Expected Behavior
getFormatFromString() should return valid format indices.
processConversionPath() should return true for valid in/out formats.
- Transcode should produce correct output.
Additional Evidence
- Building Mach1 SDK from source fixes the problem:
getFormatFromString() returns valid indices and processConversionPath() succeeds.
- Suggests prebuilt macOS libs are out of sync with headers (or format database not initialized / ABI mismatch).
Workaround
Build Mach1 SDK from source and link M1Encode, M1Transcode, M1Decode directly. This works reliably.
Request
Please update/replace the prebuilt macOS Mach1Transcode libs so format lookup and conversion paths work as expected.
Hi,
It seems there is a mismatch or an issue with the prebuilt libs. Thanks for looking in!
Summary
When linking against the prebuilt macOS Mach1Transcode static libs, format lookup fails (
getFormatFromString()returns 0) andprocessConversionPath()returns false. The exact same code works when the SDK is built from source, so this appears to be a prebuilt‑lib mismatch or out‑of‑sync issue.Environment
libs/mach1-sdk/examples/mach1spatial-c/ios/Pod-Mach1SpatialAPI/Mach1SpatialAPI/Lib/osxSteps to Reproduce
Actual Behavior
getFormatFromString()returns 0 for known formats (e.g., "Stereo", "5.1_C", "M1Spatial-8").processConversionPath()returns false.processConversion()is therefore unusable.Expected Behavior
getFormatFromString()should return valid format indices.processConversionPath()should return true for valid in/out formats.Additional Evidence
getFormatFromString()returns valid indices andprocessConversionPath()succeeds.Workaround
Build Mach1 SDK from source and link
M1Encode,M1Transcode,M1Decodedirectly. This works reliably.Request
Please update/replace the prebuilt macOS Mach1Transcode libs so format lookup and conversion paths work as expected.