Loading lib_com/options.h 100644 → 100755 +1 −0 Original line number Diff line number Diff line Loading @@ -155,6 +155,7 @@ #define SBA_AND_OBJECTS #ifdef SBA_AND_OBJECTS #define OSBA_BR_SWITCHING #define FIX_691_OSBA_NULL_META /* FhG: Issue 691: Fix crashes for OSBA with NULL metadata */ #endif /*#define SPLIT_REND_WITH_HEAD_ROT*/ /* Dlb,FhG: Split Rendering contributions 21 and 35 */ Loading lib_dec/ivas_ism_metadata_dec.c +7 −0 Original line number Diff line number Diff line Loading @@ -321,7 +321,11 @@ ivas_error ivas_ism_metadata_dec( } /* read ISM_NO_META class signalling */ #ifdef FIX_691_OSBA_NULL_META if ( ism_mode == ISM_MODE_DISC || ism_mode == ISM_SBA_MODE_DISC ) #else if ( ism_mode == ISM_MODE_DISC ) #endif { for ( ch = 0; ch < *nchan_transport; ch++ ) { Loading Loading @@ -356,6 +360,9 @@ ivas_error ivas_ism_metadata_dec( } } else #endif #ifdef FIX_691_OSBA_NULL_META if ( ism_mode != ISM_SBA_MODE_DISC ) #endif { if ( null_metadata_flag[ch] ) Loading lib_enc/ivas_ism_metadata_enc.c 100755 → 100644 +63 −0 Original line number Diff line number Diff line Loading @@ -375,6 +375,60 @@ ivas_error ivas_ism_metadata_enc( } } #ifdef FIX_691_OSBA_NULL_META /* write ISM metadata flag (one per object) */ for ( ch = 0; ch < nchan_transport; ch++ ) { #ifdef MASA_AND_OBJECTS if ( ism_mode == ISM_MASA_MODE_DISC || ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ ) { /* flags will be written in ivas_masa_encode() */ hIsmMeta[ch]->ism_imp = ism_imp[ch]; hIsmMeta[ch]->ism_md_null_flag = null_metadata_flag[ch]; hIsmMeta[ch]->ism_md_lowrate_flag = lowrate_metadata_flag[ch]; } else { #endif if ( null_metadata_flag[ch] ) { /* signal NULL metadata frame */ push_indice( hBstr, IND_ISM_MD_NULL_FLAG, 1, ISM_METADATA_MD_FLAG_BITS ); /* write the ISM class to ISM_NO_META and again the true ISM class */ if ( ism_mode != ISM_SBA_MODE_DISC ) { push_indice( hBstr, IND_ISM_METADATA_FLAG, ISM_NO_META, ISM_METADATA_FLAG_BITS ); push_indice( hBstr, IND_ISM_MD_INACTIVE_FLAG, ism_imp[ch], ISM_METADATA_FLAG_BITS ); } else { push_indice( hBstr, IND_ISM_METADATA_FLAG, ISM_NO_META, 1 ); } } else if ( ism_mode != ISM_SBA_MODE_DISC ) { push_indice( hBstr, IND_ISM_METADATA_FLAG, ism_imp[ch], ISM_METADATA_FLAG_BITS ); if ( ism_imp[ch] == ISM_NO_META ) { /* signal low-rate ISM_NO_META frame */ push_indice( hBstr, IND_ISM_MD_NULL_FLAG, 0, ISM_METADATA_MD_FLAG_BITS ); /* signal presence of MD in low-rate ISM_NO_META frame */ push_indice( hBstr, IND_ISM_MD_INACTIVE_FLAG, lowrate_metadata_flag[ch], ISM_METADATA_INACTIVE_FLAG_BITS ); } } else /*ism_mode == ISM_SBA_MODE_DISC*/ { /* all objects are considered active*/ push_indice( hBstr, IND_ISM_METADATA_FLAG, 1, 1 ); } #ifdef MASA_AND_OBJECTS } #endif } #else /* write ISM metadata flag (one per object) */ for ( ch = 0; ch < nchan_transport; ch++ ) { Loading Loading @@ -426,6 +480,8 @@ ivas_error ivas_ism_metadata_enc( #endif } #endif if ( ism_metadata_flag_global ) { Loading Loading @@ -703,6 +759,13 @@ ivas_error ivas_ism_metadata_enc( } } } #ifdef FIX_691_OSBA_NULL_META else if ( ism_mode == ISM_SBA_MODE_DISC ) { pop_wmops(); return error; } #endif #ifdef MASA_AND_OBJECTS /*----------------------------------------------------------------* Loading Loading
lib_com/options.h 100644 → 100755 +1 −0 Original line number Diff line number Diff line Loading @@ -155,6 +155,7 @@ #define SBA_AND_OBJECTS #ifdef SBA_AND_OBJECTS #define OSBA_BR_SWITCHING #define FIX_691_OSBA_NULL_META /* FhG: Issue 691: Fix crashes for OSBA with NULL metadata */ #endif /*#define SPLIT_REND_WITH_HEAD_ROT*/ /* Dlb,FhG: Split Rendering contributions 21 and 35 */ Loading
lib_dec/ivas_ism_metadata_dec.c +7 −0 Original line number Diff line number Diff line Loading @@ -321,7 +321,11 @@ ivas_error ivas_ism_metadata_dec( } /* read ISM_NO_META class signalling */ #ifdef FIX_691_OSBA_NULL_META if ( ism_mode == ISM_MODE_DISC || ism_mode == ISM_SBA_MODE_DISC ) #else if ( ism_mode == ISM_MODE_DISC ) #endif { for ( ch = 0; ch < *nchan_transport; ch++ ) { Loading Loading @@ -356,6 +360,9 @@ ivas_error ivas_ism_metadata_dec( } } else #endif #ifdef FIX_691_OSBA_NULL_META if ( ism_mode != ISM_SBA_MODE_DISC ) #endif { if ( null_metadata_flag[ch] ) Loading
lib_enc/ivas_ism_metadata_enc.c 100755 → 100644 +63 −0 Original line number Diff line number Diff line Loading @@ -375,6 +375,60 @@ ivas_error ivas_ism_metadata_enc( } } #ifdef FIX_691_OSBA_NULL_META /* write ISM metadata flag (one per object) */ for ( ch = 0; ch < nchan_transport; ch++ ) { #ifdef MASA_AND_OBJECTS if ( ism_mode == ISM_MASA_MODE_DISC || ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ ) { /* flags will be written in ivas_masa_encode() */ hIsmMeta[ch]->ism_imp = ism_imp[ch]; hIsmMeta[ch]->ism_md_null_flag = null_metadata_flag[ch]; hIsmMeta[ch]->ism_md_lowrate_flag = lowrate_metadata_flag[ch]; } else { #endif if ( null_metadata_flag[ch] ) { /* signal NULL metadata frame */ push_indice( hBstr, IND_ISM_MD_NULL_FLAG, 1, ISM_METADATA_MD_FLAG_BITS ); /* write the ISM class to ISM_NO_META and again the true ISM class */ if ( ism_mode != ISM_SBA_MODE_DISC ) { push_indice( hBstr, IND_ISM_METADATA_FLAG, ISM_NO_META, ISM_METADATA_FLAG_BITS ); push_indice( hBstr, IND_ISM_MD_INACTIVE_FLAG, ism_imp[ch], ISM_METADATA_FLAG_BITS ); } else { push_indice( hBstr, IND_ISM_METADATA_FLAG, ISM_NO_META, 1 ); } } else if ( ism_mode != ISM_SBA_MODE_DISC ) { push_indice( hBstr, IND_ISM_METADATA_FLAG, ism_imp[ch], ISM_METADATA_FLAG_BITS ); if ( ism_imp[ch] == ISM_NO_META ) { /* signal low-rate ISM_NO_META frame */ push_indice( hBstr, IND_ISM_MD_NULL_FLAG, 0, ISM_METADATA_MD_FLAG_BITS ); /* signal presence of MD in low-rate ISM_NO_META frame */ push_indice( hBstr, IND_ISM_MD_INACTIVE_FLAG, lowrate_metadata_flag[ch], ISM_METADATA_INACTIVE_FLAG_BITS ); } } else /*ism_mode == ISM_SBA_MODE_DISC*/ { /* all objects are considered active*/ push_indice( hBstr, IND_ISM_METADATA_FLAG, 1, 1 ); } #ifdef MASA_AND_OBJECTS } #endif } #else /* write ISM metadata flag (one per object) */ for ( ch = 0; ch < nchan_transport; ch++ ) { Loading Loading @@ -426,6 +480,8 @@ ivas_error ivas_ism_metadata_enc( #endif } #endif if ( ism_metadata_flag_global ) { Loading Loading @@ -703,6 +759,13 @@ ivas_error ivas_ism_metadata_enc( } } } #ifdef FIX_691_OSBA_NULL_META else if ( ism_mode == ISM_SBA_MODE_DISC ) { pop_wmops(); return error; } #endif #ifdef MASA_AND_OBJECTS /*----------------------------------------------------------------* Loading