Opened 3 years ago

Closed 3 years ago

#1546 closed defect (fixed)

Incorrect range for m_cpbRemovalDelayDelta

Reported by: kerzhy Owned by:
Priority: minor Milestone: VTM-16.1
Component: VTM Version: VTM-16.0
Keywords: sei Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…, jvet@…

Description

In spec the bp_cpb_removal_delay_delta_val[ i ] is defined as:

for( i = 0; i <= bp_num_cpb_removal_delay_deltas_minus1; i++ )
    bp_cpb_removal_delay_delta_val[ i ]

We see from definition of bp_num_cpb_removal_delay_deltas_minus1 that bp_cpb_removal_delay_delta_val max size is equal to 16.

But in VTM we found:

    sei_read_uvlc( pDecodedMessageOutputStream, code, "num_cpb_removal_delay_deltas_minus1" );               sei.m_numCpbRemovalDelayDeltas = code + 1;
    for( i = 0; i < sei.m_numCpbRemovalDelayDeltas; i ++ )
    {
      sei_read_code( pDecodedMessageOutputStream, ( sei.m_cpbRemovalDelayLength ), code, "cpb_removal_delay_delta[i]" );
      sei.m_cpbRemovalDelayDelta[ i ] = code;
    }

where m_cpbRemovalDelayDelta defined as

  uint32_t m_cpbRemovalDelayDelta    [15];

So there can happen a situation when m_numCpbRemovalDelayDeltas = 16 and only 15 "cells" for m_cpbRemovalDelayDelta, which will cause error.

Change history (2)

comment:1 Changed 3 years ago by kerzhy

Version 0, edited 3 years ago by kerzhy (next)

comment:2 Changed 3 years ago by XiangLi

  • Milestone set to VTM-16.1
  • Resolution set to fixed
  • Status changed from new to closed

Fixed as suggested.

Note: See TracTickets for help on using tickets.