x265: fix API signature with x265 4.1
authorSteve Lhomme <robux4@ycbcr.xyz>
Mon, 13 Jan 2025 09:35:07 +0000 (10:35 +0100)
committerSebastian Ramacher <sramacher@debian.org>
Tue, 21 Jan 2025 18:02:47 +0000 (19:02 +0100)
They changed the API in c69c113960834400545bc4bce2830ff51dcb86b3
And then reverted it in
78e5b703b186fe184bf91bb37df82f64059b3f61

The X265_BUILD is how you can tell the x265 version(s). But they didn't change
the values in these commits.

- X265_BUILD was 210 when the API was changed
- X265_BUILD was 214 when the API was reverted

Gbp-Pq: Name 0125-x265-fix-API-signature-with-x265-4.1.patch

modules/codec/x265.c

index 50fe3285a31b5994eb772ccaf97d7a9de3b70c1a..9c3c2311c4f35d0743ea15311fa5171e5284868c 100644 (file)
@@ -39,6 +39,9 @@
 #ifndef X265_MAX_FRAME_THREADS
 # define X265_MAX_FRAME_THREADS 16
 #endif
+#if X265_BUILD > 210 && X265_BUILD <= 214
+#define X265_OUTPUT_ARRAY 1
+#endif
 
 /*****************************************************************************
  * Module descriptor
@@ -74,7 +77,7 @@ 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
+#ifdef X265_OUTPUT_ARRAY
     /* Handle API changes for scalable layers output in x265 4.0 */
     x265_picture *pics[MAX_SCALABLE_LAYERS] = {NULL};
     pics[0] = &pic;
@@ -97,7 +100,7 @@ static block_t *Encode(encoder_t *p_enc, picture_t *p_pict)
 
     x265_nal *nal;
     uint32_t i_nal = 0;
-#ifdef MAX_SCALABLE_LAYERS
+#ifdef X265_OUTPUT_ARRAY
     x265_encoder_encode(p_sys->h, &nal, &i_nal,
                         likely(p_pict) ? &pic : NULL, pics);
 #else