[FFmpeg-devel] [PATCH v2 1/6] avcodec/cbs: Factor out common code for writing units

Mark Thompson sw at jkqxz.net
Mon Nov 18 01:50:36 EET 2019


On 17/11/2019 07:34, Andreas Rheinhardt wrote:
> 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: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
>  libavcodec/cbs.c          | 64 ++++++++++++++++++++++++++++++++++---
>  libavcodec/cbs.h          |  7 ++++
>  libavcodec/cbs_av1.c      | 59 +++-------------------------------
>  libavcodec/cbs_av1.h      |  4 ---
>  libavcodec/cbs_h2645.c    | 67 ++-------------------------------------
>  libavcodec/cbs_h2645.h    |  7 ----
>  libavcodec/cbs_internal.h |  6 ++--
>  libavcodec/cbs_jpeg.c     | 64 +++----------------------------------
>  libavcodec/cbs_jpeg.h     |  7 ----
>  libavcodec/cbs_mpeg2.c    | 62 +++---------------------------------
>  libavcodec/cbs_mpeg2.h    |  4 ---
>  libavcodec/cbs_vp9.c      | 61 ++++++-----------------------------
>  libavcodec/cbs_vp9.h      |  4 --->  13 files changed, 94 insertions(+), 322 deletions(-)

Beautiful, applied :)

Thanks!

- Mark


More information about the ffmpeg-devel mailing list