31 lines
1019 B
Diff
31 lines
1019 B
Diff
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;
|