Commit 25620147 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

fix bitstream mismatch in HO-DirAC modes

parent e9a97b69
Loading
Loading
Loading
Loading
Loading
+37 −14
Original line number Diff line number Diff line
@@ -199,6 +199,28 @@ int16_t ivas_qmetadata_dec_decode(

    bits_diff_sum += ivas_qmetadata_entropy_decode_diffuseness( bitstream, index, &( hQMetaData->q_direction[0] ), &diffuseness_index_max_ec_frame_pre[0] );

#ifdef HODIRAC
    if ( hodirac )
    {
        if ( hQMetaData->no_directions == 2 )
        {
            /* Calculate bits for dfRatio */
            dir2band = 0;
            for ( b = hQMetaData->q_direction[0].cfg.start_band; b < hQMetaData->q_direction[0].cfg.nbands; b++ )
            {
                if ( hQMetaData->twoDirBands[b] == 1 )
                {
                    dfRatio_bits[dir2band] = ivas_get_df_ratio_bits_hodirac( hQMetaData->q_direction[0].band_data[b].energy_ratio_index[0] );
                    dir2band++;
                }
            }

            bits_diff_sum += ivas_qmetadata_entropy_decode_df_ratio( bitstream, index, &( hQMetaData->q_direction[1] ), dfRatio_bits );
        }
    }
    else
#endif
    {
        if ( hQMetaData->no_directions == 2 )
        {
            /* Calculate bits for dfRatio */
@@ -214,6 +236,7 @@ int16_t ivas_qmetadata_dec_decode(

            bits_diff_sum += ivas_qmetadata_entropy_decode_df_ratio( bitstream, index, &( hQMetaData->q_direction[1] ), dfRatio_bits );
        }
    }

    /* Calculate direct-to-total energy ratios for both directions from diffuse-to-total ratio and distribution factor of direct-to-total ratios */
    if ( hQMetaData->no_directions == 2 )