aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-04-13 21:21:15 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-04-13 21:50:37 +0200
commit367d9b2957fa455b59f131fd6bee896cb7ed6600 (patch)
tree4c6f6a32752bc64d7aea93e37d4bd5666cd6ecb9 /libavcodec
parent62e5ef95cacb29b5ee3149792f12f9204dbd1655 (diff)
parentef0ee7f657e66d91162d2b4fad882ece9fbb264e (diff)
downloadffmpeg-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.c15
-rw-r--r--libavcodec/ffv1.c2
-rw-r--r--libavcodec/tiff.c15
-rw-r--r--libavcodec/x86/ac3dsp.asm6
-rw-r--r--libavcodec/x86/h264_weight_10bit.asm8
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