Commit 8e60e494 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

implement SBA-gain editing in stereo output

parent 1df6a72f
Loading
Loading
Loading
Loading
Loading
+31 −4
Original line number Diff line number Diff line
@@ -1254,11 +1254,38 @@ ivas_error ivas_jbm_dec_render(
                ivas_ism_render_sf( st_ivas, st_ivas->renderer_type, p_output, *nSamplesRendered );

                /* add already rendered SBA part */
#ifdef OBJ_EDITING_API
				if (st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC)
				{
					float gain = st_ivas->hSbaIsmData->gain_bed;
					if ( gain != 1.0f && gain >= 0.0f )
					{
						int16_t i;
						for (n = 0; n < nchan_out; n++)
						{
							for (i = 0; i < *nSamplesRendered; i++)
							{
								p_output[n][i] += p_tc[n + st_ivas->nchan_ism][i] * gain;
							}
						}
					}
					else
					{
						for (n = 0; n < nchan_out; n++)
						{
							v_add(p_output[n], p_tc[n + st_ivas->nchan_ism], p_output[n], *nSamplesRendered);
						}
					}
				}
				else
#endif
				{
					for ( n = 0; n < nchan_out; n++ )
					{
						v_add( p_output[n], p_tc[n + st_ivas->nchan_ism], p_output[n], *nSamplesRendered );
					}
				}
            }
            else if ( st_ivas->renderer_type == RENDERER_OSBA_AMBI || st_ivas->renderer_type == RENDERER_OSBA_LS || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM )
            {
                if ( ( error = ivas_osba_render_sf( st_ivas, nSamplesAskedLocal, nSamplesRendered, nSamplesAvailableNext, p_output ) ) != IVAS_ERR_OK )