![]() |
|
|||
0001 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ 0002 /* 0003 * This file is provided under a dual BSD/GPLv2 license. When using or 0004 * redistributing this file, you may do so under either license. 0005 * 0006 * Copyright(c) 2019 Intel Corporation. All rights reserved. 0007 */ 0008 0009 #ifndef __IPC_CHANNEL_MAP_H__ 0010 #define __IPC_CHANNEL_MAP_H__ 0011 0012 #include <uapi/sound/sof/header.h> 0013 #include <sound/sof/header.h> 0014 0015 /** 0016 * \brief Channel map, specifies transformation of one-to-many or many-to-one. 0017 * 0018 * In case of one-to-many specifies how the output channels are computed out of 0019 * a single source channel, 0020 * in case of many-to-one specifies how a single target channel is computed 0021 * from a multichannel input stream. 0022 * 0023 * Channel index specifies position of the channel in the stream on the 'one' 0024 * side. 0025 * 0026 * Ext ID is the identifier of external part of the transformation. Depending 0027 * on the context, it may be pipeline ID, dai ID, ... 0028 * 0029 * Channel mask describes which channels are taken into account on the "many" 0030 * side. Bit[i] set to 1 means that i-th channel is used for computation 0031 * (either as source or as a target). 0032 * 0033 * Channel mask is followed by array of coefficients in Q2.30 format, 0034 * one per each channel set in the mask (left to right, LS bit set in the 0035 * mask corresponds to ch_coeffs[0]). 0036 */ 0037 struct sof_ipc_channel_map { 0038 uint32_t ch_index; 0039 uint32_t ext_id; 0040 uint32_t ch_mask; 0041 uint32_t reserved; 0042 int32_t ch_coeffs[]; 0043 } __packed; 0044 0045 /** 0046 * \brief Complete map for each channel of a multichannel stream. 0047 * 0048 * num_ch_map Specifies number of items in the ch_map. 0049 * More than one transformation per a single channel is allowed (in case 0050 * multiple external entities are transformed). 0051 * A channel may be skipped in the transformation list, then it is filled 0052 * with 0's by the transformation function. 0053 */ 0054 struct sof_ipc_stream_map { 0055 struct sof_ipc_cmd_hdr hdr; 0056 uint32_t num_ch_map; 0057 uint32_t reserved[3]; 0058 struct sof_ipc_channel_map ch_map[]; 0059 } __packed; 0060 0061 #endif /* __IPC_CHANNEL_MAP_H__ */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |