Skip to content
  • Víctor Manuel Jáquez Leal's avatar
    codecs: h264decoder: update max_dpb_frames only if VUI is present · 9ff332e1
    Víctor Manuel Jáquez Leal authored
    There are some streams, with HRD, where the the calculated
    max_dpb_frames is zero (max_dpb_mbs is less than size mb). In order to
    get the dbp size it is required to rely on the VUI parameters if they
    are present.
    
    According to the spec Annex E.2.1
    
    **max_dec_frame_buffering** specifies the required size of the HRD
    decoded picture buffer (DPB) in units of frame buffers.  It is a
    requirement of bitstream conformance that the coded video sequence
    shall not require a decoded picture buffer with size of more than
    Max(1, max_dec_frame_buffering) frame buffers to enable the output of
    decoded pictures at the output times specified by dpb_output_delay of
    the picture timing SEI messages. The value of max_dec_frame_buffering
    shall be greater than or equal to max_num_ref_frames. An upper bound
    for the value of max_dec_frame_buffering is specified by the level
    limits in clauses A.3.1, A.3.2, G.10.2.1, and H.10.2.
    
    When the max_dec_frame_buffering syntax element is not present, the
    value of max_dec_frame_buffering shall be inferred as follows:
    
    – If profile_idc is equal to 44, 86, 100, 110, 122, or 244 and
    constraint_set3_flag is equal to 1, the value of
    max_dec_frame_buffering shall be inferred to be equal to 0.
    
    – Otherwise (profile_idc is not equal to 44, 86, 100, 110, 122, or 244
    or constraint_set3_flag is equal to 0), the value of
    max_dec_frame_buffering shall be inferred to be equal to MaxDpbFrames.
    
    Part-of: <!1381>
    9ff332e1