Commit dded5ed9 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/libx265: fill headers in extradata

Fixes Ticket3457
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent f3d3e3fa
...@@ -190,7 +190,7 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) ...@@ -190,7 +190,7 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
for (i = 0; i < nnal; i++) for (i = 0; i < nnal; i++)
ctx->header_size += nal[i].sizeBytes; 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) { if (!ctx->header) {
av_log(avctx, AV_LOG_ERROR, av_log(avctx, AV_LOG_ERROR,
"Cannot allocate HEVC header of size %d.\n", ctx->header_size); "Cannot allocate HEVC header of size %d.\n", ctx->header_size);
...@@ -204,6 +204,13 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) ...@@ -204,6 +204,13 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
buf += nal[i].sizeBytes; 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; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment