FFmpeg
|
#include <string.h>
#include "libavutil/avassert.h"
#include "libavutil/internal.h"
#include "avcodec.h"
#include "h261.h"
#include "mpegutils.h"
#include "mpegvideo.h"
#include "mjpegenc.h"
#include "msmpeg4.h"
#include "qpeldsp.h"
#include <limits.h>
Go to the source code of this file.
Macros | |
#define | OBMC_FILTER(x, t, l, m, r, b) dst[x]= (t*top[x] + l*left[x] + m*mid[x] + r*right[x] + b*bottom[x] + 4)>>3 |
#define | OBMC_FILTER4(x, t, l, m, r, b) |
#define | MID 0 |
Functions | |
static void | gmc1_motion (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t **ref_picture) |
static void | gmc_motion (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t **ref_picture) |
static int | hpel_motion (MpegEncContext *s, uint8_t *dest, uint8_t *src, int src_x, int src_y, op_pixels_func *pix_op, int motion_x, int motion_y) |
static av_always_inline void | mpeg_motion_internal (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int field_based, int bottom_field, int field_select, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], int motion_x, int motion_y, int h, int is_mpeg12, int mb_y) |
static void | mpeg_motion (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int field_select, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], int motion_x, int motion_y, int h, int mb_y) |
static void | mpeg_motion_field (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int bottom_field, int field_select, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], int motion_x, int motion_y, int h, int mb_y) |
static void | put_obmc (uint8_t *dst, uint8_t *src[5], int stride) |
static void | obmc_motion (MpegEncContext *s, uint8_t *dest, uint8_t *src, int src_x, int src_y, op_pixels_func *pix_op, int16_t mv[5][2]) |
static void | qpel_motion (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int field_based, int bottom_field, int field_select, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], qpel_mc_func(*qpix_op)[16], int motion_x, int motion_y, int h) |
static void | chroma_4mv_motion (MpegEncContext *s, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t **ref_picture, op_pixels_func *pix_op, int mx, int my) |
h263 chroma 4mv motion compensation. | |
static void | prefetch_motion (MpegEncContext *s, uint8_t **pix, int dir) |
static void | apply_obmc (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t **ref_picture, op_pixels_func(*pix_op)[4]) |
static void | apply_8x8 (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int dir, uint8_t **ref_picture, qpel_mc_func(*qpix_op)[16], op_pixels_func(*pix_op)[4]) |
static av_always_inline void | mpv_motion_internal (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int dir, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], qpel_mc_func(*qpix_op)[16], int is_mpeg12) |
motion compensation of a single macroblock | |
void | ff_mpv_motion (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int dir, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], qpel_mc_func(*qpix_op)[16]) |
#define OBMC_FILTER | ( | x, | |
t, | |||
l, | |||
m, | |||
r, | |||
b | |||
) | dst[x]= (t*top[x] + l*left[x] + m*mid[x] + r*right[x] + b*bottom[x] + 4)>>3 |
Referenced by put_obmc().
#define MID 0 |
Referenced by obmc_motion().
|
static |
Definition at line 37 of file mpegvideo_motion.c.
Referenced by mpv_motion_internal().
|
static |
Definition at line 134 of file mpegvideo_motion.c.
Referenced by mpv_motion_internal().
|
inlinestatic |
Definition at line 192 of file mpegvideo_motion.c.
Referenced by apply_8x8(), and obmc_motion().
|
static |
Definition at line 228 of file mpegvideo_motion.c.
Referenced by mpeg_motion(), and mpeg_motion_field().
|
static |
Definition at line 371 of file mpegvideo_motion.c.
Referenced by mpv_motion_internal().
|
static |
Definition at line 389 of file mpegvideo_motion.c.
Referenced by mpv_motion_internal().
Definition at line 409 of file mpegvideo_motion.c.
Referenced by obmc_motion().
|
inlinestatic |
Definition at line 462 of file mpegvideo_motion.c.
Referenced by apply_obmc().
|
inlinestatic |
Definition at line 488 of file mpegvideo_motion.c.
Referenced by mpv_motion_internal().
|
static |
h263 chroma 4mv motion compensation.
Definition at line 593 of file mpegvideo_motion.c.
Referenced by apply_8x8(), and apply_obmc().
|
inlinestatic |
Definition at line 645 of file mpegvideo_motion.c.
Referenced by mpv_motion_internal().
|
inlinestatic |
Definition at line 659 of file mpegvideo_motion.c.
Referenced by mpv_motion_internal().
|
inlinestatic |
Definition at line 746 of file mpegvideo_motion.c.
Referenced by mpv_motion_internal().
|
static |
motion compensation of a single macroblock
s | context |
dest_y | luma destination pointer |
dest_cb | chroma cb/u destination pointer |
dest_cr | chroma cr/v destination pointer |
dir | direction (0->forward, 1->backward) |
ref_picture | array[3] of pointers to the 3 planes of the reference picture |
pix_op | halfpel motion compensation function (average or put normally) |
qpix_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 |
Definition at line 830 of file mpegvideo_motion.c.
Referenced by ff_mpv_motion().
void ff_mpv_motion | ( | MpegEncContext * | s, |
uint8_t * | dest_y, | ||
uint8_t * | dest_cb, | ||
uint8_t * | dest_cr, | ||
int | dir, | ||
uint8_t ** | ref_picture, | ||
op_pixels_func(*) | pix_op[4], | ||
qpel_mc_func(*) | qpix_op[16] | ||
) |
Definition at line 972 of file mpegvideo_motion.c.
Referenced by encode_mb_internal(), and mpv_decode_mb_internal().