Commit eb72f4e6 authored by Jan Kiene's avatar Jan Kiene
Browse files

align with float + conversion from nano to mili

parent 56a88087
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -191,7 +191,7 @@ typedef struct
    float lfeConfigElevation;
    bool lfeCustomRoutingEnabled;
    char inLfePanningMatrixFile[RENDERER_MAX_CLI_ARG_LENGTH];
    float syncMdDelay;
    int16_t syncMdDelay;
    IVAS_RENDER_FRAMESIZE render_framesize;
    uint16_t directivityPatternId[RENDERER_MAX_ISM_INPUTS];
    AcousticEnvironmentSequence aeSequence;
@@ -1278,7 +1278,7 @@ int main(
            fprintf( stderr, "\nError in IVAS_REND_SetTotalNumberOfObjects(): %s\n", ivas_error_to_string( error ) );
            goto cleanup;
        }
        Word32 var1 = (Word32) ( args.syncMdDelay );
        Word16 var1 = (Word16) ( args.syncMdDelay );
        IF( ( error = IVAS_REND_SetIsmMetadataDelay( hIvasRend, var1 ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError in IVAS_REND_SetIsmMetadataDelay(): %s\n", ivas_error_to_string( error ) );
@@ -2123,7 +2123,7 @@ int main(
    if ( args.inConfig.numAudioObjects != 0 &&
         ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL || args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) )
    {
        fprintf( stdout, "\n\nMetadata delayed %d subframes\n\n", (int16_t) round( args.syncMdDelay / ( 1000 / IVAS_NUM_FRAMES_PER_SEC / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES ) ) );
        fprintf( stdout, "\n\nMetadata delayed %d subframes\n\n", (int16_t) round( args.syncMdDelay / ( float BINAURAL_RENDERING_FRAME_SIZE_MS ) ) );
    }

    if ( !args.quietModeEnabled && args.delayCompensationEnabled )
@@ -3023,7 +3023,7 @@ static void parseOption(
        case CmdLnOptionId_syncMdDelay:
            assert( numOptionValues == 1 );
            /* Metadata Delay to sync with audio delay in ms */
            args->syncMdDelay = strtof( optionValues[0], NULL );
            args->syncMdDelay = (int16_t) strtol( optionValues[0], NULL, 10 );
            break;
        default:
            assert( 0 && "This should be unreachable - all command line options should be explicitly handled." );
+8 −4
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@
#include "ivas_rom_com.h"
#include "ivas_rom_rend.h"
#include "stl.h"
#include "typedef.h"
#include <assert.h>
#include <math.h>
#include <stdbool.h>
@@ -137,7 +138,7 @@ typedef struct
#ifdef NONBE_1377_REND_DIRATT_CONF
    Word16 object_id;
#endif
    Word32 ism_metadata_delay_ms_fx; /* Q0 */
    Word16 ism_metadata_delay_ms_fx; /* Q0 */
} input_ism;

typedef struct
@@ -1674,8 +1675,11 @@ static ivas_error alignInputDelay(
            /* for ISM inputs, ensure the metadata sync delay is updated */
            IF( getAudioConfigType( inputBase->inConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED )
            {
                Word64 tmp;
                inputIsm = (input_ism *) inputBase;
                inputIsm->ism_metadata_delay_ms_fx = Mpy_32_32( maxGlobalDelayNs /* Q0 */, 2147 /* (1 / 1e6f) in Q31 */ );

                tmp = W_mult0_32_32( L_add( maxGlobalDelayNs, 500000 ) /* + 0.5ms for rounding */, /* Q0 */, 2147 /* (1 / 1e6f) in Q31 */ ); // Q31
                inputIsm->ism_metadata_delay_ms_fx = add( inputIsm->ism_metadata_delay_ms_fx, extract_h( W_extract_h( tmp ) ) );
            }
        }
    }
@@ -9053,7 +9057,7 @@ ivas_error IVAS_REND_SetTotalNumberOfObjects(

ivas_error IVAS_REND_SetIsmMetadataDelay(
    IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS renderer handle                                */
    const Word32 sync_md_delay  /* i  : ISM Metadata Delay in ms to sync with audio delay   */
    const Word16 sync_md_delay  /* i  : ISM Metadata Delay in ms to sync with audio delay   */
)
{
    Word16 i;
@@ -9065,7 +9069,7 @@ ivas_error IVAS_REND_SetIsmMetadataDelay(
    FOR( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i )
    {
        hIvasRend->inputsIsm[i].ism_metadata_delay_ms_fx = sync_md_delay;
        move32();
        move16();
    }

    return IVAS_ERR_OK;