From a6fcb73b11fc518dc60495acd408fcaf4c423baa Mon Sep 17 00:00:00 2001 From: Rui Chen Date: Tue, 29 Oct 2024 19:18:20 -0400 Subject: [PATCH] chore: update AviRecord to comply with updated x265 API Some patch ref: https://code.videolan.org/videolan/vlc/-/merge_requests/6167 upstream commit: https://bitbucket.org/multicoreware/x265_git/commits/c69c113960834400545bc4bce2830ff51dcb86b3 Signed-off-by: Rui Chen --- src/drivers/Qt/AviRecord.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/drivers/Qt/AviRecord.cpp b/src/drivers/Qt/AviRecord.cpp index e6a695d9..320cbd53 100644 --- a/src/drivers/Qt/AviRecord.cpp +++ b/src/drivers/Qt/AviRecord.cpp @@ -460,7 +460,14 @@ static int encode_frame( unsigned char *inBuf, int width, int height ) pic->stride[1] = width/2; pic->stride[2] = width/2; +#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; + ret = x265_encoder_encode( hdl, &nal, &i_nal, pic, pics ); +#else ret = x265_encoder_encode( hdl, &nal, &i_nal, pic, &pic_out ); +#endif if ( ret <= 0 ) { @@ -493,7 +500,14 @@ static int close(void) /* Flush delayed frames */ while( hdl != NULL ) { +#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; + ret = x265_encoder_encode( hdl, &nal, &i_nal, pic, pics ); +#else ret = x265_encoder_encode( hdl, &nal, &i_nal, NULL, &pic_out ); +#endif if ( ret <= 0 ) {