From: Michael Niedermayer <[email protected]>

Matroska, MP4 and other containers do require it.

Signed-off-by: Derek Buitenhuis <[email protected]>
Signed-off-by: Luca Barbato <[email protected]>
---

Review in patch form: the commit message was confusing,
the message about the padding is unnecessary information
(av_malloc itself allocs more bytes than stated in certain
platforms).

 libavcodec/libx265.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index a6e4193..b779c37 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -190,7 +190,7 @@ static av_cold int libx265_encode_init(AVCodecContext 
*avctx)
     for (i = 0; i < nnal; i++)
         ctx->header_size += nal[i].sizeBytes;

-    ctx->header = av_malloc(ctx->header_size);
+    ctx->header = av_malloc(ctx->header_size + FF_INPUT_BUFFER_PADDING_SIZE);
     if (!ctx->header) {
         av_log(avctx, AV_LOG_ERROR,
                "Cannot allocate HEVC header of size %d.\n", ctx->header_size);
@@ -204,6 +204,14 @@ static av_cold int libx265_encode_init(AVCodecContext 
*avctx)
         buf += nal[i].sizeBytes;
     }

+    if (avctx->flags & CODEC_FLAG_GLOBAL_HEADER) {
+        avctx->extradata_size = ctx->header_size;
+        avctx->extradata      = ctx->header;
+
+        ctx->header_size = 0;
+        ctx->header      = NULL;
+    }
+
     return 0;
 }

--
1.8.5.2 (Apple Git-48)

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to