Commit 5f0ffc06 authored by emerit's avatar emerit
Browse files

Merge branch 'update_crend' of https://forge.3gpp.org/rep/sa4/audio/ivas-basop into update_crend

parents 98a6bef1 eed94408
Loading
Loading
Loading
Loading
+156 −5
Original line number Diff line number Diff line
@@ -247,10 +247,12 @@ static void ivas_binRenderer_filterModule_fx(
 * Open convolution module handle of fastconv binaural renderer
 *-------------------------------------------------------------------------*/
#ifdef IVAS_FLOAT_FIXED
#ifndef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
#define NUM_TAPS_F0_6 ( Word16 )( 58 ) // (int16_t) ceil( 0.6f * hBinRenConvModule->numTaps )
#define NUM_TAPS_F0_5 ( Word16 )( 48 ) // (int16_t) ceil( 0.5f * hBinRenConvModule->numTaps )
#define NUM_TAPS_F0_4 ( Word16 )( 39 ) // (int16_t) ceil( 0.4f * hBinRenConvModule->numTaps )
#define NUM_TAPS_F0_3 ( Word16 )( 29 ) // (int16_t) ceil( 0.3f * hBinRenConvModule->numTaps )
#endif

static ivas_error ivas_binRenderer_convModuleOpen(
    BINAURAL_RENDERER_HANDLE hBinRenderer,
@@ -284,7 +286,11 @@ static ivas_error ivas_binRenderer_convModuleOpen(

    IF( EQ_16( renderer_type, RENDERER_BINAURAL_FASTCONV_ROOM ) )
    {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
        hBinRenConvModule->numTaps = hHrtf->ntaps_brir;
#else
        hBinRenConvModule->numTaps = BINAURAL_NTAPS_MAX;
#endif
        move16();

        /* Use variable order filtering */
@@ -297,22 +303,38 @@ static ivas_error ivas_binRenderer_convModuleOpen(
        }
        FOR( ; bandIdx < 10; bandIdx++ )
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            hBinRenConvModule->numTapsArray[bandIdx] = ( ( hBinRenConvModule->numTaps - 1 ) * 6 ) / 10 + 1;
#else
            hBinRenConvModule->numTapsArray[bandIdx] = NUM_TAPS_F0_6;
#endif
            move16();
        }
        FOR( ; bandIdx < 20; bandIdx++ )
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            hBinRenConvModule->numTapsArray[bandIdx] = ( ( hBinRenConvModule->numTaps - 1 ) * 5 ) / 10 + 1;
#else
            hBinRenConvModule->numTapsArray[bandIdx] = NUM_TAPS_F0_5;
#endif
            move16();
        }
        FOR( ; bandIdx < 30; bandIdx++ )
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            hBinRenConvModule->numTapsArray[bandIdx] = ( ( hBinRenConvModule->numTaps - 1 ) * 4 ) / 10 + 1;
#else
            hBinRenConvModule->numTapsArray[bandIdx] = NUM_TAPS_F0_4;
#endif
            move16();
        }
        FOR( ; bandIdx < hBinRenderer->conv_band; bandIdx++ )
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            hBinRenConvModule->numTapsArray[bandIdx] = ( ( hBinRenConvModule->numTaps - 1 ) * 3 ) / 10 + 1;
#else
            hBinRenConvModule->numTapsArray[bandIdx] = NUM_TAPS_F0_3;
#endif
            move16();
        }
    }
@@ -320,12 +342,35 @@ static ivas_error ivas_binRenderer_convModuleOpen(
    {
        IF( EQ_16( hBinRenderer->ivas_format, SBA_FORMAT ) )
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            IF( EQ_16( input_config, IVAS_AUDIO_CONFIG_HOA3 ) )
            {
                hBinRenConvModule->numTaps = hHrtf->ntaps_hrir_hoa3;
            }
            ELSE IF( EQ_16( input_config, IVAS_AUDIO_CONFIG_HOA2 ) )
            {
                hBinRenConvModule->numTaps = hHrtf->ntaps_hrir_hoa2;
            }
            ELSE IF( EQ_16( input_config, IVAS_AUDIO_CONFIG_FOA ) )
            {
                hBinRenConvModule->numTaps = hHrtf->ntaps_hrir_foa;
            }
            ELSE
            {
                return IVAS_ERR_INVALID_INPUT_FORMAT;
            }
#else
            hBinRenConvModule->numTaps = BINAURAL_NTAPS_SBA;
#endif
            move16();
        }
        ELSE
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            hBinRenConvModule->numTaps = hHrtf->ntaps_hrir;
#else
            hBinRenConvModule->numTaps = BINAURAL_NTAPS;
#endif
            move16();
        }

@@ -919,6 +964,13 @@ void ivas_init_binaural_hrtf_fx(

    HrtfFastConv->allocate_init_flag = 0;
    move16();
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
    HrtfFastConv->ntaps_hrir = BINAURAL_NTAPS;
    HrtfFastConv->ntaps_hrir_foa = BINAURAL_NTAPS_SBA;
    HrtfFastConv->ntaps_hrir_hoa2 = BINAURAL_NTAPS_SBA;
    HrtfFastConv->ntaps_hrir_hoa3 = BINAURAL_NTAPS_SBA;
    HrtfFastConv->ntaps_brir = BINAURAL_NTAPS_MAX;
#endif

    FOR( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ )
    {
@@ -1110,6 +1162,24 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
        }
        ELSE
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRReal_HOA3_fx, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRImag_HOA3_fx, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA3" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightHRIRReal_HOA3_fx, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA3" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightHRIRImag_HOA3_fx, BINAURAL_CONVBANDS, HOA3_CHANNELS, HrtfFastConv->ntaps_hrir_hoa3, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" );
            }
#else
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRReal_HOA3_fx, BINAURAL_CONVBANDS, HOA3_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA3" );
@@ -1126,6 +1196,7 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA3" );
            }
#endif
        }
    }

@@ -1141,6 +1212,24 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
        }
        ELSE
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRReal_HOA2_fx, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRImag_HOA2_fx, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_HOA2" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightHRIRReal_HOA2_fx, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_HOA2" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightHRIRImag_HOA2_fx, BINAURAL_CONVBANDS, HOA2_CHANNELS, HrtfFastConv->ntaps_hrir_hoa2, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" );
            }
#else
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRReal_HOA2_fx, BINAURAL_CONVBANDS, HOA2_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_HOA2" );
@@ -1157,6 +1246,7 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_HOA2" );
            }
#endif
        }
    }

@@ -1172,6 +1262,24 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
        }
        ELSE
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRReal_FOA_fx, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRImag_FOA_fx, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag_FOA" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightHRIRReal_FOA_fx, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal_FOA" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightHRIRImag_FOA_fx, BINAURAL_CONVBANDS, FOA_CHANNELS, HrtfFastConv->ntaps_hrir_foa, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" );
            }
#else
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRReal_FOA_fx, BINAURAL_CONVBANDS, FOA_CHANNELS, BINAURAL_NTAPS_SBA, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal_FOA" );
@@ -1188,6 +1296,7 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag_FOA" );
            }
#endif
        }
    }

@@ -1203,6 +1312,24 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
        }
        ELSE
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRReal_fx, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRImag_fx, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRImag" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightHRIRReal_fx, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRReal" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightHRIRImag_fx, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_hrir, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag" );
            }
#else
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftHRIRReal_fx, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftHRIRReal" );
@@ -1219,6 +1346,7 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightHRIRImag" );
            }
#endif
        }
    }

@@ -1234,6 +1362,24 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
        }
        ELSE
        {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftBRIRReal_fx, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRReal" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftBRIRImag_fx, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRImag" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightBRIRReal_fx, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRReal" );
            }
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->rightBRIRImag_fx, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, HrtfFastConv->ntaps_brir, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRImag" );
            }
#else
            IF( NE_32( IVAS_ERR_OK, ivas_alloc_pppMem_fx( &HrtfFastConv->leftBRIRReal_fx, BINAURAL_CONVBANDS, HRTF_LS_CHANNELS, BINAURAL_NTAPS_MAX, allocate_init_flag ) ) )
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for leftBRIRReal" );
@@ -1250,6 +1396,7 @@ ivas_error ivas_allocate_binaural_hrtf_fx(
            {
                return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for rightBRIRImag" );
            }
#endif
        }
    }

@@ -1494,7 +1641,11 @@ static ivas_error ivas_binaural_hrtf_open_fx(
#endif
        }

#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
        HrtfFastConv->allocate_init_flag = 0; /* TODO: consider getting rid of this flag entirely? */
#else
        HrtfFastConv->allocate_init_flag = 1;
#endif
        move16();

        IF( NE_32( ( error = ivas_allocate_binaural_hrtf_fx( HrtfFastConv, input_config, BINAURAL_INPUT_AUDIO_CONFIG_INVALID, renderer_type, HrtfFastConv->allocate_init_flag ) ), IVAS_ERR_OK ) )
@@ -1508,7 +1659,7 @@ static ivas_error ivas_binaural_hrtf_open_fx(
                FOR( j = 0; j < HRTF_LS_CHANNELS; j++ )
                {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
                    FOR( k = 0; k < BINAURAL_NTAPS; k++ )
                    FOR( k = 0; k < HrtfFastConv->ntaps_hrir; k++ )
                    {
                        HrtfFastConv->leftHRIRReal_fx[i][j][k] = (Word16) leftHRIRReal[i][j][k];
                        HrtfFastConv->leftHRIRImag_fx[i][j][k] = (Word16) leftHRIRImag[i][j][k];
@@ -1528,7 +1679,7 @@ static ivas_error ivas_binaural_hrtf_open_fx(
                FOR( j = 0; j < HRTF_LS_CHANNELS; j++ )
                {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
                    FOR( k = 0; k < BINAURAL_NTAPS; k++ )
                    FOR( k = 0; k < HrtfFastConv->ntaps_brir; k++ )
                    {
                        HrtfFastConv->leftBRIRReal_fx[i][j][k] = (Word16) leftBRIRReal[i][j][k];
                        HrtfFastConv->leftBRIRImag_fx[i][j][k] = (Word16) leftBRIRImag[i][j][k];
@@ -1548,7 +1699,7 @@ static ivas_error ivas_binaural_hrtf_open_fx(
                FOR( j = 0; j < HOA3_CHANNELS; j++ )
                {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
                    FOR( k = 0; k < BINAURAL_NTAPS; k++ )
                    FOR( k = 0; k < HrtfFastConv->ntaps_hrir_hoa3; k++ )
                    {
                        HrtfFastConv->leftHRIRReal_HOA3_fx[i][j][k] = (Word16) leftHRIRReal_HOA3[i][j][k];
                        HrtfFastConv->leftHRIRImag_HOA3_fx[i][j][k] = (Word16) leftHRIRImag_HOA3[i][j][k];
@@ -1568,7 +1719,7 @@ static ivas_error ivas_binaural_hrtf_open_fx(
                FOR( j = 0; j < HOA2_CHANNELS; j++ )
                {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
                    FOR( k = 0; k < BINAURAL_NTAPS; k++ )
                    FOR( k = 0; k < HrtfFastConv->ntaps_hrir_hoa2; k++ )
                    {
                        HrtfFastConv->leftHRIRReal_HOA2_fx[i][j][k] = (Word16) leftHRIRReal_HOA2[i][j][k];
                        HrtfFastConv->leftHRIRImag_HOA2_fx[i][j][k] = (Word16) leftHRIRImag_HOA2[i][j][k];
@@ -1588,7 +1739,7 @@ static ivas_error ivas_binaural_hrtf_open_fx(
                FOR( j = 0; j < FOA_CHANNELS; j++ )
                {
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
                    FOR( k = 0; k < BINAURAL_NTAPS; k++ )
                    FOR( k = 0; k < HrtfFastConv->ntaps_hrir_foa; k++ )
                    {
                        HrtfFastConv->leftHRIRReal_FOA_fx[i][j][k] = (Word16) leftHRIRReal_FOA[i][j][k];
                        HrtfFastConv->leftHRIRImag_FOA_fx[i][j][k] = (Word16) leftHRIRImag_FOA[i][j][k];
+7 −0
Original line number Diff line number Diff line
@@ -2401,6 +2401,13 @@ typedef struct ivas_hrtfs_fastconv_struct
#endif

    int16_t allocate_init_flag; /*Memory allocation flag 0: if the hrtf pointers are allocated at application level , 1: of allocated at ivas_binaural_hrtf_open() */
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
    uint16_t ntaps_hrir;
    uint16_t ntaps_hrir_foa;
    uint16_t ntaps_hrir_hoa2;
    uint16_t ntaps_hrir_hoa3;
    uint16_t ntaps_brir;
    #endif

#ifdef IVAS_FLOAT_FIXED
#ifdef FIX_1123_FASTCONV_PARAMBIN_16BIT_ROM
+302 −221

File changed.

Preview size limit exceeded, changes collapsed.