FFmpeg
Macros | Functions
mpegpicture.c File Reference
#include <stdint.h>
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/pixdesc.h"
#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "encode.h"
#include "motion_est.h"
#include "mpegpicture.h"
#include "mpegutils.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_tables_writable (Picture *pic)
 
int ff_mpeg_framesize_alloc (AVCodecContext *avctx, MotionEstContext *me, ScratchpadContext *sc, int linesize)
 
static int alloc_frame_buffer (AVCodecContext *avctx, Picture *pic, MotionEstContext *me, ScratchpadContext *sc, int chroma_x_shift, int chroma_y_shift, int linesize, int uvlinesize)
 Allocate a frame buffer. 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 shared, int encoding, int chroma_x_shift, int chroma_y_shift, 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 (AVCodecContext *avctx, 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 (AVCodecContext *avctx, 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 (AVCodecContext *avctx, Picture *pic)
 

Macro Definition Documentation

◆ MAKE_WRITABLE

#define MAKE_WRITABLE (   table)
Value:
do {\
if (pic->table &&\
(ret = av_buffer_make_writable(&pic->table)) < 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_tables_writable()

static int make_tables_writable ( Picture pic)
static

Definition at line 53 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 
)

◆ alloc_frame_buffer()

static int alloc_frame_buffer ( AVCodecContext avctx,
Picture pic,
MotionEstContext me,
ScratchpadContext sc,
int  chroma_x_shift,
int  chroma_y_shift,
int  linesize,
int  uvlinesize 
)
static

Allocate a frame buffer.

Definition at line 118 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 205 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  shared,
int  encoding,
int  chroma_x_shift,
int  chroma_y_shift,
int  out_format,
int  mb_stride,
int  mb_width,
int  mb_height,
int  b8_stride,
ptrdiff_t *  linesize,
ptrdiff_t *  uvlinesize 
)

Allocate a Picture.

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

Definition at line 253 of file mpegpicture.c.

Referenced by alloc_picture().

◆ ff_mpeg_unref_picture()

void ff_mpeg_unref_picture ( AVCodecContext avctx,
Picture pic 
)

Deallocate a picture; frees the picture tables in case they need to be reallocated anyway.

Definition at line 317 of file mpegpicture.c.

Referenced by alloc_frame_buffer(), ff_alloc_picture(), ff_find_unused_picture(), ff_mpeg_flush(), ff_mpeg_ref_picture(), ff_mpeg_update_thread_context(), ff_mpv_encode_picture(), ff_mpv_frame_start(), ff_mpv_picture_free(), and frame_start().

◆ ff_update_picture_tables()

int ff_update_picture_tables ( Picture dst,
const Picture src 
)

Definition at line 339 of file mpegpicture.c.

Referenced by ff_mpeg_ref_picture().

◆ ff_mpeg_ref_picture()

int ff_mpeg_ref_picture ( AVCodecContext avctx,
Picture dst,
Picture src 
)

Definition at line 377 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 420 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 429 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 
)

◆ ff_mpv_picture_free()

void av_cold ff_mpv_picture_free ( AVCodecContext avctx,
Picture pic 
)

Definition at line 474 of file mpegpicture.c.

Referenced by ff_mpv_common_end().

av_buffer_make_writable
int av_buffer_make_writable(AVBufferRef **pbuf)
Create a writable reference from a given buffer reference, avoiding data copy if possible.
Definition: buffer.c:165
ret
ret
Definition: filter_design.txt:187