42 lines
2.3 KiB
C
42 lines
2.3 KiB
C
|
|
// sherpa-onnx/csrc/macros.h
|
|
//
|
|
// Copyright 2023 Xiaomi Corporation
|
|
|
|
#ifndef SHERPA_ONNX_CSRC_MACROS_H_
|
|
#define SHERPA_ONNX_CSRC_MACROS_H_
|
|
|
|
#define SHERPA_ONNX_READ_META_DATA(dst, src_key) \
|
|
do { \
|
|
auto value = \
|
|
meta_data.LookupCustomMetadataMapAllocated(src_key, allocator); \
|
|
if (!value) { \
|
|
fprintf(stderr, "%s does not exist in the metadata\n", src_key); \
|
|
exit(-1); \
|
|
} \
|
|
\
|
|
dst = atoi(value.get()); \
|
|
if (dst <= 0) { \
|
|
fprintf(stderr, "Invalid value %d for %s\n", dst, src_key); \
|
|
exit(-1); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define SHERPA_ONNX_READ_META_DATA_VEC(dst, src_key) \
|
|
do { \
|
|
auto value = \
|
|
meta_data.LookupCustomMetadataMapAllocated(src_key, allocator); \
|
|
if (!value) { \
|
|
fprintf(stderr, "%s does not exist in the metadata\n", src_key); \
|
|
exit(-1); \
|
|
} \
|
|
\
|
|
bool ret = SplitStringToIntegers(value.get(), ",", true, &dst); \
|
|
if (!ret) { \
|
|
fprintf(stderr, "Invalid value %s for %s\n", value.get(), src_key); \
|
|
exit(-1); \
|
|
} \
|
|
} while (0)
|
|
|
|
#endif // SHERPA_ONNX_CSRC_MACROS_H_
|