| Index: silk/enc_API.c
|
| diff --git a/silk/enc_API.c b/silk/enc_API.c
|
| index 44b9ab3591ab4193f925fc4ec42578d7ec50eba9..43739efc24e644984ec3439ac86c8bb923806add 100644
|
| --- a/silk/enc_API.c
|
| +++ b/silk/enc_API.c
|
| @@ -69,6 +69,7 @@ opus_int silk_Get_Encoder_Size( /* O Returns error co
|
| /*************************/
|
| opus_int silk_InitEncoder( /* O Returns error code */
|
| void *encState, /* I/O State */
|
| + int arch, /* I Run-time architecture */
|
| silk_EncControlStruct *encStatus /* O Encoder Status */
|
| )
|
| {
|
| @@ -80,7 +81,7 @@ opus_int silk_InitEncoder( /* O Returns error co
|
| /* Reset encoder */
|
| silk_memset( psEnc, 0, sizeof( silk_encoder ) );
|
| for( n = 0; n < ENCODER_NUM_CHANNELS; n++ ) {
|
| - if( ret += silk_init_encoder( &psEnc->state_Fxx[ n ] ) ) {
|
| + if( ret += silk_init_encoder( &psEnc->state_Fxx[ n ], arch ) ) {
|
| silk_assert( 0 );
|
| }
|
| }
|
| @@ -156,6 +157,11 @@ opus_int silk_Encode( /* O Returns error co
|
| opus_int transition, curr_block, tot_blocks;
|
| SAVE_STACK;
|
|
|
| + if (encControl->reducedDependency)
|
| + {
|
| + psEnc->state_Fxx[0].sCmn.first_frame_after_reset = 1;
|
| + psEnc->state_Fxx[1].sCmn.first_frame_after_reset = 1;
|
| + }
|
| psEnc->state_Fxx[ 0 ].sCmn.nFramesEncoded = psEnc->state_Fxx[ 1 ].sCmn.nFramesEncoded = 0;
|
|
|
| /* Check values in encoder control structure */
|
| @@ -169,7 +175,7 @@ opus_int silk_Encode( /* O Returns error co
|
|
|
| if( encControl->nChannelsInternal > psEnc->nChannelsInternal ) {
|
| /* Mono -> Stereo transition: init state of second channel and stereo state */
|
| - ret += silk_init_encoder( &psEnc->state_Fxx[ 1 ] );
|
| + ret += silk_init_encoder( &psEnc->state_Fxx[ 1 ], psEnc->state_Fxx[ 0 ].sCmn.arch );
|
| silk_memset( psEnc->sStereo.pred_prev_Q13, 0, sizeof( psEnc->sStereo.pred_prev_Q13 ) );
|
| silk_memset( psEnc->sStereo.sSide, 0, sizeof( psEnc->sStereo.sSide ) );
|
| psEnc->sStereo.mid_side_amp_Q0[ 0 ] = 0;
|
| @@ -201,9 +207,8 @@ opus_int silk_Encode( /* O Returns error co
|
| }
|
| /* Reset Encoder */
|
| for( n = 0; n < encControl->nChannelsInternal; n++ ) {
|
| - if( (ret = silk_init_encoder( &psEnc->state_Fxx[ n ] ) ) != 0 ) {
|
| - silk_assert( 0 );
|
| - }
|
| + ret = silk_init_encoder( &psEnc->state_Fxx[ n ], psEnc->state_Fxx[ n ].sCmn.arch );
|
| + silk_assert( !ret );
|
| }
|
| tmp_payloadSize_ms = encControl->payloadSize_ms;
|
| encControl->payloadSize_ms = 10;
|
|
|