diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-04-13 21:21:15 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-04-13 21:50:37 +0200 |
commit | 367d9b2957fa455b59f131fd6bee896cb7ed6600 (patch) | |
tree | 4c6f6a32752bc64d7aea93e37d4bd5666cd6ecb9 /libavcodec | |
parent | 62e5ef95cacb29b5ee3149792f12f9204dbd1655 (diff) | |
parent | ef0ee7f657e66d91162d2b4fad882ece9fbb264e (diff) | |
download | ffmpeg-367d9b2957fa455b59f131fd6bee896cb7ed6600.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
swscale: K&R formatting cosmetics (part II)
tiffdec: Add a malloc check and refactor another.
faxcompr: Check malloc results and unify return path
configure: escape colons in values written to config.fate
ac3dsp: call femms/emms at the end of float_to_fixed24() for 3DNow and SSE
matroska: Fix leaking memory allocated for laces.
pthread: Fix crash due to fctx->delaying not being cleared.
vp3: Assert on invalid filter_limit values.
h264: fix 10bit biweight functions after recent x86inc.asm fixes.
ffv1: Fix size mismatch in encode_line.
movenc: Remove a dead initialization
git-howto: Explain how to avoid Windows line endings in git checkouts.
build: Move all arch OBJS declarations into arch subdirectory Makefiles.
Conflicts:
configure
libavcodec/vp3.c
libavformat/matroskadec.c
libavutil/Makefile
libswscale/Makefile
libswscale/swscale.c
libswscale/swscale_internal.h
libswscale/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/faxcompr.c | 15 | ||||
-rw-r--r-- | libavcodec/ffv1.c | 2 | ||||
-rw-r--r-- | libavcodec/tiff.c | 15 | ||||
-rw-r--r-- | libavcodec/x86/ac3dsp.asm | 6 | ||||
-rw-r--r-- | libavcodec/x86/h264_weight_10bit.asm | 8 |
5 files changed, 29 insertions, 17 deletions
diff --git a/libavcodec/faxcompr.c b/libavcodec/faxcompr.c index 7e75e5dae4..e93926f455 100644 --- a/libavcodec/faxcompr.c +++ b/libavcodec/faxcompr.c @@ -275,12 +275,17 @@ int ff_ccitt_unpack(AVCodecContext *avctx, { int j; GetBitContext gb; - int *runs, *ref, *runend; + int *runs, *ref = NULL, *runend; int ret; int runsize= avctx->width + 2; + int err = 0; runs = av_malloc(runsize * sizeof(runs[0])); ref = av_malloc(runsize * sizeof(ref[0])); + if (!runs || ! ref) { + err = AVERROR(ENOMEM); + goto fail; + } ref[0] = avctx->width; ref[1] = 0; ref[2] = 0; @@ -290,9 +295,8 @@ int ff_ccitt_unpack(AVCodecContext *avctx, if(compr == TIFF_G4){ ret = decode_group3_2d_line(avctx, &gb, avctx->width, runs, runend, ref); if(ret < 0){ - av_free(runs); - av_free(ref); - return -1; + err = -1; + goto fail; } }else{ int g3d1 = (compr == TIFF_G3) && !(opts & 1); @@ -313,7 +317,8 @@ int ff_ccitt_unpack(AVCodecContext *avctx, } dst += stride; } +fail: av_free(runs); av_free(ref); - return 0; + return err; } diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c index 681b363283..37169594fa 100644 --- a/libavcodec/ffv1.c +++ b/libavcodec/ffv1.c @@ -445,7 +445,7 @@ static inline int get_vlc_symbol(GetBitContext *gb, VlcState * const state, int #if CONFIG_FFV1_ENCODER static av_always_inline int encode_line(FFV1Context *s, int w, - int16_t *sample[2], + int16_t *sample[3], int plane_index, int bits) { PlaneContext * const p= &s->plane[plane_index]; diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 84edca049a..0d79f6192b 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -145,13 +145,18 @@ static int tiff_unpack_strip(TiffContext *s, uint8_t* dst, int stride, const uin int c, line, pixels, code; const uint8_t *ssrc = src; int width = ((s->width * s->bpp) + 7) >> 3; -#if CONFIG_ZLIB - uint8_t *zbuf; unsigned long outlen; + if (size <= 0) + return AVERROR_INVALIDDATA; + +#if CONFIG_ZLIB if(s->compr == TIFF_DEFLATE || s->compr == TIFF_ADOBE_DEFLATE){ + uint8_t *zbuf; unsigned long outlen; int ret; outlen = width * lines; zbuf = av_malloc(outlen); + if (!zbuf) + return AVERROR(ENOMEM); ret = tiff_uncompress(zbuf, &outlen, src, size); if(ret != Z_OK){ av_log(s->avctx, AV_LOG_ERROR, "Uncompressing failed (%lu of %lu) with error %d\n", outlen, (unsigned long)width * lines, ret); @@ -180,11 +185,11 @@ static int tiff_unpack_strip(TiffContext *s, uint8_t* dst, int stride, const uin } if(s->compr == TIFF_CCITT_RLE || s->compr == TIFF_G3 || s->compr == TIFF_G4){ int i, ret = 0; - uint8_t *src2 = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE); + uint8_t *src2 = av_malloc((unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE); - if(!src2 || (unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE < (unsigned)size){ + if (!src2) { av_log(s->avctx, AV_LOG_ERROR, "Error allocating temporary buffer\n"); - return -1; + return AVERROR(ENOMEM); } if(s->fax_opts & 2){ av_log(s->avctx, AV_LOG_ERROR, "Uncompressed fax mode is not supported (yet)\n"); diff --git a/libavcodec/x86/ac3dsp.asm b/libavcodec/x86/ac3dsp.asm index a7380f9bd8..99e121ec68 100644 --- a/libavcodec/x86/ac3dsp.asm +++ b/libavcodec/x86/ac3dsp.asm @@ -223,7 +223,8 @@ cglobal float_to_fixed24_3dnow, 3,3,0, dst, src, len add dstq, 32 sub lend, 8 ja .loop - REP_RET + femms + RET INIT_XMM cglobal float_to_fixed24_sse, 3,3,3, dst, src, len @@ -247,7 +248,8 @@ cglobal float_to_fixed24_sse, 3,3,3, dst, src, len add dstq, 32 sub lend, 8 ja .loop - REP_RET + emms + RET INIT_XMM cglobal float_to_fixed24_sse2, 3,3,9, dst, src, len diff --git a/libavcodec/x86/h264_weight_10bit.asm b/libavcodec/x86/h264_weight_10bit.asm index 481c7cad66..c4b12984f6 100644 --- a/libavcodec/x86/h264_weight_10bit.asm +++ b/libavcodec/x86/h264_weight_10bit.asm @@ -155,7 +155,7 @@ WEIGHT_FUNC_HALF_MM sse4 %if ARCH_X86_32 DECLARE_REG_TMP 3 %else -DECLARE_REG_TMP 10 +DECLARE_REG_TMP 7 %endif %macro BIWEIGHT_PROLOGUE 0 @@ -218,7 +218,7 @@ DECLARE_REG_TMP 10 %endmacro %macro BIWEIGHT_FUNC_DBL 1 -cglobal h264_biweight_16_10_%1 +cglobal h264_biweight_16_10_%1, 0, 8, 8 BIWEIGHT_PROLOGUE BIWEIGHT_SETUP %1 .nextrow @@ -238,7 +238,7 @@ BIWEIGHT_FUNC_DBL sse2 BIWEIGHT_FUNC_DBL sse4 %macro BIWEIGHT_FUNC 1 -cglobal h264_biweight_8_10_%1 +cglobal h264_biweight_8_10_%1, 0, 8, 8 BIWEIGHT_PROLOGUE BIWEIGHT_SETUP %1 .nextrow @@ -256,7 +256,7 @@ BIWEIGHT_FUNC sse2 BIWEIGHT_FUNC sse4 %macro BIWEIGHT_FUNC_HALF 1 -cglobal h264_biweight_4_10_%1 +cglobal h264_biweight_4_10_%1, 0, 8, 8 BIWEIGHT_PROLOGUE BIWEIGHT_SETUP %1 sar r3d, 1 |