FFmpeg
Macros | Functions
mpegvideo_dec.c File Reference
#include <limits.h>
#include "config_components.h"
#include "libavutil/avassert.h"
#include "libavutil/imgutils.h"
#include "libavutil/internal.h"
#include "libavutil/video_enc_params.h"
#include "avcodec.h"
#include "h264chroma.h"
#include "internal.h"
#include "mpegutils.h"
#include "mpegvideo.h"
#include "mpegvideodec.h"
#include "mpeg4videodec.h"
#include "threadframe.h"
#include "wmv2dec.h"
#include "mpv_reconstruct_mb_template.c"

Go to the source code of this file.

Macros

#define UPDATE_PICTURE(pic)
 
#define REBASE_PICTURE(pic, new_ctx, old_ctx)
 
#define IS_ENCODER   0
 

Functions

void ff_mpv_decode_init (MpegEncContext *s, AVCodecContext *avctx)
 Initialize the given MpegEncContext for decoding. More...
 
int ff_mpeg_update_thread_context (AVCodecContext *dst, const AVCodecContext *src)
 
int ff_mpv_common_frame_size_change (MpegEncContext *s)
 
static int alloc_picture (MpegEncContext *s, Picture *pic)
 
static void gray_frame (AVFrame *frame)
 
int ff_mpv_frame_start (MpegEncContext *s, AVCodecContext *avctx)
 generic function called after decoding the header and before a frame is decoded. More...
 
void ff_mpv_frame_end (MpegEncContext *s)
 
void ff_print_debug_info (const MpegEncContext *s, const Picture *p, AVFrame *pict)
 
int ff_mpv_export_qp_table (const MpegEncContext *s, AVFrame *f, const Picture *p, int qp_type)
 
void ff_mpeg_draw_horiz_band (MpegEncContext *s, int y, int h)
 
void ff_mpeg_flush (AVCodecContext *avctx)
 
void ff_mpv_report_decode_progress (MpegEncContext *s)
 
static int hpel_motion_lowres (MpegEncContext *s, uint8_t *dest, const uint8_t *src, int field_based, int field_select, int src_x, int src_y, int width, int height, ptrdiff_t stride, int h_edge_pos, int v_edge_pos, int w, int h, const h264_chroma_mc_func *pix_op, int motion_x, int motion_y)
 
static av_always_inline void mpeg_motion_lowres (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 *const *ref_picture, const h264_chroma_mc_func *pix_op, int motion_x, int motion_y, int h, int mb_y)
 
static void chroma_4mv_motion_lowres (MpegEncContext *s, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t *const *ref_picture, const h264_chroma_mc_func *pix_op, int mx, int my)
 
static void MPV_motion_lowres (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int dir, uint8_t *const *ref_picture, const h264_chroma_mc_func *pix_op)
 motion compensation of a single macroblock More...
 
static int lowest_referenced_row (MpegEncContext *s, int dir)
 find the lowest MB row referenced in the MVs More...
 
static void add_dct (MpegEncContext *s, int16_t *block, int i, uint8_t *dest, int line_size)
 
void ff_mpv_reconstruct_mb (MpegEncContext *s, int16_t block[12][64])
 

Macro Definition Documentation

◆ UPDATE_PICTURE

#define UPDATE_PICTURE (   pic)
Value:
do {\
ff_mpeg_unref_picture(s->avctx, &s->pic);\
if (s1->pic.f && s1->pic.f->buf[0])\
ret = ff_mpeg_ref_picture(s->avctx, &s->pic, &s1->pic);\
else\
ret = ff_update_picture_tables(&s->pic, &s1->pic);\
if (ret < 0)\
return ret;\
} while (0)

◆ REBASE_PICTURE

#define REBASE_PICTURE (   pic,
  new_ctx,
  old_ctx 
)
Value:
((pic && pic >= old_ctx->picture && \
pic < old_ctx->picture + MAX_PICTURE_COUNT) ? \
&new_ctx->picture[pic - old_ctx->picture] : NULL)

◆ IS_ENCODER

#define IS_ENCODER   0

Definition at line 1007 of file mpegvideo_dec.c.

Function Documentation

◆ ff_mpv_decode_init()

void ff_mpv_decode_init ( MpegEncContext s,
AVCodecContext avctx 
)

Initialize the given MpegEncContext for decoding.

the changed fields will not depend upon the prior state of the MpegEncContext.

Definition at line 42 of file mpegvideo_dec.c.

Referenced by ff_h263_decode_init(), ff_rv34_decode_init(), ff_vc1_decode_init(), h261_decode_init(), ipu_decode_init(), mpeg_decode_init(), and rv10_decode_init().

◆ ff_mpeg_update_thread_context()

int ff_mpeg_update_thread_context ( AVCodecContext dst,
const AVCodecContext src 
)

Definition at line 58 of file mpegvideo_dec.c.

Referenced by ff_rv34_decode_update_thread_context().

◆ ff_mpv_common_frame_size_change()

int ff_mpv_common_frame_size_change ( MpegEncContext s)

◆ alloc_picture()

static int alloc_picture ( MpegEncContext s,
Picture pic 
)
static

Definition at line 243 of file mpegvideo_dec.c.

Referenced by ff_mpv_frame_start().

◆ gray_frame()

static void gray_frame ( AVFrame frame)
static

Definition at line 251 of file mpegvideo_dec.c.

Referenced by ff_mpv_frame_start().

◆ ff_mpv_frame_start()

int ff_mpv_frame_start ( MpegEncContext s,
AVCodecContext avctx 
)

generic function called after decoding the header and before a frame is decoded.

Definition at line 271 of file mpegvideo_dec.c.

Referenced by decode_wmv9(), ff_h263_decode_frame(), ff_rv34_decode_frame(), h261_decode_frame(), mpeg_field_start(), rv10_decode_packet(), and vc1_decode_frame().

◆ ff_mpv_frame_end()

void ff_mpv_frame_end ( MpegEncContext s)

◆ ff_print_debug_info()

void ff_print_debug_info ( const MpegEncContext s,
const Picture p,
AVFrame pict 
)

◆ ff_mpv_export_qp_table()

int ff_mpv_export_qp_table ( const MpegEncContext s,
AVFrame f,
const Picture p,
int  qp_type 
)

Definition at line 502 of file mpegvideo_dec.c.

Referenced by ff_h263_decode_frame(), finish_frame(), rv10_decode_frame(), and slice_end().

◆ ff_mpeg_draw_horiz_band()

void ff_mpeg_draw_horiz_band ( MpegEncContext s,
int  y,
int  h 
)

◆ ff_mpeg_flush()

void ff_mpeg_flush ( AVCodecContext avctx)

Definition at line 540 of file mpegvideo_dec.c.

Referenced by decode_wmv9(), and flush().

◆ ff_mpv_report_decode_progress()

void ff_mpv_report_decode_progress ( MpegEncContext s)

Definition at line 569 of file mpegvideo_dec.c.

Referenced by decode_slice(), and mpeg_decode_slice().

◆ hpel_motion_lowres()

static int hpel_motion_lowres ( MpegEncContext s,
uint8_t *  dest,
const uint8_t *  src,
int  field_based,
int  field_select,
int  src_x,
int  src_y,
int  width,
int  height,
ptrdiff_t  stride,
int  h_edge_pos,
int  v_edge_pos,
int  w,
int  h,
const h264_chroma_mc_func pix_op,
int  motion_x,
int  motion_y 
)
inlinestatic

Definition at line 576 of file mpegvideo_dec.c.

Referenced by MPV_motion_lowres().

◆ mpeg_motion_lowres()

static av_always_inline void mpeg_motion_lowres ( 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 *const *  ref_picture,
const h264_chroma_mc_func pix_op,
int  motion_x,
int  motion_y,
int  h,
int  mb_y 
)
static

Definition at line 623 of file mpegvideo_dec.c.

Referenced by MPV_motion_lowres().

◆ chroma_4mv_motion_lowres()

static void chroma_4mv_motion_lowres ( MpegEncContext s,
uint8_t *  dest_cb,
uint8_t *  dest_cr,
uint8_t *const *  ref_picture,
const h264_chroma_mc_func pix_op,
int  mx,
int  my 
)
inlinestatic

Definition at line 762 of file mpegvideo_dec.c.

Referenced by MPV_motion_lowres().

◆ MPV_motion_lowres()

static void MPV_motion_lowres ( MpegEncContext s,
uint8_t *  dest_y,
uint8_t *  dest_cb,
uint8_t *  dest_cr,
int  dir,
uint8_t *const *  ref_picture,
const h264_chroma_mc_func pix_op 
)
inlinestatic

motion compensation of a single macroblock

Parameters
scontext
dest_yluma destination pointer
dest_cbchroma cb/u destination pointer
dest_crchroma cr/v destination pointer
dirdirection (0->forward, 1->backward)
ref_picturearray[3] of pointers to the 3 planes of the reference picture
pix_ophalfpel 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_dec.c.

Referenced by mpv_reconstruct_mb_internal().

◆ lowest_referenced_row()

static int lowest_referenced_row ( MpegEncContext s,
int  dir 
)
static

find the lowest MB row referenced in the MVs

Definition at line 963 of file mpegvideo_dec.c.

Referenced by mpv_reconstruct_mb_internal().

◆ add_dct()

static void add_dct ( MpegEncContext s,
int16_t *  block,
int  i,
uint8_t *  dest,
int  line_size 
)
inlinestatic

Definition at line 999 of file mpegvideo_dec.c.

Referenced by mpv_reconstruct_mb_internal().

◆ ff_mpv_reconstruct_mb()

void ff_mpv_reconstruct_mb ( MpegEncContext s,
int16_t  block[12][64] 
)
MAX_PICTURE_COUNT
#define MAX_PICTURE_COUNT
Definition: mpegpicture.h:33
s
#define s(width, name)
Definition: cbs_vp9.c:256
s1
#define s1
Definition: regdef.h:38
NULL
#define NULL
Definition: coverity.c:32
ff_update_picture_tables
int ff_update_picture_tables(Picture *dst, const Picture *src)
Definition: mpegpicture.c:337
ff_mpeg_ref_picture
int ff_mpeg_ref_picture(AVCodecContext *avctx, Picture *dst, Picture *src)
Definition: mpegpicture.c:369
ret
ret
Definition: filter_design.txt:187