summaryrefslogtreecommitdiffstats
path: root/libavcodec/h264_mp4toannexb_bsf.c
diff options
context:
space:
mode:
authorAlexandra Khirnova <alexandra.khirnova@gmail.com>2013-12-06 13:44:17 +0100
committerMartin Storsjö <martin@martin.st>2013-12-09 12:27:51 +0200
commit9b8d11a76ae7bca8bbb58abb822138f8b42c776c (patch)
tree702aed7eb0e0684c7a91fdac06a9981fb4333c49 /libavcodec/h264_mp4toannexb_bsf.c
parentd4f1188d1a662fed5347e70016da49e01563e8a8 (diff)
downloadffmpeg-streaming-9b8d11a76ae7bca8bbb58abb822138f8b42c776c.zip
ffmpeg-streaming-9b8d11a76ae7bca8bbb58abb822138f8b42c776c.tar.gz
avcodec: Use av_reallocp where suitable
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec/h264_mp4toannexb_bsf.c')
-rw-r--r--libavcodec/h264_mp4toannexb_bsf.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/libavcodec/h264_mp4toannexb_bsf.c b/libavcodec/h264_mp4toannexb_bsf.c
index e86c3e1..3b212e5 100644
--- a/libavcodec/h264_mp4toannexb_bsf.c
+++ b/libavcodec/h264_mp4toannexb_bsf.c
@@ -37,13 +37,14 @@ static int alloc_and_copy(uint8_t **poutbuf, int *poutbuf_size,
{
uint32_t offset = *poutbuf_size;
uint8_t nal_header_size = offset ? 3 : 4;
- void *tmp;
+ int err;
*poutbuf_size += sps_pps_size + in_size + nal_header_size;
- tmp = av_realloc(*poutbuf, *poutbuf_size + FF_INPUT_BUFFER_PADDING_SIZE);
- if (!tmp)
- return AVERROR(ENOMEM);
- *poutbuf = tmp;
+ if ((err = av_reallocp(poutbuf,
+ *poutbuf_size + FF_INPUT_BUFFER_PADDING_SIZE)) < 0) {
+ *poutbuf_size = 0;
+ return err;
+ }
if (sps_pps)
memcpy(*poutbuf + offset, sps_pps, sps_pps_size);
memcpy(*poutbuf + sps_pps_size + nal_header_size + offset, in, in_size);
@@ -84,7 +85,7 @@ static int h264_extradata_to_annexb(AVCodecContext *avctx, const int padding)
}
while (unit_nb--) {
- void *tmp;
+ int err;
unit_size = AV_RB16(extradata);
total_size += unit_size + 4;
@@ -94,12 +95,8 @@ static int h264_extradata_to_annexb(AVCodecContext *avctx, const int padding)
av_free(out);
return AVERROR(EINVAL);
}
- tmp = av_realloc(out, total_size + padding);
- if (!tmp) {
- av_free(out);
- return AVERROR(ENOMEM);
- }
- out = tmp;
+ if ((err = av_reallocp(&out, total_size + padding)) < 0)
+ return err;
memcpy(out + total_size - unit_size - 4, nalu_header, 4);
memcpy(out + total_size - unit_size, extradata + 2, unit_size);
extradata += 2 + unit_size;
OpenPOWER on IntegriCloud