Nuo Mi:
> ---
>  libavcodec/vvc/vvc_ctu.c | 2398 +++++++++++++++++++++++++++++++++++++-
>  libavcodec/vvc/vvc_ctu.h |   11 +
>  2 files changed, 2404 insertions(+), 5 deletions(-)
> 
> diff --git a/libavcodec/vvc/vvc_ctu.c b/libavcodec/vvc/vvc_ctu.c
> index d46a522a0d..a212d3a44a 100644
> --- a/libavcodec/vvc/vvc_ctu.c
> +++ b/libavcodec/vvc/vvc_ctu.c
> @@ -22,8 +22,2379 @@

...

> +static TransformUnit* alloc_tu(VVCFrameContext *fc, CodingUnit *cu)
> +{
> +    TransformUnit *tu;
> +    AVBufferRef *buf = av_buffer_pool_get(fc->tu_pool);
> +    if (!buf)
> +        return NULL;
> +
> +    tu = (TransformUnit *)buf->data;
> +    tu->next = NULL;
> +    tu->buf = buf;
> +
> +    if (cu->tus.tail)
> +        cu->tus.tail->next =  tu;
> +    else
> +        cu->tus.head = tu;
> +    cu->tus.tail = tu;
> +
> +    return tu;
> +}
> +

...

> +static CodingUnit* alloc_cu(VVCLocalContext *lc, const int x0, const int y0)
> +{
> +    VVCFrameContext *fc = lc->fc;
> +    const VVCSPS *sps   = fc->ps.sps;
> +    const VVCPPS *pps   = fc->ps.pps;
> +    const int rx        = x0 >> sps->ctb_log2_size_y;
> +    const int ry        = y0 >> sps->ctb_log2_size_y;
> +    CTU *ctu            = fc->tab.ctus + ry * pps->ctb_width + rx;
> +    CodingUnit *cu;
> +
> +    AVBufferRef *buf = av_buffer_pool_get(fc->cu_pool);
> +    if (!buf)
> +        return NULL;
> +    cu = (CodingUnit *)buf->data;
> +    cu->next = NULL;
> +    cu->buf = buf;

Do I see this correctly that the CodingUnits and TransformUnits are not
refcounted to be shared, but only to use the AVBufferPool API?

Anyway, switching to the (not yet merged) RefStruct pool API simplifies
this (e.g. it will allow to remove the AVBufferRef pointers from the
structures).

> +
> +    if (lc->cu)
> +        lc->cu->next = cu;
> +    else
> +        ctu->cus = cu;
> +    lc->cu = cu;
> +
> +    return cu;
> +}
> +

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to