From 7d39716c56d3ebd4aac43418a85683e6e848d386 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 16 Jan 2025 16:01:36 +0100 Subject: [PATCH 1/4] fix BE issue for 5/10/20 ms rendering in non-JBM --- apps/decoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/decoder.c b/apps/decoder.c index 79c825809e..55fc804e1a 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -2476,7 +2476,7 @@ static ivas_error decodeG192( /* Do object metadata editing here ... */ #ifdef FIX_1217_OBJECT_EDIT_FILE_INTERFACE #ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - do_object_editing( &editableParameters, num_subframes, objectEditFileReader ); + do_object_editing( &editableParameters, IVAS_MAX_PARAM_SPATIAL_SUBFRAMES, objectEditFileReader ); #else do_object_editing( &editableParameters, objectEditFileReader ); #endif -- GitLab From 53b936c3b9cd26a5d17f58e916b7a89c2c930b42 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 20 Jan 2025 18:33:05 +0100 Subject: [PATCH 2/4] rework 'frame' number computation in JBM logic; revert part of NONBE_FIX_1255_OBJ_EDIT_JBM --- apps/decoder.c | 62 +++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 55fc804e1a..9e494d2876 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -202,11 +202,7 @@ static int16_t app_own_random( int16_t *seed ); static IVAS_DEC_FORCED_REND_MODE parseForcedRendModeDec( char *forcedRendModeChar ); #endif #ifdef FIX_1217_OBJECT_EDIT_FILE_INTERFACE -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM -static void do_object_editing( IVAS_EDITABLE_PARAMETERS *editableParameters, const int16_t num_subframes, ObjectEditFileReader *objectEditFileReader ); -#else static void do_object_editing( IVAS_EDITABLE_PARAMETERS *editableParameters, ObjectEditFileReader *objectEditFileReader ); -#endif #else static void do_object_editing( IVAS_EDITABLE_PARAMETERS *editableParameters ); #endif @@ -2475,11 +2471,7 @@ static ivas_error decodeG192( /* Do object metadata editing here ... */ #ifdef FIX_1217_OBJECT_EDIT_FILE_INTERFACE -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - do_object_editing( &editableParameters, IVAS_MAX_PARAM_SPATIAL_SUBFRAMES, objectEditFileReader ); -#else do_object_editing( &editableParameters, objectEditFileReader ); -#endif #else do_object_editing( &editableParameters ); #endif @@ -3055,6 +3047,9 @@ static ivas_error decodeVoIP( int16_t nOutSamples = 0; bool bitstreamReadDone = false; +#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM + bool frameDecodedDone = false; +#endif bool parametersAvailableForEditing = false; uint16_t nSamplesRendered = 0; @@ -3176,6 +3171,9 @@ static ivas_error decodeVoIP( while ( 1 ) { nSamplesRendered = 0; +#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM + frameDecodedDone = false; +#endif /* reference vector */ if ( arg.enableReferenceVectorTracking && vec_pos_update == 0 ) @@ -3290,18 +3288,11 @@ static ivas_error decodeVoIP( #ifdef FIX_1217_OBJECT_EDIT_FILE_INTERFACE if ( arg.objEditEnabled && ( arg.objEditFileName != NULL ) ) { -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - if ( frame * num_subframes % IVAS_MAX_PARAM_SPATIAL_SUBFRAMES == 0 ) + if ( ( error = ObjectEditFileReader_readNextFrame( objectEditFileReader ) ) != IVAS_ERR_OK ) { -#endif - if ( ( error = ObjectEditFileReader_readNextFrame( objectEditFileReader ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nError: could not read object editing instructions from file: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); - return error; - } -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM + fprintf( stderr, "\nError: could not read object editing instructions from file: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); + return error; } -#endif } #endif @@ -3406,11 +3397,7 @@ static ivas_error decodeVoIP( /* Do object metadata editing here ... */ #ifdef FIX_1217_OBJECT_EDIT_FILE_INTERFACE -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - do_object_editing( &editableParameters, num_subframes, objectEditFileReader ); -#else do_object_editing( &editableParameters, objectEditFileReader ); -#endif #else do_object_editing( &editableParameters ); #endif @@ -3422,6 +3409,13 @@ static ivas_error decodeVoIP( return error; } } + +#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM + if ( parametersAvailableForEditing ) + { + frameDecodedDone = true; + } +#endif } /* while ( nSamplesRendered < nOutSamples ) */ /* write JBM Offset file entry */ @@ -3541,12 +3535,26 @@ static ivas_error decodeVoIP( } } +#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM + if ( frameDecodedDone == true ) + { + if ( !arg.quietModeEnabled ) + { + fprintf( stdout, "%-8d\b\b\b\b\b\b\b\b", frame ); + } + + frame++; + } + + vec_pos_update = ( vec_pos_update + 1 ) % vec_pos_len; +#else if ( !arg.quietModeEnabled ) { fprintf( stdout, "%-8d\b\b\b\b\b\b\b\b", frame ); } vec_pos_update = ( vec_pos_update + 1 ) % vec_pos_len; frame++; +#endif if ( vec_pos_update == 0 ) { systemTime_ms += vec_pos_len * systemTimeInc_ms; @@ -3715,9 +3723,6 @@ cleanup: static void do_object_editing( #ifdef FIX_1217_OBJECT_EDIT_FILE_INTERFACE IVAS_EDITABLE_PARAMETERS *editableParameters, -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - const int16_t num_subframes, -#endif ObjectEditFileReader *objectEditFileReader ) #else IVAS_EDITABLE_PARAMETERS *editableParameters ) @@ -3816,12 +3821,7 @@ static void do_object_editing( /* breakover object gains */ for ( obj_idx = 0; obj_idx < editableParameters->num_obj; obj_idx++ ) { -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - editableParameters->ism_metadata[obj_idx].gain = 0.5f + (float) ( ( ( frame * num_subframes / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES ) + obj_idx * 50 ) % 250 ) / 250.0f; - -#else - editableParameters->ism_metadata[obj_idx].gain = 0.5f + (float) ( ( frame + obj_idx * 50 ) % 250 ) / 250.0f; -#endif + editableParameters->ism_metadata[obj_idx].gain = 0.5f + (float) ( ( frame + obj_idx * 50 ) % 250 ) / 250.0f; } editableParameters->gain_bed = 0.5f; -- GitLab From 17afddb870bd59130a2ae3ed73ca18a9fac7beed Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 21 Jan 2025 07:43:54 +0100 Subject: [PATCH 3/4] simplification + fix JBM object editing with file; under NONBE_FIX_1255_OBJ_EDIT_JBM --- apps/decoder.c | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 9e494d2876..f27e0ad720 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -3047,9 +3047,6 @@ static ivas_error decodeVoIP( int16_t nOutSamples = 0; bool bitstreamReadDone = false; -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - bool frameDecodedDone = false; -#endif bool parametersAvailableForEditing = false; uint16_t nSamplesRendered = 0; @@ -3171,9 +3168,6 @@ static ivas_error decodeVoIP( while ( 1 ) { nSamplesRendered = 0; -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - frameDecodedDone = false; -#endif /* reference vector */ if ( arg.enableReferenceVectorTracking && vec_pos_update == 0 ) @@ -3288,11 +3282,18 @@ static ivas_error decodeVoIP( #ifdef FIX_1217_OBJECT_EDIT_FILE_INTERFACE if ( arg.objEditEnabled && ( arg.objEditFileName != NULL ) ) { - if ( ( error = ObjectEditFileReader_readNextFrame( objectEditFileReader ) ) != IVAS_ERR_OK ) +#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM + if ( vec_pos_update == 0 ) { - fprintf( stderr, "\nError: could not read object editing instructions from file: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); - return error; +#endif + if ( ( error = ObjectEditFileReader_readNextFrame( objectEditFileReader ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nError: could not read object editing instructions from file: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); + return error; + } +#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM } +#endif } #endif @@ -3409,13 +3410,6 @@ static ivas_error decodeVoIP( return error; } } - -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - if ( parametersAvailableForEditing ) - { - frameDecodedDone = true; - } -#endif } /* while ( nSamplesRendered < nOutSamples ) */ /* write JBM Offset file entry */ @@ -3536,16 +3530,6 @@ static ivas_error decodeVoIP( } #ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - if ( frameDecodedDone == true ) - { - if ( !arg.quietModeEnabled ) - { - fprintf( stdout, "%-8d\b\b\b\b\b\b\b\b", frame ); - } - - frame++; - } - vec_pos_update = ( vec_pos_update + 1 ) % vec_pos_len; #else if ( !arg.quietModeEnabled ) @@ -3560,6 +3544,17 @@ static ivas_error decodeVoIP( systemTime_ms += vec_pos_len * systemTimeInc_ms; } +#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM + if ( vec_pos_update == 0 ) + { + frame++; + if ( !arg.quietModeEnabled ) + { + fprintf( stdout, "%-8d\b\b\b\b\b\b\b\b", frame ); + } + } +#endif + #ifdef WMOPS update_mem(); update_wmops(); -- GitLab From 7aca4e91665c9b0e014a8933de7433df8d4507ae Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 21 Jan 2025 07:49:05 +0100 Subject: [PATCH 4/4] simplification; under NONBE_FIX_1255_OBJ_EDIT_JBM --- apps/decoder.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index f27e0ad720..0af580515c 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -3280,20 +3280,17 @@ static ivas_error decodeVoIP( } #ifdef FIX_1217_OBJECT_EDIT_FILE_INTERFACE +#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM + if ( arg.objEditEnabled && arg.objEditFileName != NULL && vec_pos_update == 0 ) +#else if ( arg.objEditEnabled && ( arg.objEditFileName != NULL ) ) +#endif { -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM - if ( vec_pos_update == 0 ) + if ( ( error = ObjectEditFileReader_readNextFrame( objectEditFileReader ) ) != IVAS_ERR_OK ) { -#endif - if ( ( error = ObjectEditFileReader_readNextFrame( objectEditFileReader ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nError: could not read object editing instructions from file: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); - return error; - } -#ifdef NONBE_FIX_1255_OBJ_EDIT_JBM + fprintf( stderr, "\nError: could not read object editing instructions from file: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); + return error; } -#endif } #endif -- GitLab