static inline void idct_put(MadContext *t, DCTELEM *block, int mb_x, int mb_y, int j) { if (j < 4) { ff_ea_idct_put_c( t->frame.data[0] + (mb_y*16 + ((j&2)<<2))*t->frame.linesize[0] + mb_x*16 + ((j&1)<<3), t->frame.linesize[0], block); } else if (!(t->avctx->flags & CODEC_FLAG_GRAY)) { int index = j - 3; ff_ea_idct_put_c( t->frame.data[index] + (mb_y*8)*t->frame.linesize[index] + mb_x*8, t->frame.linesize[index], block); } }
static inline void idct_put(MadContext *t, AVFrame *frame, int16_t *block, int mb_x, int mb_y, int j) { if (j < 4) { 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)) { int index = j - 3; ff_ea_idct_put_c( frame->data[index] + (mb_y*8)*frame->linesize[index] + mb_x*8, frame->linesize[index], block); } }
static void tgq_idct_put_mb(TgqContext *s, int16_t (*block)[64], int mb_x, int mb_y){ int linesize= s->frame.linesize[0]; uint8_t *dest_y = s->frame.data[0] + (mb_y * 16* linesize ) + mb_x * 16; uint8_t *dest_cb = s->frame.data[1] + (mb_y * 8 * s->frame.linesize[1]) + mb_x * 8; uint8_t *dest_cr = s->frame.data[2] + (mb_y * 8 * s->frame.linesize[2]) + mb_x * 8; ff_ea_idct_put_c(dest_y , linesize, block[0]); ff_ea_idct_put_c(dest_y + 8, linesize, block[1]); ff_ea_idct_put_c(dest_y + 8*linesize , linesize, block[2]); ff_ea_idct_put_c(dest_y + 8*linesize + 8, linesize, block[3]); if(!(s->avctx->flags&CODEC_FLAG_GRAY)){ ff_ea_idct_put_c(dest_cb, s->frame.linesize[1], block[4]); ff_ea_idct_put_c(dest_cr, s->frame.linesize[2], block[5]); } }
static inline void tqi_idct_put(TqiContext *t, AVFrame *frame, int16_t (*block)[64]) { MpegEncContext *s = &t->s; int linesize = frame->linesize[0]; uint8_t *dest_y = frame->data[0] + (s->mb_y * 16* linesize ) + s->mb_x * 16; uint8_t *dest_cb = frame->data[1] + (s->mb_y * 8 * frame->linesize[1]) + s->mb_x * 8; uint8_t *dest_cr = frame->data[2] + (s->mb_y * 8 * frame->linesize[2]) + s->mb_x * 8; ff_ea_idct_put_c(dest_y , linesize, block[0]); ff_ea_idct_put_c(dest_y + 8, linesize, block[1]); ff_ea_idct_put_c(dest_y + 8*linesize , linesize, block[2]); ff_ea_idct_put_c(dest_y + 8*linesize + 8, linesize, block[3]); if(!(s->avctx->flags&CODEC_FLAG_GRAY)) { ff_ea_idct_put_c(dest_cb, frame->linesize[1], block[4]); ff_ea_idct_put_c(dest_cr, frame->linesize[2], block[5]); } }
static inline void tqi_idct_put(AVCodecContext *avctx, AVFrame *frame, int16_t (*block)[64]) { TqiContext *t = avctx->priv_data; int linesize = frame->linesize[0]; uint8_t *dest_y = frame->data[0] + t->mb_y * 16 * linesize + t->mb_x * 16; uint8_t *dest_cb = frame->data[1] + t->mb_y * 8 * frame->linesize[1] + t->mb_x * 8; uint8_t *dest_cr = frame->data[2] + t->mb_y * 8 * frame->linesize[2] + t->mb_x * 8; ff_ea_idct_put_c(dest_y , linesize, block[0]); ff_ea_idct_put_c(dest_y + 8, linesize, block[1]); ff_ea_idct_put_c(dest_y + 8*linesize , linesize, block[2]); ff_ea_idct_put_c(dest_y + 8*linesize + 8, linesize, block[3]); if (!(avctx->flags & AV_CODEC_FLAG_GRAY)) { ff_ea_idct_put_c(dest_cb, frame->linesize[1], block[4]); ff_ea_idct_put_c(dest_cr, frame->linesize[2], block[5]); } }