Skip to content
  • Yushin Cho's avatar
    [OBU] Start enabing OBU · ce364d12
    Yushin Cho authored and Thomas Daede's avatar Thomas Daede committed
    Enable OBU Headers, also use the most recent code of libaom,
    so that rav1e generated bitstream can be decodable by current version of
    aomdec.
    
    - Add OBU_Type enum
    - write_obu_header() funcion
    - Copy reference av1_pack_bitstream() C code fro libaom, where sequence
      and frame level OBUs are written.
    
    [OBU] Add Sequence Header and revise its functions
    
    [OBU] More on sequence header functions and types
    
    - Revise the type of Sequence struct members.
    - Add write_sequence_header2(), which is modified version of
      write_sequence_header() for OBU.
    - Add new color_config(), i.e. updated color info.
    
    TODO:
    - The structure of OBU is three parts:
    1) OBU header
    2) Size of OBU (written in leb128() format of AV1)
    3) OBU (with specific obu_type signlaed in OBU header)
    
    So, need to figure out how to post-write the size of obu (i.e, payload size) after
    writing obu. In libaom, this is implemented by calling obu_memmove() on byte buffer,
    which moves the obu data by payload size in bytes to create a gap between obu header
    and obu then write a obu size.
    ce364d12