• Andreas Rheinhardt's avatar
    avcodec/cbs: Factor out common code for writing units · 7c92eaac
    Andreas Rheinhardt authored
    All cbs-functions to write units share a common pattern:
    1. They check whether they have a write buffer (that is used to store
    the unit's data until the needed size becomes known after writing the
    unit when a dedicated buffer will be allocated).
    2. They use this buffer for a PutBitContext.
    3. The (codec-specific) writing takes place through the PutBitContext.
    4. The return value is checked. AVERROR(ENOSPC) here always indicates
    that the buffer was too small and leads to a reallocation of said
    buffer.
    5. The final buffer will be allocated and the data copied.
    
    This commit factors this common code out in a single function in cbs.c.
    Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
    7c92eaac
cbs_av1.c 36.4 KB