diff --git a/modules/codec/x265.c b/modules/codec/x265.c index 4c2b585594b2dfcbbef0f9a3e5b47495c2a43e7b..5c5f35e214df28ff80379757688c451e474fccb9 100644 --- a/modules/codec/x265.c +++ b/modules/codec/x265.c @@ -71,6 +71,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; @@ -89,8 +94,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;