Signed-off-by: Brad Hards <[email protected]>
---
libavcodec/libx265.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index a1bd205201..013a991e52 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -484,6 +484,7 @@ static int libx265_encode_frame(AVCodecContext *avctx,
AVPacket *pkt,
int nnal;
int ret;
int i;
+ int total_unregistered_sei;
ctx->api->picture_init(ctx->params, &x265pic);
@@ -515,6 +516,25 @@ static int libx265_encode_frame(AVCodecContext *avctx,
AVPacket *pkt,
memcpy(x265pic.userData, &pic->reordered_opaque,
sizeof(pic->reordered_opaque));
}
+ for (int j = 0; j < pic->nb_side_data; j++) {
+ if (pic->side_data[j]->type == AV_FRAME_DATA_SEI_UNREGISTERED)
+ total_unregistered_sei++;
+ }
+ if (total_unregistered_sei > 0) {
+ x265_sei *sei = &(x265pic.userSEI);
+ sei->payloads = av_realloc_array(sei->payloads,
+ sei->numPayloads +
total_unregistered_sei,
+ sizeof(x265_sei_payload));
+ for (int j = 0; j < pic->nb_side_data; j++) {
+ if (pic->side_data[j]->type == AV_FRAME_DATA_SEI_UNREGISTERED)
{
+ x265_sei_payload *payload =
&(sei->payloads[sei->numPayloads]);
+ payload->payload = pic->side_data[j]->data;
+ payload->payloadSize = pic->side_data[j]->size;
+ payload->payloadType = USER_DATA_UNREGISTERED;
+ sei->numPayloads++;
+ }
+ }
+ }
}
ret = ctx->api->encoder_encode(ctx->encoder, &nal, &nnal,
--
2.27.0
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".