From e18a00d96a266217a6780e584ce6d5759a96e7bd Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Mon, 13 Jan 2025 10:35:07 +0100 Subject: [PATCH] x265: fix API signature with x265 4.1 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 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/codec/x265.c b/modules/codec/x265.c index 50fe3285..9c3c2311 100644 --- a/modules/codec/x265.c +++ b/modules/codec/x265.c @@ -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 -- 2.30.2