Originally committed as revision 1832 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Michael Niedermayer 22 years ago
parent d86053a416
commit eb14c71360
  1. 8
      libavcodec/dsputil.h
  2. 12
      libavcodec/mpegvideo.c

@ -149,6 +149,8 @@ typedef struct DSPContext {
/* maybe create an array for 16/8 functions */ /* maybe create an array for 16/8 functions */
/** /**
* Halfpel motion compensation with rounding (a+b+1)>>1. * Halfpel motion compensation with rounding (a+b+1)>>1.
* this is an array[2][4] of motion compensation funcions for 2
* horizontal blocksizes (8,16) and the 4 halfpel positions<br>
* *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ] * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]
* @param block destination where the result is stored * @param block destination where the result is stored
* @param pixels source * @param pixels source
@ -159,6 +161,8 @@ typedef struct DSPContext {
/** /**
* Halfpel motion compensation with rounding (a+b+1)>>1. * Halfpel motion compensation with rounding (a+b+1)>>1.
* this is an array[2][4] of motion compensation funcions for 2
* horizontal blocksizes (8,16) and the 4 halfpel positions<br>
* *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ] * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]
* @param block destination into which the result is averaged (a+b+1)>>1 * @param block destination into which the result is averaged (a+b+1)>>1
* @param pixels source * @param pixels source
@ -169,6 +173,8 @@ typedef struct DSPContext {
/** /**
* Halfpel motion compensation with no rounding (a+b)>>1. * Halfpel motion compensation with no rounding (a+b)>>1.
* this is an array[2][4] of motion compensation funcions for 2
* horizontal blocksizes (8,16) and the 4 halfpel positions<br>
* *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ] * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]
* @param block destination where the result is stored * @param block destination where the result is stored
* @param pixels source * @param pixels source
@ -179,6 +185,8 @@ typedef struct DSPContext {
/** /**
* Halfpel motion compensation with no rounding (a+b)>>1. * Halfpel motion compensation with no rounding (a+b)>>1.
* this is an array[2][4] of motion compensation funcions for 2
* horizontal blocksizes (8,16) and the 4 halfpel positions<br>
* *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ] * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]
* @param block destination into which the result is averaged (a+b)>>1 * @param block destination into which the result is averaged (a+b)>>1
* @param pixels source * @param pixels source

@ -1861,6 +1861,18 @@ inline int ff_h263_round_chroma(int x){
} }
} }
/**
* motion compesation of a single macroblock
* @param s context
* @param dest_y luma destination pointer
* @param dest_cb chroma cb/u destination pointer
* @param dest_cr chroma cr/v destination pointer
* @param dir direction (0->forward, 1->backward)
* @param ref_picture array[3] of pointers to the 3 planes of the reference picture
* @param pic_op halfpel motion compensation function (average or put normally)
* @param pic_op qpel motion compensation function (average or put normally)
* the motion vectors are taken from s->mv and the MV type from s->mv_type
*/
static inline void MPV_motion(MpegEncContext *s, static inline void MPV_motion(MpegEncContext *s,
uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,
int dir, uint8_t **ref_picture, int dir, uint8_t **ref_picture,

Loading…
Cancel
Save