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 ) {