Browse Source

libx265: Write global extradata when requested

Matroska, MP4, and other containers require it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
tags/n2.3
Michael Niedermayer Derek Buitenhuis 12 years ago
parent
commit
60728e8bab
1 changed files with 9 additions and 1 deletions
  1. +9
    -1
      libavcodec/libx265.c

+ 9
- 1
libavcodec/libx265.c View File

@@ -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;
}



Loading…
Cancel
Save