Skip to content

Instantly share code, notes, and snippets.

@rcombs

rcombs/stdin Secret

Created April 14, 2016 01:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rcombs/cc357b39e5dad4eb7cb45e987736185e to your computer and use it in GitHub Desktop.
Save rcombs/cc357b39e5dad4eb7cb45e987736185e to your computer and use it in GitHub Desktop.
diff --git a/libavformat/mux.c b/libavformat/mux.c
index 9848899..9bdf52d 100644
--- a/libavformat/mux.c
+++ b/libavformat/mux.c
@@ -1090,6 +1090,16 @@ int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt)
}
}
+ if (!st->internal->avctx->extradata && st->codecpar->extradata) {
+ int size = st->codecpar->extradata_size;
+ if (size < 0 || size >= INT32_MAX - AV_INPUT_BUFFER_PADDING_SIZE)
+ return AVERROR(EINVAL);
+ st->internal->avctx->extradata = av_mallocz(size + AV_INPUT_BUFFER_PADDING_SIZE);
+ if (!st->internal->avctx->extradata)
+ return AVERROR(ENOMEM);
+ st->internal->avctx->extradata_size = size;
+ memcpy(st->internal->avctx->extradata, st->codecpar->extradata, size);
+ }
av_apply_bitstream_filters(st->internal->avctx, pkt, st->internal->bsfc);
if (pkt->size == 0 && pkt->side_data_elems == 0)
return 0;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment