aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-02-22 22:44:15 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-02-22 22:44:15 +0100
commit80ddf7889eecef0a9f9f4d7e3e8a0b2e3f700521 (patch)
tree7cfc3cb358683d932f3a82fe6dda8dc858736373 /libavcodec
parent4be63111d1a29a13153cc25dcd9681dbbe7e0851 (diff)
parent6626a7df534591c1eaed860bcb2f61610a3727f4 (diff)
downloadffmpeg-80ddf7889eecef0a9f9f4d7e3e8a0b2e3f700521.tar.gz
Merge remote-tracking branch 'qatar/release/9' into release/1.1
* qatar/release/9: doc: Fix some obsolete references to av* tools as ff* tools vqavideo: check chunk sizes before reading chunks roqvideodec: check dimensions validity qdm2: check array index before use, fix out of array accesses mpegvideo: Do REBASE_PICTURE with byte pointers Conflicts: libavcodec/qdm2.c libavcodec/roqvideodec.c libavcodec/vqavideo.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/mpegvideo.h2
-rw-r--r--libavcodec/qdm2.c2
-rw-r--r--libavcodec/roqvideodec.c7
-rw-r--r--libavcodec/vqavideo.c6
4 files changed, 10 insertions, 7 deletions
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index c0152fb863..5b980310c4 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -731,7 +731,7 @@ typedef struct MpegEncContext {
#define REBASE_PICTURE(pic, new_ctx, old_ctx) (pic ? \
(pic >= old_ctx->picture && pic < old_ctx->picture+old_ctx->picture_count ?\
- &new_ctx->picture[pic - old_ctx->picture] : pic - (Picture*)old_ctx + (Picture*)new_ctx)\
+ &new_ctx->picture[pic - old_ctx->picture] : (Picture*) ((uint8_t*)pic - (uint8_t*)old_ctx + (uint8_t*)new_ctx))\
: NULL)
/* mpegvideo_enc common options */
diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c
index c8727c6b1c..f5ed707402 100644
--- a/libavcodec/qdm2.c
+++ b/libavcodec/qdm2.c
@@ -1258,7 +1258,7 @@ static void qdm2_decode_super_block (QDM2Context *q)
for (i = 0; packet_bytes > 0; i++) {
int j;
- if (i>=FF_ARRAY_ELEMS(q->sub_packet_list_A)) {
+ if (i >= FF_ARRAY_ELEMS(q->sub_packet_list_A)) {
SAMPLES_NEEDED_2("too many packet bytes");
return;
}
diff --git a/libavcodec/roqvideodec.c b/libavcodec/roqvideodec.c
index c90939df04..6812f9af70 100644
--- a/libavcodec/roqvideodec.c
+++ b/libavcodec/roqvideodec.c
@@ -171,9 +171,10 @@ static av_cold int roq_decode_init(AVCodecContext *avctx)
s->avctx = avctx;
- if (avctx->width%16 || avctx->height%16) {
- av_log_ask_for_sample(avctx, "dimensions not being a multiple of 16 are unsupported\n");
- return AVERROR_PATCHWELCOME;
+ if (avctx->width % 16 || avctx->height % 16) {
+ av_log(avctx, AV_LOG_ERROR,
+ "Dimensions must be a multiple of 16\n");
+ return AVERROR_PATCHWELCOME;
}
s->width = avctx->width;
diff --git a/libavcodec/vqavideo.c b/libavcodec/vqavideo.c
index 22ec309f82..f78055f566 100644
--- a/libavcodec/vqavideo.c
+++ b/libavcodec/vqavideo.c
@@ -538,7 +538,8 @@ static int vqa_decode_chunk(VqaContext *s)
chunk_size = bytestream2_get_be32(&s->gb);
if (chunk_size > MAX_CODEBOOK_SIZE - s->next_codebook_buffer_index) {
- av_log(s->avctx, AV_LOG_ERROR, "cbp0 chunk too large (0x%X bytes)\n", chunk_size);
+ av_log(s->avctx, AV_LOG_ERROR, "cbp0 chunk too large (%u bytes)\n",
+ chunk_size);
return AVERROR_INVALIDDATA;
}
@@ -566,7 +567,8 @@ static int vqa_decode_chunk(VqaContext *s)
chunk_size = bytestream2_get_be32(&s->gb);
if (chunk_size > MAX_CODEBOOK_SIZE - s->next_codebook_buffer_index) {
- av_log(s->avctx, AV_LOG_ERROR, "cbpz chunk too large (0x%X bytes)\n", chunk_size);
+ av_log(s->avctx, AV_LOG_ERROR, "cbpz chunk too large (%u bytes)\n",
+ chunk_size);
return AVERROR_INVALIDDATA;
}