# HG changeset patch # User romansh # Date 1219161626 0 # Node ID 1afa1171b7b2fc5039d5925f51826cbf39c4f401 # Parent ff395fe35161174fa6d74dea75142209ec2bad84 Introducing DV_MAX_BPM macro instead of a hardcoded value for the highest number of blocks per macroblock diff -r ff395fe35161 -r 1afa1171b7b2 dv.c --- a/dv.c Tue Aug 19 10:43:47 2008 +0000 +++ b/dv.c Tue Aug 19 16:00:26 2008 +0000 @@ -360,8 +360,8 @@ const uint8_t *buf_ptr; PutBitContext pb, vs_pb; GetBitContext gb; - BlockInfo mb_data[5 * 6], *mb, *mb1; - DECLARE_ALIGNED_16(DCTELEM, sblock[5*6][64]); + BlockInfo mb_data[5 * DV_MAX_BPM], *mb, *mb1; + DECLARE_ALIGNED_16(DCTELEM, sblock[5*DV_MAX_BPM][64]); DECLARE_ALIGNED_8(uint8_t, mb_bit_buffer[80 + 4]); /* allow some slack */ DECLARE_ALIGNED_8(uint8_t, vs_bit_buffer[5 * 80 + 4]); /* allow some slack */ const int log2_blocksize= 3-s->avctx->lowres; diff -r ff395fe35161 -r 1afa1171b7b2 dvdata.h --- a/dvdata.h Tue Aug 19 10:43:47 2008 +0000 +++ b/dvdata.h Tue Aug 19 16:00:26 2008 +0000 @@ -2638,6 +2638,9 @@ /* largest possible DV frame, in bytes (PAL 50Mbps) */ #define DV_MAX_FRAME_SIZE 288000 +/* maximum number of blocks per macroblock in any DV format */ +#define DV_MAX_BPM 8 + static inline const DVprofile* dv_frame_profile(const uint8_t* frame) { if ((frame[3] & 0x80) == 0) { /* DSF flag */