FFmpeg
Macros | Functions
vp9mvs.c File Reference
#include "internal.h"
#include "vp56.h"
#include "vp9.h"
#include "vp9data.h"
#include "vp9dec.h"

Go to the source code of this file.

Macros

#define INVALID_MV   0x80008000U
 
#define RETURN_DIRECT_MV(mv)
 
#define RETURN_MV(mv)
 
#define RETURN_SCALE_MV(mv, scale)
 

Functions

static av_always_inline void clamp_mv (VP56mv *dst, const VP56mv *src, VP9TileData *td)
 
static void find_ref_mvs (VP9TileData *td, VP56mv *pmv, int ref, int z, int idx, int sb)
 
static av_always_inline int read_mv_component (VP9TileData *td, int idx, int hp)
 
void ff_vp9_fill_mv (VP9TileData *td, VP56mv *mv, int mode, int sb)
 

Macro Definition Documentation

#define INVALID_MV   0x80008000U

Referenced by find_ref_mvs().

#define RETURN_DIRECT_MV (   mv)
Value:
do { \
uint32_t m = AV_RN32A(&mv); \
if (!idx) { \
AV_WN32A(pmv, m); \
} else if (mem == INVALID_MV) { \
mem = m; \
} else if (m != mem) { \
AV_WN32A(pmv, m); \
} \
} while (0)
#define AV_WN32A(p, v)
Definition: intreadwrite.h:538
#define AV_RN32A(p)
Definition: intreadwrite.h:526
if(ret)
static const int8_t mv[256][2]
Definition: 4xm.c:77
#define INVALID_MV
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return

Referenced by find_ref_mvs().

#define RETURN_MV (   mv)

Referenced by find_ref_mvs().

#define RETURN_SCALE_MV (   mv,
  scale 
)
Value:
do { \
if (scale) { \
VP56mv mv_temp = { -mv.x, -mv.y }; \
RETURN_MV(mv_temp); \
} else { \
} \
} while (0)
#define RETURN_MV(mv)
if(ret)
static const int8_t mv[256][2]
Definition: 4xm.c:77

Referenced by find_ref_mvs().

Function Documentation

static av_always_inline void clamp_mv ( VP56mv dst,
const VP56mv src,
VP9TileData td 
)
static

Definition at line 30 of file vp9mvs.c.

Referenced by find_ref_mvs().

static void find_ref_mvs ( VP9TileData td,
VP56mv pmv,
int  ref,
int  z,
int  idx,
int  sb 
)
static

Definition at line 37 of file vp9mvs.c.

Referenced by ff_vp9_fill_mv().

static av_always_inline int read_mv_component ( VP9TileData td,
int  idx,
int  hp 
)
static

Definition at line 236 of file vp9mvs.c.

Referenced by ff_vp9_fill_mv().

void ff_vp9_fill_mv ( VP9TileData td,
VP56mv mv,
int  mode,
int  sb 
)

Definition at line 291 of file vp9mvs.c.

Referenced by decode_mode().