codec: x265: handle 4.0 encoding API change
authorFrançois Cartegnie <fcvlcdev@free.fr>
Tue, 24 Sep 2024 11:53:11 +0000 (18:53 +0700)
committerSebastian Ramacher <sramacher@debian.org>
Tue, 21 Jan 2025 18:02:47 +0000 (19:02 +0100)
refs #28799

(cherry picked from commit 83e2c3955a563b60f74f05cea57e3ab5f447c8fb)

Gbp-Pq: Name 0077-codec-x265-handle-4.0-encoding-API-change.patch

modules/codec/x265.c

index 2943ea6e9f275df5ed3cee6b548bafda07b1b51c..50fe3285a31b5994eb772ccaf97d7a9de3b70c1a 100644 (file)
@@ -74,6 +74,11 @@ static block_t *Encode(encoder_t *p_enc, picture_t *p_pict)
     x265_picture pic;
 
     x265_picture_init(&p_sys->param, &pic);
+#ifdef MAX_SCALABLE_LAYERS
+    /* Handle API changes for scalable layers output in x265 4.0 */
+    x265_picture *pics[MAX_SCALABLE_LAYERS] = {NULL};
+    pics[0] = &pic;
+#endif
 
     if (likely(p_pict)) {
         pic.pts = p_pict->date;
@@ -92,8 +97,13 @@ static block_t *Encode(encoder_t *p_enc, picture_t *p_pict)
 
     x265_nal *nal;
     uint32_t i_nal = 0;
+#ifdef MAX_SCALABLE_LAYERS
+    x265_encoder_encode(p_sys->h, &nal, &i_nal,
+                        likely(p_pict) ? &pic : NULL, pics);
+#else
     x265_encoder_encode(p_sys->h, &nal, &i_nal,
             likely(p_pict) ? &pic : NULL, &pic);
+#endif
 
     if (!i_nal)
         return NULL;