aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-01-20 19:54:41 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-01-20 19:54:45 +0100
commit78e39aa7ee12bb61cf34d8ca6bebd129d659d9cd (patch)
tree7d3aed0445c3d2379842ea2a6dd39e3d3387ac3d
parenteef74b2e97139d8422f76a0f8241aed17fc0617d (diff)
parentb7702fafb356b757dcd1b3d1ed4f2f32e4ebe9c1 (diff)
downloadffmpeg-78e39aa7ee12bb61cf34d8ca6bebd129d659d9cd.tar.gz
Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master: Avoid a possible overflow when reading Nikon avi files. Add h263dsp dependency to mpeg1video and mpeg2video encoders. Fix compilation with --disable-hwaccel=mpeg1_xvmc,mpeg2_xvmc Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rwxr-xr-xconfigure4
-rw-r--r--libavcodec/mpeg12dec.c6
-rw-r--r--libavformat/avidec.c3
3 files changed, 6 insertions, 7 deletions
diff --git a/configure b/configure
index 0b4a8ae129..1a357e7b23 100755
--- a/configure
+++ b/configure
@@ -1962,9 +1962,9 @@ mpc8_decoder_select="dsputil mpegaudiodsp"
mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
mpeg_xvmc_decoder_select="mpeg2video_decoder"
mpeg1video_decoder_select="error_resilience mpegvideo"
-mpeg1video_encoder_select="aandcttables mpegvideoenc"
+mpeg1video_encoder_select="aandcttables mpegvideoenc h263dsp"
mpeg2video_decoder_select="error_resilience mpegvideo"
-mpeg2video_encoder_select="aandcttables mpegvideoenc"
+mpeg2video_encoder_select="aandcttables mpegvideoenc h263dsp"
mpeg4_decoder_select="h263_decoder mpeg4video_parser"
mpeg4_encoder_select="h263_encoder"
msmpeg4v1_decoder_select="h263_decoder"
diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index de6b2b6859..08e6bff56c 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -770,7 +770,7 @@ static int mpeg_decode_mb(MpegEncContext *s, int16_t block[12][64])
memset(s->last_mv, 0, sizeof(s->last_mv)); /* reset mv prediction */
s->mb_intra = 1;
// if 1, we memcpy blocks in xvmcvideo
- if (CONFIG_XVMC && s->pack_pblocks) {
+ if ((CONFIG_MPEG1_XVMC_HWACCEL || CONFIG_MPEG2_XVMC_HWACCEL) && s->pack_pblocks) {
ff_xvmc_pack_pblocks(s, -1); // inter are always full blocks
}
@@ -986,7 +986,7 @@ static int mpeg_decode_mb(MpegEncContext *s, int16_t block[12][64])
}
//if 1, we memcpy blocks in xvmcvideo
- if (CONFIG_XVMC && s->pack_pblocks) {
+ if ((CONFIG_MPEG1_XVMC_HWACCEL || CONFIG_MPEG2_XVMC_HWACCEL) && s->pack_pblocks) {
ff_xvmc_pack_pblocks(s, cbp);
}
@@ -1700,7 +1700,7 @@ static int mpeg_decode_slice(MpegEncContext *s, int mb_y,
for (;;) {
// If 1, we memcpy blocks in xvmcvideo.
- if (CONFIG_XVMC && s->pack_pblocks)
+ if ((CONFIG_MPEG1_XVMC_HWACCEL || CONFIG_MPEG2_XVMC_HWACCEL) && s->pack_pblocks)
ff_xvmc_init_block(s); // set s->block
if (mpeg_decode_mb(s, s->block) < 0)
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 57fbcd7a1b..bab62a08c1 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -350,8 +350,7 @@ static void avi_read_nikon(AVFormatContext *s, uint64_t end)
uint16_t size = avio_rl16(s->pb);
const char *name = NULL;
char buffer[64] = { 0 };
- if (avio_tell(s->pb) + size > tag_end)
- size = tag_end - avio_tell(s->pb);
+ size = FFMIN(size, tag_end - avio_tell(s->pb));
size -= avio_read(s->pb, buffer,
FFMIN(size, sizeof(buffer) - 1));
switch (tag) {