*/
#include "avcodec.h"
+#include "blockdsp.h"
#include "bytestream.h"
#include "bswapdsp.h"
#include "get_bits.h"
#include "eaidct.h"
#include "idctdsp.h"
#include "internal.h"
-#include "mpeg12.h"
#include "mpeg12data.h"
-#include "libavutil/imgutils.h"
+#include "mpeg12vlc.h"
#define EA_PREAMBLE_SIZE 8
-#define MADk_TAG MKTAG('M', 'A', 'D', 'k') /* MAD i-frame */
-#define MADm_TAG MKTAG('M', 'A', 'D', 'm') /* MAD p-frame */
+#define MADk_TAG MKTAG('M', 'A', 'D', 'k') /* MAD I-frame */
+#define MADm_TAG MKTAG('M', 'A', 'D', 'm') /* MAD P-frame */
#define MADe_TAG MKTAG('M', 'A', 'D', 'e') /* MAD lqp-frame */
typedef struct MadContext {
frame->linesize[0],
t->last_frame->data[0] + (mb_y*16 + ((j&2)<<2) + mv_y)*t->last_frame->linesize[0] + mb_x*16 + ((j&1)<<3) + mv_x,
t->last_frame->linesize[0], add);
- } else if (!(t->avctx->flags & CODEC_FLAG_GRAY)) {
+ } else if (!(t->avctx->flags & AV_CODEC_FLAG_GRAY)) {
int index = j - 3;
comp(frame->data[index] + (mb_y*8)*frame->linesize[index] + mb_x * 8,
frame->linesize[index],
ff_ea_idct_put_c(
frame->data[0] + (mb_y*16 + ((j&2)<<2))*frame->linesize[0] + mb_x*16 + ((j&1)<<3),
frame->linesize[0], block);
- } else if (!(t->avctx->flags & CODEC_FLAG_GRAY)) {
+ } else if (!(t->avctx->flags & AV_CODEC_FLAG_GRAY)) {
int index = j - 3;
ff_ea_idct_put_c(
frame->data[index] + (mb_y*8)*frame->linesize[index] + mb_x*8,
break;
} else if (level != 0) {
i += run;
+ if (i > 63) {
+ av_log(s->avctx, AV_LOG_ERROR,
+ "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y);
+ return;
+ }
j = scantable[i];
level = (level*quant_matrix[j]) >> 4;
level = (level-1)|1;
run = SHOW_UBITS(re, &s->gb, 6)+1; LAST_SKIP_BITS(re, &s->gb, 6);
i += run;
+ if (i > 63) {
+ av_log(s->avctx, AV_LOG_ERROR,
+ "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y);
+ return;
+ }
j = scantable[i];
if (level < 0) {
level = -level;
level = (level-1)|1;
}
}
- if (i > 63) {
- av_log(s->avctx, AV_LOG_ERROR, "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y);
- return;
- }
block[j] = level;
}
inter = (chunk_type == MADm_TAG || chunk_type == MADe_TAG);
bytestream2_skip(&gb, 10);
- av_reduce(&avctx->time_base.num, &avctx->time_base.den,
+ av_reduce(&avctx->framerate.den, &avctx->framerate.num,
bytestream2_get_le16(&gb), 1000, 1<<30);
width = bytestream2_get_le16(&gb);
.init = decode_init,
.close = decode_end,
.decode = decode_frame,
- .capabilities = CODEC_CAP_DR1,
+ .capabilities = AV_CODEC_CAP_DR1,
};