FFmpeg
Macros | Functions
mpegpicture.c File Reference
#include <stdint.h>
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "motion_est.h"
#include "mpegpicture.h"
#include "mpegvideo.h"
#include "refstruct.h"
#include "threadframe.h"

Go to the source code of this file.

Macros

#define MAKE_WRITABLE(table)
 
#define EMU_EDGE_HEIGHT   (4 * 70)
 

Functions

static void av_noinline free_picture_tables (Picture *pic)
 
static int make_table_writable (AVBufferRef **ref)
 
static int make_tables_writable (Picture *pic)
 
int ff_mpeg_framesize_alloc (AVCodecContext *avctx, MotionEstContext *me, ScratchpadContext *sc, int linesize)
 
static int handle_pic_linesizes (AVCodecContext *avctx, Picture *pic, MotionEstContext *me, ScratchpadContext *sc, int linesize, int uvlinesize)
 Check the pic's linesize and allocate linesize dependent scratch buffers. More...
 
static int alloc_picture_tables (AVCodecContext *avctx, Picture *pic, int encoding, int out_format, int mb_stride, int mb_width, int mb_height, int b8_stride)
 
int ff_alloc_picture (AVCodecContext *avctx, Picture *pic, MotionEstContext *me, ScratchpadContext *sc, int encoding, int out_format, int mb_stride, int mb_width, int mb_height, int b8_stride, ptrdiff_t *linesize, ptrdiff_t *uvlinesize)
 Allocate a Picture. More...
 
void ff_mpeg_unref_picture (Picture *pic)
 Deallocate a picture; frees the picture tables in case they need to be reallocated anyway. More...
 
int ff_update_picture_tables (Picture *dst, const Picture *src)
 
int ff_mpeg_ref_picture (Picture *dst, Picture *src)
 
static int pic_is_unused (Picture *pic)
 
static int find_unused_picture (AVCodecContext *avctx, Picture *picture, int shared)
 
int ff_find_unused_picture (AVCodecContext *avctx, Picture *picture, int shared)
 
void av_cold ff_mpv_picture_free (Picture *pic)
 

Macro Definition Documentation

◆ MAKE_WRITABLE

#define MAKE_WRITABLE (   table)
Value:
do {\
int ret = make_table_writable(&pic->table); \
if (ret < 0) \
return ret; \
} while (0)

◆ EMU_EDGE_HEIGHT

#define EMU_EDGE_HEIGHT   (4 * 70)

Function Documentation

◆ free_picture_tables()

static void av_noinline free_picture_tables ( Picture pic)
static

◆ make_table_writable()

static int make_table_writable ( AVBufferRef **  ref)
static

Definition at line 51 of file mpegpicture.c.

◆ make_tables_writable()

static int make_tables_writable ( Picture pic)
static

Definition at line 65 of file mpegpicture.c.

Referenced by ff_alloc_picture().

◆ ff_mpeg_framesize_alloc()

int ff_mpeg_framesize_alloc ( AVCodecContext avctx,
MotionEstContext me,
ScratchpadContext sc,
int  linesize 
)

◆ handle_pic_linesizes()

static int handle_pic_linesizes ( AVCodecContext avctx,
Picture pic,
MotionEstContext me,
ScratchpadContext sc,
int  linesize,
int  uvlinesize 
)
static

Check the pic's linesize and allocate linesize dependent scratch buffers.

Definition at line 128 of file mpegpicture.c.

Referenced by ff_alloc_picture().

◆ alloc_picture_tables()

static int alloc_picture_tables ( AVCodecContext avctx,
Picture pic,
int  encoding,
int  out_format,
int  mb_stride,
int  mb_width,
int  mb_height,
int  b8_stride 
)
static

Definition at line 164 of file mpegpicture.c.

Referenced by ff_alloc_picture().

◆ ff_alloc_picture()

int ff_alloc_picture ( AVCodecContext avctx,
Picture pic,
MotionEstContext me,
ScratchpadContext sc,
int  encoding,
int  out_format,
int  mb_stride,
int  mb_width,
int  mb_height,
int  b8_stride,
ptrdiff_t *  linesize,
ptrdiff_t *  uvlinesize 
)

Allocate a Picture.

Allocate a Picture's accessories, but not the AVFrame's buffer itself.

The pixels are allocated/set by calling get_buffer() if shared = 0

Definition at line 204 of file mpegpicture.c.

Referenced by alloc_picture().

◆ ff_mpeg_unref_picture()

void ff_mpeg_unref_picture ( Picture pic)

◆ ff_update_picture_tables()

int ff_update_picture_tables ( Picture dst,
const Picture src 
)

Definition at line 273 of file mpegpicture.c.

Referenced by ff_mpeg_ref_picture().

◆ ff_mpeg_ref_picture()

int ff_mpeg_ref_picture ( Picture dst,
Picture src 
)

Definition at line 305 of file mpegpicture.c.

Referenced by ff_mpeg_update_thread_context(), ff_mpv_frame_start(), and frame_start().

◆ pic_is_unused()

static int pic_is_unused ( Picture pic)
inlinestatic

Definition at line 339 of file mpegpicture.c.

Referenced by find_unused_picture().

◆ find_unused_picture()

static int find_unused_picture ( AVCodecContext avctx,
Picture picture,
int  shared 
)
static

Definition at line 348 of file mpegpicture.c.

Referenced by ff_find_unused_picture().

◆ ff_find_unused_picture()

int ff_find_unused_picture ( AVCodecContext avctx,
Picture picture,
int  shared 
)

Definition at line 381 of file mpegpicture.c.

Referenced by alloc_picture(), load_input_picture(), and select_input_picture().

◆ ff_mpv_picture_free()

void av_cold ff_mpv_picture_free ( Picture pic)

Definition at line 393 of file mpegpicture.c.

Referenced by ff_mpv_common_end().

ret
ret
Definition: filter_design.txt:187
make_table_writable
static int make_table_writable(AVBufferRef **ref)
Definition: mpegpicture.c:51