Просмотр исходного кода

lavc/vvc_ps: Add alf raw syntax into VVCALF

Signed-off-by: Fei Wang <fei.w.wang@intel.com>
Fei Wang 4 месяцев назад
Родитель
Сommit
a94aa2d61e
2 измененных файлов с 10 добавлено и 1 удалено
  1. 9 1
      libavcodec/vvc/ps.c
  2. 1 0
      libavcodec/vvc/ps.h

+ 9 - 1
libavcodec/vvc/ps.c

@@ -1043,13 +1043,21 @@ static void alf_derive(VVCALF *alf, const H266RawAPS *aps)
     alf_cc(alf, aps);
 }
 
+static void alf_free(FFRefStructOpaque unused, void *obj)
+{
+    VVCALF *alf = obj;
+
+    ff_refstruct_unref(&alf->r);
+}
+
 static int aps_decode_alf(const VVCALF **alf, const H266RawAPS *aps)
 {
-    VVCALF *a = ff_refstruct_allocz(sizeof(*a));
+    VVCALF *a = ff_refstruct_alloc_ext(sizeof(*a), 0, NULL, alf_free);
     if (!a)
         return AVERROR(ENOMEM);
 
     alf_derive(a, aps);
+    ff_refstruct_replace(&a->r, aps);
     ff_refstruct_replace(alf, a);
     ff_refstruct_unref(&a);
 

+ 1 - 0
libavcodec/vvc/ps.h

@@ -169,6 +169,7 @@ typedef struct VVCPH {
 #define ALF_NUM_COEFF_CC         7
 
 typedef struct VVCALF {
+    const H266RawAPS *r;
     int16_t luma_coeff     [ALF_NUM_FILTERS_LUMA][ALF_NUM_COEFF_LUMA];
     uint8_t luma_clip_idx  [ALF_NUM_FILTERS_LUMA][ALF_NUM_COEFF_LUMA];