FFmpeg
|
#include <limits.h>
#include "config_components.h"
#include "libavutil/avassert.h"
#include "libavutil/emms.h"
#include "libavutil/imgutils.h"
#include "libavutil/internal.h"
#include "libavutil/video_enc_params.h"
#include "avcodec.h"
#include "decode.h"
#include "h264chroma.h"
#include "internal.h"
#include "mpegutils.h"
#include "mpegvideo.h"
#include "mpegvideodec.h"
#include "mpeg4videodec.h"
#include "refstruct.h"
#include "thread.h"
#include "threadprogress.h"
#include "wmv2dec.h"
#include "mpv_reconstruct_mb_template.c"
Go to the source code of this file.
Macros | |
#define | IS_ENCODER 0 |
Functions | |
int | 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_decode_close (AVCodecContext *avctx) |
int | ff_mpv_common_frame_size_change (MpegEncContext *s) |
static int | alloc_picture (MpegEncContext *s, MPVWorkPicture *dst, int reference) |
static int av_cold | alloc_dummy_frame (MpegEncContext *s, MPVWorkPicture *dst) |
static void | color_frame (AVFrame *frame, int luma) |
int | ff_mpv_alloc_dummy_frames (MpegEncContext *s) |
Ensure that the dummy frames are allocated according to pict_type if necessary. More... | |
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 MPVPicture *p, AVFrame *pict) |
int | ff_mpv_export_qp_table (const MpegEncContext *s, AVFrame *f, const MPVPicture *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]) |
#define IS_ENCODER 0 |
Definition at line 907 of file mpegvideo_dec.c.
int 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.
Also initialize the picture pool.
Definition at line 46 of file mpegvideo_dec.c.
Referenced by ff_h263_decode_init(), ff_rv34_decode_init(), ff_vc1_decode_init(), h261_decode_init(), and mpeg_decode_init().
int ff_mpeg_update_thread_context | ( | AVCodecContext * | dst, |
const AVCodecContext * | src | ||
) |
Definition at line 77 of file mpegvideo_dec.c.
Referenced by ff_rv34_decode_update_thread_context().
int ff_mpv_decode_close | ( | AVCodecContext * | avctx | ) |
Definition at line 163 of file mpegvideo_dec.c.
Referenced by ff_rv34_decode_end(), ff_vc1_decode_end(), mpeg_decode_end(), and wmv2_decode_end().
int ff_mpv_common_frame_size_change | ( | MpegEncContext * | s | ) |
Definition at line 172 of file mpegvideo_dec.c.
Referenced by ff_h263_decode_frame(), ff_mpeg_update_thread_context(), ff_rv34_decode_frame(), and ff_rv34_decode_update_thread_context().
|
static |
Definition at line 216 of file mpegvideo_dec.c.
Referenced by alloc_dummy_frame(), and ff_mpv_frame_start().
|
static |
Definition at line 268 of file mpegvideo_dec.c.
Referenced by ff_mpv_alloc_dummy_frames().
|
static |
Definition at line 283 of file mpegvideo_dec.c.
Referenced by ff_mpv_alloc_dummy_frames(), and ff_mpv_frame_start().
int ff_mpv_alloc_dummy_frames | ( | MpegEncContext * | s | ) |
Ensure that the dummy frames are allocated according to pict_type if necessary.
Definition at line 301 of file mpegvideo_dec.c.
Referenced by ff_mpv_frame_start(), and mpeg_field_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 344 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().
void ff_mpv_frame_end | ( | MpegEncContext * | s | ) |
Definition at line 395 of file mpegvideo_dec.c.
Referenced by decode_wmv9(), ff_h263_decode_frame(), ff_rv34_decode_frame(), finish_frame(), h261_decode_frame(), rv10_decode_frame(), rv10_decode_packet(), slice_end(), and vc1_decode_frame().
void ff_print_debug_info | ( | const MpegEncContext * | s, |
const MPVPicture * | p, | ||
AVFrame * | pict | ||
) |
Definition at line 403 of file mpegvideo_dec.c.
Referenced by ff_h263_decode_frame(), finish_frame(), h261_decode_frame(), rv10_decode_frame(), slice_end(), and vc1_decode_frame().
int ff_mpv_export_qp_table | ( | const MpegEncContext * | s, |
AVFrame * | f, | ||
const MPVPicture * | p, | ||
int | qp_type | ||
) |
Definition at line 410 of file mpegvideo_dec.c.
Referenced by ff_h263_decode_frame(), finish_frame(), rv10_decode_frame(), and slice_end().
void ff_mpeg_draw_horiz_band | ( | MpegEncContext * | s, |
int | y, | ||
int | h | ||
) |
Definition at line 441 of file mpegvideo_dec.c.
Referenced by d3d12va_mpeg2_end_frame(), decode_slice(), dxva2_mpeg2_end_frame(), mpeg_decode_slice(), vaapi_mpeg2_end_frame(), and vaapi_mpeg4_end_frame().
void ff_mpeg_flush | ( | AVCodecContext * | avctx | ) |
Definition at line 449 of file mpegvideo_dec.c.
Referenced by decode_wmv9(), and flush().
void ff_mpv_report_decode_progress | ( | MpegEncContext * | s | ) |
Definition at line 463 of file mpegvideo_dec.c.
Referenced by decode_slice(), and mpeg_decode_slice().
|
inlinestatic |
Definition at line 470 of file mpegvideo_dec.c.
Referenced by MPV_motion_lowres().
|
static |
Definition at line 519 of file mpegvideo_dec.c.
Referenced by MPV_motion_lowres().
|
inlinestatic |
Definition at line 661 of file mpegvideo_dec.c.
Referenced by MPV_motion_lowres().
|
inlinestatic |
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) the motion vectors are taken from s->mv and the MV type from s->mv_type |
Definition at line 731 of file mpegvideo_dec.c.
Referenced by mpv_reconstruct_mb_internal().
|
static |
find the lowest MB row referenced in the MVs
Definition at line 863 of file mpegvideo_dec.c.
Referenced by mpv_reconstruct_mb_internal().
|
inlinestatic |
Definition at line 899 of file mpegvideo_dec.c.
Referenced by mpv_reconstruct_mb_internal().
void ff_mpv_reconstruct_mb | ( | MpegEncContext * | s, |
int16_t | block[12][64] | ||
) |
Definition at line 910 of file mpegvideo_dec.c.
Referenced by decode_slice(), h261_decode_mb(), h261_decode_mb_skipped(), mpeg_decode_slice(), mpeg_er_decode_mb(), and rv10_decode_packet().