bool VvcHrdUnit::ols_timing_hrd_parameters(int firstSubLayer, int MaxSubLayersVal)
{
    for (int i = firstSubLayer; i <= MaxSubLayersVal; i++)
    {
        bool fixed_pic_rate_within_cvs_flag =
            m_reader.getBit() /* fixed_pic_rate_general_flag) */ ? 1 : m_reader.getBit();
        if (fixed_pic_rate_within_cvs_flag)
        {
            if (extractUEGolombCode() > 2047)  // elemental_duration_in_tc_minus1
                return 1;
        }
        else if ((general_nal_hrd_params_present_flag || general_vcl_hrd_params_present_flag) &&
                 hrd_cpb_cnt_minus1 == 0)
            m_reader.skipBit();  // low_delay_hrd_flag
        if (general_nal_hrd_params_present_flag)
            sublayer_hrd_parameters(i);
        if (general_vcl_hrd_params_present_flag)
            sublayer_hrd_parameters(i);
    }
    return 0;
}
bool VvcHrdUnit::ols_timing_hrd_parameters(int firstSubLayer, int MaxSubLayersVal)
{
    for (int i = firstSubLayer; i <= MaxSubLayersVal; i++)
    {
        bool fixed_pic_rate_within_cvs_flag =
            m_reader.getBit()   ? 1 : m_reader.getBit();
        if (fixed_pic_rate_within_cvs_flag)
        {
            if (extractUEGolombCode() > 2047)   
                return 1;
        }
        else if ((general_nal_hrd_params_present_flag || general_vcl_hrd_params_present_flag) &&
                 hrd_cpb_cnt_minus1 == 0)
            m_reader.skipBit();   
        if (general_nal_hrd_params_present_flag)
            sublayer_hrd_parameters(i);
        if (general_vcl_hrd_params_present_flag)
            sublayer_hrd_parameters(i);
    }
    return 0;
}