diff options
author | Jebaraj Selvapeter P | 2014-07-04 00:40:38 -0500 |
---|---|---|
committer | Jebaraj Selvapeter P | 2014-07-04 00:40:38 -0500 |
commit | f48d0e92a29d52e2b47aa9506be564fb03505f9f (patch) | |
tree | 3262e52ace628576fa7da62220dfc2a0a77ec20d | |
parent | cc44ce66cf11a535c7adc05b36891846ea8000f2 (diff) | |
download | paf-f48d0e92a29d52e2b47aa9506be564fb03505f9f.tar.gz paf-f48d0e92a29d52e2b47aa9506be564fb03505f9f.tar.xz paf-f48d0e92a29d52e2b47aa9506be564fb03505f9f.zip |
meta data structure updated paftyp.h added
-rw-r--r-- | pa/f/include/paftyp.h | 33 | ||||
-rw-r--r-- | pa/f/s19/y15/params.c | 12 | ||||
-rw-r--r-- | pa/f/s3/as1-f2-params.h | 2 | ||||
-rw-r--r-- | pa/f/s3/as1-f2.c | 16 |
4 files changed, 42 insertions, 21 deletions
diff --git a/pa/f/include/paftyp.h b/pa/f/include/paftyp.h index 9315ae6..2aa81e0 100644 --- a/pa/f/include/paftyp.h +++ b/pa/f/include/paftyp.h | |||
@@ -162,19 +162,29 @@ typedef struct PAF_AudioFunctions { | |||
162 | // metadata can be "private" to be exchanged between two components. | 162 | // metadata can be "private" to be exchanged between two components. |
163 | // Particularly necessary for dual DSP systems. | 163 | // Particularly necessary for dual DSP systems. |
164 | // | 164 | // |
165 | typedef struct PAF_BsMetadata | 165 | |
166 | // Components using metadata typically treat the data privately. | ||
167 | // A normal legacy component must process a frame if and only if | ||
168 | // the metadata is has BsMetadata_channelData type. | ||
169 | // Other components must look for their private metadata type. | ||
170 | typedef enum | ||
166 | { | 171 | { |
167 | XDAS_UInt8 offset; /* offset into audio frame for change in objectAudio field */ | 172 | PAF_bsMetadata_channelData = 0, // normal, no metadata. |
168 | XDAS_Bool objectAudio; /* TRUE if stream has object audio present */ | 173 | PAF_bsMetadata_Evolution = 1, // Dolby ATMOS |
169 | } PAF_BsMetadata; | 174 | PAF_bsMetadata_reserved_lar, // |
175 | PAF_bsMetadata_reserved_2, // DTS | ||
176 | PAF_bsMetadata_reserved_3, // others to be assigned | ||
177 | PAF_bsMetadata_reserved_4 | ||
178 | } PAF_bsMetadataTypes; | ||
179 | |||
170 | 180 | ||
171 | #define PAF_MAX_NUM_PRIVATE_MD ( 1 ) | 181 | #define PAF_MAX_NUM_PRIVATE_MD ( 1 ) // spec says it could be 8, but we limit it to 1. |
172 | #define PAF_MAX_PRIVATE_MD_SZ ( 4096 ) | 182 | #define PAF_MAX_PRIVATE_MD_SZ ( 4096 ) |
173 | 183 | ||
174 | /* Contains de-serialized private metadata */ | 184 | /* Contains de-serialized private metadata */ |
175 | typedef struct PAF_PrivateMetadata | 185 | typedef struct PAF_PrivateMetadata |
176 | { | 186 | { |
177 | XDAS_UInt8 offset; /* offset of metadata into audio frame */ | 187 | XDAS_UInt16 offset; /* offset of this private metadata into audio frame */ |
178 | XDAS_UInt16 size; /* Byte count of the buffer pointed to by pMdBuf */ | 188 | XDAS_UInt16 size; /* Byte count of the buffer pointed to by pMdBuf */ |
179 | XDAS_UInt8 *pMdBuf; /* Pointer to output metadata buffer */ | 189 | XDAS_UInt8 *pMdBuf; /* Pointer to output metadata buffer */ |
180 | } PAF_PrivateMetadata; | 190 | } PAF_PrivateMetadata; |
@@ -188,7 +198,7 @@ typedef struct PAF_AudioFrame { | |||
188 | XDAS_Int8 sampleDecode; | 198 | XDAS_Int8 sampleDecode; |
189 | XDAS_Int8 sampleRate; | 199 | XDAS_Int8 sampleRate; |
190 | XDAS_Int8 unused[3]; | 200 | XDAS_Int8 unused[3]; |
191 | XDAS_Int16 sampleCount; /* valid N */ | 201 | XDAS_Int16 sampleCount; /* valid N */ |
192 | PAF_AudioFrameData data; /* data[M][N] */ | 202 | PAF_AudioFrameData data; /* data[M][N] */ |
193 | PAF_ChannelConfiguration channelConfigurationRequest; | 203 | PAF_ChannelConfiguration channelConfigurationRequest; |
194 | PAF_ChannelConfiguration channelConfigurationStream; /* valid M */ | 204 | PAF_ChannelConfiguration channelConfigurationStream; /* valid M */ |
@@ -196,9 +206,12 @@ typedef struct PAF_AudioFrame { | |||
196 | PAF_SampleProcess sampleProcess[PAF_SAMPLEPROCESS_N]; | 206 | PAF_SampleProcess sampleProcess[PAF_SAMPLEPROCESS_N]; |
197 | struct PAF_AudioFrame *root; | 207 | struct PAF_AudioFrame *root; |
198 | 208 | ||
199 | XDAS_Bool pafBsMetadataUpdate; /* indicates whether bit-stream metadata update */ | 209 | PAF_bsMetadataTypes bsMetadata_type; /* non zero if metadata is attached. */ |
200 | XDAS_UInt8 numPrivateMetadata; /* number of valid private metadata (0 or 1 if metadata filtering enabled) */ | 210 | XDAS_Bool pafBsMetadataUpdate; /* indicates whether bit-stream metadata update */ |
201 | PAF_BsMetadata pafBsMetadata; /* bit-stream metadata */ | 211 | XDAS_UInt8 numPrivateMetadata; /* number of valid private metadata (0 or 1 if metadata filtering enabled) */ |
212 | XDAS_UInt16 bsMetadata_offset; /* offset into audio frame for change in bsMetadata_type field */ | ||
213 | XDAS_UInt16 privateMetadataBufSize; /* max byte count of the private metadata buffers */ | ||
214 | |||
202 | PAF_PrivateMetadata pafPrivateMetadata[PAF_MAX_NUM_PRIVATE_MD]; /* private metadata */ | 215 | PAF_PrivateMetadata pafPrivateMetadata[PAF_MAX_NUM_PRIVATE_MD]; /* private metadata */ |
203 | 216 | ||
204 | } PAF_AudioFrame; | 217 | } PAF_AudioFrame; |
diff --git a/pa/f/s19/y15/params.c b/pa/f/s19/y15/params.c index 6187aae..4d0698b 100644 --- a/pa/f/s19/y15/params.c +++ b/pa/f/s19/y15/params.c | |||
@@ -813,8 +813,16 @@ const PAF_MetadataBufStatus PAF_AST_params_MetadataBufStatus[] = | |||
813 | 128, // alignment | 813 | 128, // alignment |
814 | &IRAM, // pSpace | 814 | &IRAM, // pSpace |
815 | }; | 815 | }; |
816 | 816 | // | |
817 | const PAF_AudioFrameBufStatus PAF_AST_params_AudioFrameBufStatus[] = | 817 | // |
818 | // This structure defines the memory allocation of audio frame buffers (channel buffers). Users can customize this structure based | ||
819 | // on their requirement. IALG_SARAM specifies the audio frame buffer is allocated in IRAM and IALG_EXTERNAL | ||
820 | // specifies the audio frame buffer is allocated in SDRAM. By allocating few channel buffers in SDRAM, users can save internal memory | ||
821 | // but trading performance | ||
822 | // This structure defined for PAF_MAXNUMCHAN number of channels. But channel buffers will be allocated for "PAF_AST_params_numchan" | ||
823 | // number of channels only. | ||
824 | |||
825 | const PAF_AudioFrameBufStatus PAF_AST_params_AudioFrameBufStatus[PAF_MAXNUMCHAN] = | ||
818 | { | 826 | { |
819 | IALG_SARAM, | 827 | IALG_SARAM, |
820 | IALG_SARAM, | 828 | IALG_SARAM, |
diff --git a/pa/f/s3/as1-f2-params.h b/pa/f/s3/as1-f2-params.h index c09d145..13bfc8f 100644 --- a/pa/f/s3/as1-f2-params.h +++ b/pa/f/s3/as1-f2-params.h | |||
@@ -89,7 +89,7 @@ typedef struct PAF_MetadataBufStatus { | |||
89 | } PAF_MetadataBufStatus; | 89 | } PAF_MetadataBufStatus; |
90 | 90 | ||
91 | typedef struct PAF_AudioFrameBufStatus { | 91 | typedef struct PAF_AudioFrameBufStatus { |
92 | IALG_MemSpace space[32]; | 92 | IALG_MemSpace space[PAF_MAXNUMCHAN]; |
93 | }PAF_AudioFrameBufStatus; | 93 | }PAF_AudioFrameBufStatus; |
94 | 94 | ||
95 | // | 95 | // |
diff --git a/pa/f/s3/as1-f2.c b/pa/f/s3/as1-f2.c index d4e5723..c4e2d01 100644 --- a/pa/f/s3/as1-f2.c +++ b/pa/f/s3/as1-f2.c | |||
@@ -1392,18 +1392,18 @@ PAF_AST_initFrame0 (const PAF_AST_Params *pP, const PAF_AST_Patchs *pQ, PAF_AST_ | |||
1392 | // | 1392 | // |
1393 | // Initialize meta data elements | 1393 | // Initialize meta data elements |
1394 | // | 1394 | // |
1395 | pC->xStr[z].pAudioFrame->pafBsMetadataUpdate = 0; | 1395 | pC->xStr[z].pAudioFrame->pafBsMetadataUpdate = XDAS_FALSE; |
1396 | pC->xStr[z].pAudioFrame->numPrivateMetadata = 1; | 1396 | pC->xStr[z].pAudioFrame->numPrivateMetadata = 0; |
1397 | pC->xStr[z].pAudioFrame->pafBsMetadata.offset = 2; | 1397 | pC->xStr[z].pAudioFrame->bsMetadata_offset = 0; |
1398 | pC->xStr[z].pAudioFrame->pafBsMetadata.objectAudio = 3; | 1398 | pC->xStr[z].pAudioFrame->bsMetadata_type = PAF_bsMetadata_channelData; |
1399 | pC->xStr[z].pAudioFrame->privateMetadataBufSize = pP->pMetadataBufStatus->bufSize; | ||
1399 | for(i=0;i<pP->pMetadataBufStatus->NumBuf;i++) | 1400 | for(i=0;i<pP->pMetadataBufStatus->NumBuf;i++) |
1400 | { | 1401 | { |
1401 | pC->xStr[z].pAudioFrame->pafPrivateMetadata[i].offset = 0; | 1402 | pC->xStr[z].pAudioFrame->pafPrivateMetadata[i].offset = 0; |
1402 | pC->xStr[z].pAudioFrame->pafPrivateMetadata[i].size = pP->pMetadataBufStatus->bufSize; | 1403 | pC->xStr[z].pAudioFrame->pafPrivateMetadata[i].size = 0; |
1403 | pC->xStr[z].pAudioFrame->pafPrivateMetadata[i].pMdBuf = metadataBuf + pP->pMetadataBufStatus->bufSize*i; | 1404 | pC->xStr[z].pAudioFrame->pafPrivateMetadata[i].pMdBuf = metadataBuf + pP->pMetadataBufStatus->bufSize*i; |
1404 | } | 1405 | } |
1405 | 1406 | ||
1406 | |||
1407 | // | 1407 | // |
1408 | // Initialize decoder elements directly | 1408 | // Initialize decoder elements directly |
1409 | // | 1409 | // |