Revert "hikey960: Remove hifi dsp support."
This reverts commit 1d7e5889cd761a9eaecb130c52582d2b0707a08d.
Reason for revert: previous commit broke build_test target, b/219798815
Change-Id: If678459053b79b81de27a1b7d514cc0c6101d97d
diff --git a/hifi/xaf/host-apf/include/audio/xa-audio-decoder-api.h b/hifi/xaf/host-apf/include/audio/xa-audio-decoder-api.h
new file mode 100644
index 0000000..f82544c
--- /dev/null
+++ b/hifi/xaf/host-apf/include/audio/xa-audio-decoder-api.h
@@ -0,0 +1,46 @@
+/*******************************************************************************
+* Copyright (C) 2018 Cadence Design Systems, Inc.
+*
+* Permission is hereby granted, free of charge, to any person obtaining
+* a copy of this software and associated documentation files (the
+* "Software"), to use this Software with Cadence processor cores only and
+* not with any other processors and platforms, subject to
+* the following conditions:
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************************/
+
+#ifndef __XA_ADEC_API_H__
+#define __XA_ADEC_API_H__
+
+/* ...generic audio-decoder configuration parameters */
+enum xa_config_param_codec {
+ XA_CODEC_CONFIG_PARAM_CHANNELS = 0x10000 + 0,
+ XA_CODEC_CONFIG_PARAM_SAMPLE_RATE = 0x10000 + 1,
+ XA_CODEC_CONFIG_PARAM_PCM_WIDTH = 0x10000 + 2,
+ XA_CODEC_CONFIG_PARAM_PRODUCED = 0x10000 + 3
+};
+
+/* ...ports indices */
+enum xa_codec_ports {
+ XA_CODEC_INPUT_PORT = 0,
+ XA_CODEC_OUTPUT_PORT = 1
+};
+
+/* ...non-fatal execution errors */
+enum
+{
+ XA_CODEC_EXEC_NO_DATA = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_GENERIC, 0)
+};
+
+#endif
diff --git a/hifi/xaf/host-apf/include/audio/xa-mixer-api.h b/hifi/xaf/host-apf/include/audio/xa-mixer-api.h
new file mode 100644
index 0000000..c9695b4
--- /dev/null
+++ b/hifi/xaf/host-apf/include/audio/xa-mixer-api.h
@@ -0,0 +1,154 @@
+/*******************************************************************************
+* Copyright (C) 2018 Cadence Design Systems, Inc.
+*
+* Permission is hereby granted, free of charge, to any person obtaining
+* a copy of this software and associated documentation files (the
+* "Software"), to use this Software with Cadence processor cores only and
+* not with any other processors and platforms, subject to
+* the following conditions:
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************************/
+
+#ifndef __XA_MIXER_API_H__
+#define __XA_MIXER_API_H__
+
+/*******************************************************************************
+ * Includes
+ ******************************************************************************/
+
+/* ...generic commands */
+#include "xa_apicmd_standards.h"
+
+/* ...generic error codes */
+#include "xa_error_standards.h"
+
+/* ...common types */
+#include "xa_type_def.h"
+
+/*******************************************************************************
+ * Constants definitions
+ ******************************************************************************/
+
+/* ...mixer-specific configuration parameters */
+enum xa_config_param_mixer {
+ XA_MIXER_CONFIG_PARAM_INPUT_TRACKS = 0,
+ XA_MIXER_CONFIG_PARAM_PCM_WIDTH = 1,
+ XA_MIXER_CONFIG_PARAM_CHANNELS = 2,
+ XA_MIXER_CONFIG_PARAM_SAMPLE_RATE = 4,
+ XA_MIXER_CONFIG_PARAM_FRAME_SIZE = 5,
+ XA_MIXER_CONFIG_PARAM_BUFFER_SIZE = 6,
+ XA_MIXER_CONFIG_PARAM_VOLUME = 7,
+ XA_MIXER_CONFIG_PARAM_NUM = 8
+};
+
+/* ...component identifier (informative) */
+#define XA_CODEC_MIXER 1
+
+/* ...global limitation - maximal mixer track number */
+#define XA_MIXER_MAX_TRACK_NUMBER 4
+
+/* ...volume representation */
+#define __XA_MIXER_VOLUME(v) \
+ ({ u32 __v = (u32)((v) * (1 << 12)); (__v > 0xFFFF ? __v = 0xFFFF : 0); (u16)__v; })
+
+/* ...mixer volume setting command encoding */
+#define XA_MIXER_VOLUME(track, channel, volume) \
+ (__XA_MIXER_VOLUME(volume) | ((track) << 16) | ((channel) << 20))
+
+/*******************************************************************************
+ * Class 0: API Errors
+ ******************************************************************************/
+
+#define XA_MIXER_API_NONFATAL(e) \
+ XA_ERROR_CODE(xa_severity_nonfatal, xa_class_api, XA_CODEC_MIXER, (e))
+
+#define XA_MIXER_API_FATAL(e) \
+ XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_MIXER, (e))
+
+enum xa_error_nonfatal_api_mixer {
+ XA_MIXER_API_NONFATAL_MAX = XA_MIXER_API_NONFATAL(0)
+};
+
+enum xa_error_fatal_api_mixer {
+ XA_MIXER_API_FATAL_MAX = XA_MIXER_API_FATAL(0)
+};
+
+/*******************************************************************************
+ * Class 1: Configuration Errors
+ ******************************************************************************/
+
+#define XA_MIXER_CONFIG_NONFATAL(e) \
+ XA_ERROR_CODE(xa_severity_nonfatal, xa_class_config, XA_CODEC_MIXER, (e))
+
+#define XA_MIXER_CONFIG_FATAL(e) \
+ XA_ERROR_CODE(xa_severity_fatal, xa_class_config, XA_CODEC_MIXER, (e))
+
+enum xa_error_nonfatal_config_mixer {
+ XA_MIXER_CONFIG_NONFATAL_RANGE = XA_MIXER_CONFIG_NONFATAL(0),
+ XA_MIXER_CONFIG_NONFATAL_STATE = XA_MIXER_CONFIG_NONFATAL(1),
+ XA_MIXER_CONFIG_NONFATAL_MAX = XA_MIXER_CONFIG_NONFATAL(2)
+};
+
+enum xa_error_fatal_config_mixer {
+ XA_MIXER_CONFIG_FATAL_RANGE = XA_MIXER_CONFIG_FATAL(0),
+ XA_MIXER_CONFIG_FATAL_TRACK_STATE = XA_MIXER_CONFIG_FATAL(0 + XA_MIXER_CONFIG_NONFATAL_MAX),
+ XA_MIXER_CONFIG_FATAL_MAX = XA_MIXER_CONFIG_FATAL(1)
+};
+
+/*******************************************************************************
+ * Class 2: Execution Class Errors
+ ******************************************************************************/
+
+#define XA_MIXER_EXEC_NONFATAL(e) \
+ XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_MIXER, (e))
+
+#define XA_MIXER_EXEC_FATAL(e) \
+ XA_ERROR_CODE(xa_severity_fatal, xa_class_execute, XA_CODEC_MIXER, (e))
+
+enum xa_error_nonfatal_execute_mixer {
+ XA_MIXER_EXEC_NONFATAL_STATE = XA_MIXER_EXEC_NONFATAL(0),
+ XA_MIXER_EXEC_NONFATAL_NO_DATA = XA_MIXER_EXEC_NONFATAL(1),
+ XA_MIXER_EXEC_NONFATAL_INPUT = XA_MIXER_EXEC_NONFATAL(2),
+ XA_MIXER_EXEC_NONFATAL_OUTPUT = XA_MIXER_EXEC_NONFATAL(3),
+ XA_MIXER_EXEC_NONFATAL_MAX = XA_MIXER_EXEC_NONFATAL(4)
+};
+
+enum xa_error_fatal_execute_mixer {
+ XA_MIXER_EXEC_FATAL_STATE = XA_MIXER_EXEC_FATAL(0),
+ XA_MIXER_EXEC_FATAL_INPUT = XA_MIXER_EXEC_FATAL(1),
+ XA_MIXER_EXEC_FATAL_OUTPUT = XA_MIXER_EXEC_FATAL(2),
+ XA_MIXER_EXEC_FATAL_MAX = XA_MIXER_EXEC_FATAL(3)
+};
+
+/*******************************************************************************
+ * API function definition (tbd)
+ ******************************************************************************/
+
+#if defined(USE_DLL) && defined(_WIN32)
+#define DLL_SHARED __declspec(dllimport)
+#elif defined (_WINDLL)
+#define DLL_SHARED __declspec(dllexport)
+#else
+#define DLL_SHARED
+#endif
+
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus */
+DLL_SHARED xa_codec_func_t xa_mixer;
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus */
+
+#endif /* __XA_MIXER_API_H__ */
diff --git a/hifi/xaf/host-apf/include/audio/xa-pcm-api.h b/hifi/xaf/host-apf/include/audio/xa-pcm-api.h
new file mode 100644
index 0000000..94fb136
--- /dev/null
+++ b/hifi/xaf/host-apf/include/audio/xa-pcm-api.h
@@ -0,0 +1,138 @@
+/*******************************************************************************
+* Copyright (C) 2018 Cadence Design Systems, Inc.
+*
+* Permission is hereby granted, free of charge, to any person obtaining
+* a copy of this software and associated documentation files (the
+* "Software"), to use this Software with Cadence processor cores only and
+* not with any other processors and platforms, subject to
+* the following conditions:
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************************/
+
+#ifndef __XA_PCM_API_H__
+#define __XA_PCM_API_H__
+
+/*******************************************************************************
+ * Includes
+ ******************************************************************************/
+
+#include "xa_type_def.h"
+#include "xa_error_standards.h"
+#include "xa_apicmd_standards.h"
+#include "xa_memory_standards.h"
+
+/*******************************************************************************
+ * Constants definitions
+ ******************************************************************************/
+
+/* ...codec-specific configuration parameters */
+enum xa_config_param_pcm {
+ XA_PCM_CONFIG_PARAM_SAMPLE_RATE = 0,
+ XA_PCM_CONFIG_PARAM_IN_PCM_WIDTH = 1,
+ XA_PCM_CONFIG_PARAM_IN_CHANNELS = 2,
+ XA_PCM_CONFIG_PARAM_OUT_PCM_WIDTH = 3,
+ XA_PCM_CONFIG_PARAM_OUT_CHANNELS = 4,
+ XA_PCM_CONFIG_PARAM_CHANROUTING = 5,
+ XA_PCM_CONFIG_PARAM_NUM = 6,
+};
+
+/* ...component identifier (informative) */
+#define XA_CODEC_PCM 16
+
+/*******************************************************************************
+ * Class 0: API Errors
+ ******************************************************************************/
+
+#define XA_PCM_API_NONFATAL(e) \
+ XA_ERROR_CODE(xa_severity_nonfatal, xa_class_api, XA_CODEC_PCM, (e))
+
+#define XA_PCM_API_FATAL(e) \
+ XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_PCM, (e))
+
+enum xa_error_nonfatal_api_pcm {
+ XA_PCM_API_NONFATAL_MAX = XA_PCM_API_NONFATAL(0)
+};
+
+enum xa_error_fatal_api_pcm {
+ XA_PCM_API_FATAL_MAX = XA_PCM_API_FATAL(0)
+};
+
+/*******************************************************************************
+ * Class 1: Configuration Errors
+ ******************************************************************************/
+
+#define XA_PCM_CONFIG_NONFATAL(e) \
+ XA_ERROR_CODE(xa_severity_nonfatal, xa_class_config, XA_CODEC_PCM, (e))
+
+#define XA_PCM_CONFIG_FATAL(e) \
+ XA_ERROR_CODE(xa_severity_fatal, xa_class_config, XA_CODEC_PCM, (e))
+
+enum xa_error_nonfatal_config_pcm {
+ XA_PCM_CONFIG_NONFATAL_RANGE = XA_PCM_CONFIG_NONFATAL(0),
+ XA_PCM_CONFIG_NONFATAL_STATE = XA_PCM_CONFIG_NONFATAL(1),
+ XA_PCM_CONFIG_NONFATAL_MAX = XA_PCM_CONFIG_NONFATAL(2)
+};
+
+enum xa_error_fatal_config_pcm {
+ XA_PCM_CONFIG_FATAL_RANGE = XA_PCM_CONFIG_FATAL(0),
+ XA_PCM_CONFIG_FATAL_MAX = XA_PCM_CONFIG_FATAL(1)
+};
+
+/*******************************************************************************
+ * Class 2: Execution Class Errors
+ ******************************************************************************/
+
+#define XA_PCM_EXEC_NONFATAL(e) \
+ XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_PCM, (e))
+
+#define XA_PCM_EXEC_FATAL(e) \
+ XA_ERROR_CODE(xa_severity_fatal, xa_class_execute, XA_CODEC_PCM, (e))
+
+enum xa_error_nonfatal_execute_pcm {
+ XA_PCM_EXEC_NONFATAL_STATE = XA_PCM_EXEC_NONFATAL(0),
+ XA_PCM_EXEC_NONFATAL_NO_DATA = XA_PCM_EXEC_NONFATAL(1),
+ XA_PCM_EXEC_NONFATAL_INPUT = XA_PCM_EXEC_NONFATAL(2),
+ XA_PCM_EXEC_NONFATAL_OUTPUT = XA_PCM_EXEC_NONFATAL(3),
+ XA_PCM_EXEC_NONFATAL_MAX = XA_PCM_EXEC_NONFATAL(4)
+};
+
+enum xa_error_fatal_execute_pcm {
+ XA_PCM_EXEC_FATAL_STATE = XA_PCM_EXEC_FATAL(0),
+ XA_PCM_EXEC_FATAL_INPUT = XA_PCM_EXEC_FATAL(1),
+ XA_PCM_EXEC_FATAL_OUTPUT = XA_PCM_EXEC_FATAL(2),
+ XA_PCM_EXEC_FATAL_MAX = XA_PCM_EXEC_FATAL(3)
+};
+
+/*******************************************************************************
+ * API function definition
+ ******************************************************************************/
+
+#if defined(USE_DLL) && defined(_WIN32)
+#define DLL_SHARED __declspec(dllimport)
+#elif defined (_WINDLL)
+#define DLL_SHARED __declspec(dllexport)
+#else
+#define DLL_SHARED
+#endif
+
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus */
+DLL_SHARED xa_codec_func_t xa_pcm_codec;
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus */
+
+#endif /* __XA_PCM_API_H__ */
+
diff --git a/hifi/xaf/host-apf/include/audio/xa_apicmd_standards.h b/hifi/xaf/host-apf/include/audio/xa_apicmd_standards.h
new file mode 100644
index 0000000..eb1b78e
--- /dev/null
+++ b/hifi/xaf/host-apf/include/audio/xa_apicmd_standards.h
@@ -0,0 +1,107 @@
+/*******************************************************************************
+* Copyright (C) 2018 Cadence Design Systems, Inc.
+*
+* Permission is hereby granted, free of charge, to any person obtaining
+* a copy of this software and associated documentation files (the
+* "Software"), to use this Software with Cadence processor cores only and
+* not with any other processors and platforms, subject to
+* the following conditions:
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************************/
+/*******************************************************************************
+*
+* NOTE, ANY CHANGES TO THIS FILE MAY AFFECT UNDERLYING AUDIO / SPEECH CODEC
+* LIBRARY COMPONENT FROM CADENCE DESIGN SYSTEMS, INC.
+*
+******************************************************************************/
+
+
+#ifndef __XA_API_CMD_STANDARDS_H__
+#define __XA_API_CMD_STANDARDS_H__
+
+/*****************************************************************************/
+/* Standard API commands */
+/*****************************************************************************/
+
+enum xa_api_cmd_generic {
+ XA_API_CMD_GET_LIB_ID_STRINGS = 0x0001,
+
+ XA_API_CMD_GET_API_SIZE = 0x0002,
+ XA_API_CMD_INIT = 0x0003,
+
+ XA_API_CMD_SET_CONFIG_PARAM = 0x0004,
+ XA_API_CMD_GET_CONFIG_PARAM = 0x0005,
+
+ XA_API_CMD_GET_MEMTABS_SIZE = 0x0006,
+ XA_API_CMD_SET_MEMTABS_PTR = 0x0007,
+ XA_API_CMD_GET_N_MEMTABS = 0x0008,
+
+ XA_API_CMD_EXECUTE = 0x0009,
+
+ XA_API_CMD_PUT_INPUT_QUERY = 0x000A,
+ XA_API_CMD_GET_CURIDX_INPUT_BUF = 0x000B,
+ XA_API_CMD_SET_INPUT_BYTES = 0x000C,
+ XA_API_CMD_GET_OUTPUT_BYTES = 0x000D,
+ XA_API_CMD_INPUT_OVER = 0x000E,
+
+ XA_API_CMD_GET_MEM_INFO_SIZE = 0x0010,
+ XA_API_CMD_GET_MEM_INFO_ALIGNMENT = 0x0011,
+ XA_API_CMD_GET_MEM_INFO_TYPE = 0x0012,
+ XA_API_CMD_GET_MEM_INFO_PLACEMENT = 0x0013,
+ XA_API_CMD_GET_MEM_INFO_PRIORITY = 0x0014,
+ XA_API_CMD_SET_MEM_PTR = 0x0015,
+ XA_API_CMD_SET_MEM_INFO_SIZE = 0x0016,
+ XA_API_CMD_SET_MEM_PLACEMENT = 0x0017,
+
+ XA_API_CMD_GET_N_TABLES = 0x0018,
+ XA_API_CMD_GET_TABLE_INFO_SIZE = 0x0019,
+ XA_API_CMD_GET_TABLE_INFO_ALIGNMENT = 0x001A,
+ XA_API_CMD_GET_TABLE_INFO_PRIORITY = 0x001B,
+ XA_API_CMD_SET_TABLE_PTR = 0x001C,
+ XA_API_CMD_GET_TABLE_PTR = 0x001D
+};
+
+/*****************************************************************************/
+/* Standard API command indices */
+/*****************************************************************************/
+
+enum xa_cmd_type_generic {
+ /* XA_API_CMD_GET_LIB_ID_STRINGS indices */
+ XA_CMD_TYPE_LIB_NAME = 0x0100,
+ XA_CMD_TYPE_LIB_VERSION = 0x0200,
+ XA_CMD_TYPE_API_VERSION = 0x0300,
+
+ /* XA_API_CMD_INIT indices */
+ XA_CMD_TYPE_INIT_API_PRE_CONFIG_PARAMS = 0x0100,
+ XA_CMD_TYPE_INIT_API_POST_CONFIG_PARAMS = 0x0200,
+ XA_CMD_TYPE_INIT_PROCESS = 0x0300,
+ XA_CMD_TYPE_INIT_DONE_QUERY = 0x0400,
+
+ /* XA_API_CMD_EXECUTE indices */
+ XA_CMD_TYPE_DO_EXECUTE = 0x0100,
+ XA_CMD_TYPE_DONE_QUERY = 0x0200,
+ XA_CMD_TYPE_DO_RUNTIME_INIT = 0x0300
+};
+
+
+/*****************************************************************************/
+/* Standard API configuration parameters */
+/*****************************************************************************/
+
+enum xa_config_param_generic {
+ XA_CONFIG_PARAM_CUR_INPUT_STREAM_POS = 0x0100,
+ XA_CONFIG_PARAM_GEN_INPUT_STREAM_POS = 0x0200,
+};
+
+#endif /* __XA_API_CMD_STANDARDS_H__ */
diff --git a/hifi/xaf/host-apf/include/audio/xa_error_standards.h b/hifi/xaf/host-apf/include/audio/xa_error_standards.h
new file mode 100644
index 0000000..1b67b52
--- /dev/null
+++ b/hifi/xaf/host-apf/include/audio/xa_error_standards.h
@@ -0,0 +1,79 @@
+/*******************************************************************************
+* Copyright (C) 2018 Cadence Design Systems, Inc.
+*
+* Permission is hereby granted, free of charge, to any person obtaining
+* a copy of this software and associated documentation files (the
+* "Software"), to use this Software with Cadence processor cores only and
+* not with any other processors and platforms, subject to
+* the following conditions:
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************************/
+/*******************************************************************************
+*
+* NOTE, ANY CHANGES TO THIS FILE MAY AFFECT UNDERLYING AUDIO / SPEECH CODEC
+* LIBRARY COMPONENT FROM CADENCE DESIGN SYSTEMS, INC.
+*
+******************************************************************************/
+
+
+#ifndef __XA_ERROR_STANDARDS_H__
+#define __XA_ERROR_STANDARDS_H__
+
+/*****************************************************************************/
+/* File includes */
+/* xa_type_def.h */
+/*****************************************************************************/
+
+/*****************************************************************************/
+/* Constant hash defines */
+/*****************************************************************************/
+#define XA_NO_ERROR 0
+#define XA_FATAL_ERROR 0x80000000
+
+enum xa_error_severity {
+ xa_severity_nonfatal = 0,
+ xa_severity_fatal = 0xffffffff
+};
+
+enum xa_error_class {
+ xa_class_api = 0,
+ xa_class_config = 1,
+ xa_class_execute = 2,
+ xa_class_proxy = 3
+};
+
+#define XA_CODEC_GENERIC 0
+
+#define XA_ERROR_CODE(severity, class, codec, index) ((severity << 15) | (class << 11) | (codec << 6) | index)
+#define XA_ERROR_SEVERITY(code) (((code) & XA_FATAL_ERROR) != 0)
+#define XA_ERROR_CLASS(code) (((code) >> 11) & 0x0f)
+#define XA_ERROR_CODEC(code) (((code) >> 6) & 0x1f)
+#define XA_ERROR_SUBCODE(code) (((code) >> 0) & 0x3f)
+
+/* Our convention is that only api-class errors can be generic ones. */
+
+/*****************************************************************************/
+/* Class 0: API Errors */
+/*****************************************************************************/
+/* Non Fatal Errors */
+/* (none) */
+/* Fatal Errors */
+enum xa_error_fatal_api_generic {
+ XA_API_FATAL_MEM_ALLOC = XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_GENERIC, 0),
+ XA_API_FATAL_MEM_ALIGN = XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_GENERIC, 1),
+ XA_API_FATAL_INVALID_CMD = XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_GENERIC, 2),
+ XA_API_FATAL_INVALID_CMD_TYPE = XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_GENERIC, 3)
+};
+
+#endif /* __XA_ERROR_STANDARDS_H__ */
diff --git a/hifi/xaf/host-apf/include/audio/xa_memory_standards.h b/hifi/xaf/host-apf/include/audio/xa_memory_standards.h
new file mode 100644
index 0000000..27ec455
--- /dev/null
+++ b/hifi/xaf/host-apf/include/audio/xa_memory_standards.h
@@ -0,0 +1,104 @@
+/*******************************************************************************
+* Copyright (C) 2018 Cadence Design Systems, Inc.
+*
+* Permission is hereby granted, free of charge, to any person obtaining
+* a copy of this software and associated documentation files (the
+* "Software"), to use this Software with Cadence processor cores only and
+* not with any other processors and platforms, subject to
+* the following conditions:
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************************/
+/*******************************************************************************
+*
+* NOTE, ANY CHANGES TO THIS FILE MAY AFFECT UNDERLYING AUDIO / SPEECH CODEC
+* LIBRARY COMPONENT FROM CADENCE DESIGN SYSTEMS, INC.
+*
+******************************************************************************/
+
+
+#ifndef __XA_MEMORY_STANDARDS_H__
+#define __XA_MEMORY_STANDARDS_H__
+
+/*****************************************************************************/
+/* Constant hash defines */
+/*****************************************************************************/
+/* when you don't need alignment, pass this to memory library */
+#define XA_MEM_NO_ALIGN 0x01
+
+/* standard memory types */
+/* to be used inter frames */
+#define XA_MEMTYPE_PERSIST 0x00
+/* read write, to be used intra frames */
+#define XA_MEMTYPE_SCRATCH 0x01
+/* read only memory, intra frame */
+#define XA_MEMTYPE_INPUT 0x02
+/* read-write memory, for usable output, intra frame */
+#define XA_MEMTYPE_OUTPUT 0x03
+/* readonly memory, inter frame */
+#define XA_MEMTYPE_TABLE 0x04
+/* input buffer before mem tabs allocation */
+#define XA_MEMTYPE_PRE_FRAME_INPUT 0x05
+/* input buffer before mem tabs allocation */
+#define XA_MEMTYPE_PRE_FRAME_SCRATCH 0x06
+/* for local variables */
+#define XA_MEMTYPE_AUTO_VAR 0x80
+
+/* standard memory priorities */
+#define XA_MEMPRIORITY_ANYWHERE 0x00
+#define XA_MEMPRIORITY_LOWEST 0x01
+#define XA_MEMPRIORITY_LOW 0x02
+#define XA_MEMPRIORITY_NORM 0x03
+#define XA_MEMPRIORITY_ABOVE_NORM 0x04
+#define XA_MEMPRIORITY_HIGH 0x05
+#define XA_MEMPRIORITY_HIGHER 0x06
+#define XA_MEMPRIORITY_CRITICAL 0x07
+
+/* standard memory placements */
+/* placement is defined by 64 bits */
+
+#define XA_MEMPLACE_FAST_RAM_0 0x000001
+#define XA_MEMPLACE_FAST_RAM_1 0x000002
+#define XA_MEMPLACE_FAST_RAM_2 0x000004
+#define XA_MEMPLACE_FAST_RAM_3 0x000008
+#define XA_MEMPLACE_FAST_RAM_4 0x000010
+#define XA_MEMPLACE_FAST_RAM_5 0x000020
+#define XA_MEMPLACE_FAST_RAM_6 0x000040
+#define XA_MEMPLACE_FAST_RAM_7 0x000080
+
+#define XA_MEMPLACE_INT_RAM_0 0x000100
+#define XA_MEMPLACE_INT_RAM_1 0x000200
+#define XA_MEMPLACE_INT_RAM_2 0x000400
+#define XA_MEMPLACE_INT_RAM_3 0x000800
+#define XA_MEMPLACE_INT_RAM_4 0x001000
+#define XA_MEMPLACE_INT_RAM_5 0x002000
+#define XA_MEMPLACE_INT_RAM_6 0x004000
+#define XA_MEMPLACE_INT_RAM_7 0x008000
+
+#define XA_MEMPLACE_EXT_RAM_0 0x010000
+#define XA_MEMPLACE_EXT_RAM_1 0x020000
+#define XA_MEMPLACE_EXT_RAM_2 0x040000
+#define XA_MEMPLACE_EXT_RAM_3 0x080000
+#define XA_MEMPLACE_EXT_RAM_4 0x100000
+#define XA_MEMPLACE_EXT_RAM_5 0x200000
+#define XA_MEMPLACE_EXT_RAM_6 0x400000
+#define XA_MEMPLACE_EXT_RAM_7 0x800000
+
+#define XA_MEMPLACE_DONTCARE_H 0xFFFFFFFF
+#define XA_MEMPLACE_DONTCARE_L 0xFFFFFFFF
+
+/* the simple common PC RAM */
+#define XA_PC_RAM_H 0x00000000
+#define XA_PC_RAM_L XA_MEMPLACE_EXT_RAM_0
+
+#endif /* __XA_MEMORY_STANDARDS_H__ */
diff --git a/hifi/xaf/host-apf/include/audio/xa_type_def.h b/hifi/xaf/host-apf/include/audio/xa_type_def.h
new file mode 100644
index 0000000..e83cdd3
--- /dev/null
+++ b/hifi/xaf/host-apf/include/audio/xa_type_def.h
@@ -0,0 +1,98 @@
+/*******************************************************************************
+* Copyright (C) 2018 Cadence Design Systems, Inc.
+*
+* Permission is hereby granted, free of charge, to any person obtaining
+* a copy of this software and associated documentation files (the
+* "Software"), to use this Software with Cadence processor cores only and
+* not with any other processors and platforms, subject to
+* the following conditions:
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************************/
+/*******************************************************************************
+*
+* NOTE, ANY CHANGES TO THIS FILE MAY AFFECT UNDERLYING AUDIO / SPEECH CODEC
+* LIBRARY COMPONENT FROM CADENCE DESIGN SYSTEMS, INC.
+*
+******************************************************************************/
+
+
+#ifndef __XA_TYPE_DEF_H__
+#define __XA_TYPE_DEF_H__
+
+/****************************************************************************/
+/* types type define prefix examples bytes */
+/************************ *********** ****** **************** ***** */
+typedef signed char WORD8 ;/* b WORD8 b_name 1 */
+typedef signed char * pWORD8 ;/* pb pWORD8 pb_nmae 1 */
+typedef unsigned char UWORD8 ;/* ub UWORD8 ub_count 1 */
+typedef unsigned char * pUWORD8 ;/* pub pUWORD8 pub_count 1 */
+
+typedef signed short WORD16 ;/* s WORD16 s_count 2 */
+typedef signed short * pWORD16 ;/* ps pWORD16 ps_count 2 */
+typedef unsigned short UWORD16 ;/* us UWORD16 us_count 2 */
+typedef unsigned short * pUWORD16;/* pus pUWORD16 pus_count 2 */
+
+typedef signed int WORD24 ;/* k WORD24 k_count 3 */
+typedef signed int * pWORD24 ;/* pk pWORD24 pk_count 3 */
+typedef unsigned int UWORD24 ;/* uk UWORD24 uk_count 3 */
+typedef unsigned int * pUWORD24;/* puk pUWORD24 puk_count 3 */
+
+typedef signed int WORD32 ;/* i WORD32 i_count 4 */
+typedef signed int * pWORD32 ;/* pi pWORD32 pi_count 4 */
+typedef unsigned int UWORD32 ;/* ui UWORD32 ui_count 4 */
+typedef unsigned int * pUWORD32;/* pui pUWORD32 pui_count 4 */
+
+typedef signed long long WORD40 ;/* m WORD40 m_count 5 */
+typedef signed long long * pWORD40 ;/* pm pWORD40 pm_count 5 */
+typedef unsigned long long UWORD40 ;/* um UWORD40 um_count 5 */
+typedef unsigned long long * pUWORD40;/* pum pUWORD40 pum_count 5 */
+
+typedef signed long long WORD64 ;/* h WORD64 h_count 8 */
+typedef signed long long * pWORD64 ;/* ph pWORD64 ph_count 8 */
+typedef unsigned long long UWORD64 ;/* uh UWORD64 uh_count 8 */
+typedef unsigned long long * pUWORD64;/* puh pUWORD64 puh_count 8 */
+
+typedef float FLOAT32 ;/* f FLOAT32 f_count 4 */
+typedef float * pFLOAT32;/* pf pFLOAT32 pf_count 4 */
+typedef double FLOAT64 ;/* d UFLOAT64 d_count 8 */
+typedef double * pFlOAT64;/* pd pFLOAT64 pd_count 8 */
+
+typedef void VOID ;/* v VOID v_flag 4 */
+typedef void * pVOID ;/* pv pVOID pv_flag 4 */
+
+/* variable size types: platform optimized implementation */
+//typedef signed int BOOL ;/* bool BOOL bool_true */
+//typedef unsigned int UBOOL ;/* ubool BOOL ubool_true */
+typedef signed int FLAG ;/* flag FLAG flag_false */
+typedef unsigned int UFLAG ;/* uflag FLAG uflag_false */
+typedef signed int LOOPIDX ;/* lp LOOPIDX lp_index */
+typedef unsigned int ULOOPIDX;/* ulp SLOOPIDX ulp_index */
+typedef signed int WORD ;/* lp LOOPIDX lp_index */
+typedef unsigned int UWORD ;/* ulp SLOOPIDX ulp_index */
+
+typedef LOOPIDX LOOPINDEX; /* lp LOOPIDX lp_index */
+typedef ULOOPIDX ULOOPINDEX;/* ulp SLOOPIDX ulp_index */
+
+#define PLATFORM_INLINE __inline
+
+typedef struct xa_codec_opaque { WORD32 _; } *xa_codec_handle_t;
+
+typedef int XA_ERRORCODE;
+
+typedef XA_ERRORCODE xa_codec_func_t(xa_codec_handle_t p_xa_module_obj,
+ WORD32 i_cmd,
+ WORD32 i_idx,
+ pVOID pv_value);
+
+#endif /* __XA_TYPE_DEF_H__ */
diff --git a/hifi/xaf/host-apf/include/audio/xa_vorbis_dec_api.h b/hifi/xaf/host-apf/include/audio/xa_vorbis_dec_api.h
new file mode 100644
index 0000000..f99660f
--- /dev/null
+++ b/hifi/xaf/host-apf/include/audio/xa_vorbis_dec_api.h
@@ -0,0 +1,121 @@
+/*******************************************************************************
+* Copyright (C) 2018 Cadence Design Systems, Inc.
+*
+* Permission is hereby granted, free of charge, to any person obtaining
+* a copy of this software and associated documentation files (the
+* "Software"), to use this Software with Cadence processor cores only and
+* not with any other processors and platforms, subject to
+* the following conditions:
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************************/
+/*******************************************************************************
+*
+* NOTE, ANY CHANGES TO THIS FILE MAY AFFECT UNDERLYING AUDIO / SPEECH CODEC
+* LIBRARY COMPONENT FROM CADENCE DESIGN SYSTEMS, INC.
+*
+******************************************************************************/
+
+
+
+#ifndef __XA_VORBIS_DEC_API_H__
+#define __XA_VORBIS_DEC_API_H__
+
+#include <xa_memory_standards.h>
+
+/* vorbis_dec-specific configuration parameters */
+enum xa_config_param_vorbis_dec
+{
+ XA_VORBISDEC_CONFIG_PARAM_SAMP_FREQ = 0,
+ XA_VORBISDEC_CONFIG_PARAM_NUM_CHANNELS = 1,
+ XA_VORBISDEC_CONFIG_PARAM_PCM_WDSZ = 2,
+ XA_VORBISDEC_CONFIG_PARAM_COMMENT_MEM_PTR = 3,
+ XA_VORBISDEC_CONFIG_PARAM_COMMENT_MEM_SIZE = 4,
+ XA_VORBISDEC_CONFIG_PARAM_GET_CUR_BITRATE = 5,
+ XA_VORBISDEC_CONFIG_PARAM_RAW_VORBIS_FILE_MODE = 6,
+ XA_VORBISDEC_CONFIG_PARAM_RAW_VORBIS_LAST_PKT_GRANULE_POS = 7,
+ XA_VORBISDEC_CONFIG_PARAM_OGG_MAX_PAGE_SIZE = 8,
+ XA_VORBISDEC_CONFIG_PARAM_RUNTIME_MEM = 9
+};
+
+/* commands */
+#include <xa_apicmd_standards.h>
+
+/* vorbis_dec-specific command types */
+/* (none) */
+
+/* error codes */
+#include <xa_error_standards.h>
+#define XA_CODEC_VORBIS_DEC 7
+
+/* vorbis_dec-specific error codes */
+
+/*****************************************************************************/
+/* Class 1: Configuration Errors */
+/*****************************************************************************/
+/* Nonfatal Errors */
+enum xa_error_nonfatal_config_vorbis_dec
+{
+ XA_VORBISDEC_CONFIG_NONFATAL_GROUPED_STREAM = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_config, XA_CODEC_VORBIS_DEC, 0),
+ XA_VORBISDEC_CONFIG_NONFATAL_BAD_PARAM = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_config, XA_CODEC_VORBIS_DEC, 1)
+};
+
+/* Fatal Errors */
+enum xa_error_fatal_config_vorbis_dec
+{
+ XA_VORBISDEC_CONFIG_FATAL_BADHDR = XA_ERROR_CODE(xa_severity_fatal, xa_class_config, XA_CODEC_VORBIS_DEC, 0),
+ XA_VORBISDEC_CONFIG_FATAL_NOTVORBIS = XA_ERROR_CODE(xa_severity_fatal, xa_class_config, XA_CODEC_VORBIS_DEC, 1),
+ XA_VORBISDEC_CONFIG_FATAL_BADINFO = XA_ERROR_CODE(xa_severity_fatal, xa_class_config, XA_CODEC_VORBIS_DEC, 2),
+ XA_VORBISDEC_CONFIG_FATAL_BADVERSION = XA_ERROR_CODE(xa_severity_fatal, xa_class_config, XA_CODEC_VORBIS_DEC, 3),
+ XA_VORBISDEC_CONFIG_FATAL_BADBOOKS = XA_ERROR_CODE(xa_severity_fatal, xa_class_config, XA_CODEC_VORBIS_DEC, 4),
+ XA_VORBISDEC_CONFIG_FATAL_CODEBOOK_DECODE = XA_ERROR_CODE(xa_severity_fatal, xa_class_config, XA_CODEC_VORBIS_DEC, 5),
+ XA_VORBISDEC_CONFIG_FATAL_INVALID_PARAM = XA_ERROR_CODE(xa_severity_fatal, xa_class_config, XA_CODEC_VORBIS_DEC, 6)
+};
+
+/*****************************************************************************/
+/* Class 2: Execution Errors */
+/*****************************************************************************/
+/* Nonfatal Errors */
+enum xa_error_nonfatal_execute_vorbis_dec
+{
+ XA_VORBISDEC_EXECUTE_NONFATAL_OV_HOLE = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 0),
+ XA_VORBISDEC_EXECUTE_NONFATAL_OV_NOTAUDIO = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 1),
+ XA_VORBISDEC_EXECUTE_NONFATAL_OV_BADPACKET = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 2),
+ XA_VORBISDEC_EXECUTE_NONFATAL_OV_RUNTIME_DECODE_FLUSH_IN_PROGRESS = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 3),
+ XA_VORBISDEC_EXECUTE_NONFATAL_OV_INVALID_STRM_POS = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 4),
+ XA_VORBISDEC_EXECUTE_NONFATAL_OV_INSUFFICIENT_DATA = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 5),
+ XA_VORBISDEC_EXECUTE_NONFATAL_OV_UNEXPECTED_IDENT_PKT_RECEIVED = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 6),
+ XA_VORBISDEC_EXECUTE_NONFATAL_OV_UNEXPECTED_HEADER_PKT_RECEIVED = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 7)
+};
+/* Fatal Errors */
+enum xa_error_fatal_execute_vorbis_dec
+{
+ XA_VORBISDEC_EXECUTE_FATAL_PERSIST_ALLOC = XA_ERROR_CODE(xa_severity_fatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 0),
+ XA_VORBISDEC_EXECUTE_FATAL_SCRATCH_ALLOC = XA_ERROR_CODE(xa_severity_fatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 1),
+ XA_VORBISDEC_EXECUTE_FATAL_CORRUPT_STREAM = XA_ERROR_CODE(xa_severity_fatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 2),
+ XA_VORBISDEC_EXECUTE_FATAL_INSUFFICIENT_INP_BUF_SIZE = XA_ERROR_CODE(xa_severity_fatal, xa_class_execute, XA_CODEC_VORBIS_DEC, 3)
+};
+
+#include "xa_type_def.h"
+
+#ifdef __cplusplus
+ extern "C" {
+#endif /* __cplusplus */
+
+ xa_codec_func_t xa_vorbis_dec;
+
+#ifdef __cplusplus
+ }
+#endif /* __cplusplus */
+
+#endif /* __XA_VORBIS_DEC_API_H__ */