FFmpeg
Functions
refs.c File Reference
#include "libavutil/mem.h"
#include "container_fifo.h"
#include "decode.h"
#include "hevc.h"
#include "hevcdec.h"
#include "progressframe.h"
#include "refstruct.h"

Go to the source code of this file.

Functions

void ff_hevc_unref_frame (HEVCFrame *frame, int flags)
 
const RefPicListff_hevc_get_ref_list (const HEVCFrame *ref, int x0, int y0)
 
void ff_hevc_clear_refs (HEVCLayerContext *l)
 Mark all frames in DPB as unused for reference. More...
 
void ff_hevc_flush_dpb (HEVCContext *s)
 Drop all frames currently in DPB. More...
 
static HEVCFramealloc_frame (HEVCContext *s, HEVCLayerContext *l)
 
int ff_hevc_set_new_ref (HEVCContext *s, HEVCLayerContext *l, int poc)
 
static void unref_missing_refs (HEVCLayerContext *l)
 
int ff_hevc_output_frames (HEVCContext *s, HEVCLayerContext *l, unsigned max_output, unsigned max_dpb, int discard)
 Find frames in the DPB that are ready for output and either write them to the output FIFO or drop their output flag, depending on the value of discard. More...
 
static int init_slice_rpl (HEVCContext *s)
 
int ff_hevc_slice_rpl (HEVCContext *s)
 Construct the reference picture list(s) for the current slice. More...
 
static HEVCFramefind_ref_idx (HEVCContext *s, HEVCLayerContext *l, int poc, uint8_t use_msb)
 
static void mark_ref (HEVCFrame *frame, int flag)
 
static HEVCFramegenerate_missing_ref (HEVCContext *s, HEVCLayerContext *l, int poc)
 
static int add_candidate_ref (HEVCContext *s, HEVCLayerContext *l, RefPicList *list, int poc, int ref_flag, uint8_t use_msb)
 
int ff_hevc_frame_rps (HEVCContext *s, HEVCLayerContext *l)
 Construct the reference picture sets for the current frame. More...
 
int ff_hevc_frame_nb_refs (const SliceHeader *sh, const HEVCPPS *pps)
 Get the number of candidate references for the current frame. More...
 

Function Documentation

◆ ff_hevc_unref_frame()

void ff_hevc_unref_frame ( HEVCFrame frame,
int  flags 
)

◆ ff_hevc_get_ref_list()

const RefPicList* ff_hevc_get_ref_list ( const HEVCFrame ref,
int  x0,
int  y0 
)

Definition at line 53 of file refs.c.

Referenced by ff_hevc_deblocking_boundary_strengths().

◆ ff_hevc_clear_refs()

void ff_hevc_clear_refs ( HEVCLayerContext l)

Mark all frames in DPB as unused for reference.

Definition at line 63 of file refs.c.

Referenced by hevc_frame_start().

◆ ff_hevc_flush_dpb()

void ff_hevc_flush_dpb ( HEVCContext s)

Drop all frames currently in DPB.

Definition at line 72 of file refs.c.

Referenced by hevc_decode_flush().

◆ alloc_frame()

static HEVCFrame* alloc_frame ( HEVCContext s,
HEVCLayerContext l 
)
static

Definition at line 81 of file refs.c.

Referenced by ff_hevc_set_new_ref(), and generate_missing_ref().

◆ ff_hevc_set_new_ref()

int ff_hevc_set_new_ref ( HEVCContext s,
HEVCLayerContext l,
int  poc 
)

Definition at line 131 of file refs.c.

Referenced by hevc_frame_start().

◆ unref_missing_refs()

static void unref_missing_refs ( HEVCLayerContext l)
static

Definition at line 168 of file refs.c.

Referenced by ff_hevc_frame_rps().

◆ ff_hevc_output_frames()

int ff_hevc_output_frames ( HEVCContext s,
HEVCLayerContext l,
unsigned  max_output,
unsigned  max_dpb,
int  discard 
)

Find frames in the DPB that are ready for output and either write them to the output FIFO or drop their output flag, depending on the value of discard.

Parameters
max_outputmaximum number of output-pending frames that can be present in the DPB before output is triggered
max_dpbmaximum number of any frames that can be present in the DPB before output is triggered

Definition at line 178 of file refs.c.

Referenced by hevc_frame_start(), and hevc_receive_frame().

◆ init_slice_rpl()

static int init_slice_rpl ( HEVCContext s)
static

Definition at line 220 of file refs.c.

Referenced by ff_hevc_slice_rpl().

◆ ff_hevc_slice_rpl()

int ff_hevc_slice_rpl ( HEVCContext s)

Construct the reference picture list(s) for the current slice.

Definition at line 238 of file refs.c.

Referenced by decode_slice_data().

◆ find_ref_idx()

static HEVCFrame* find_ref_idx ( HEVCContext s,
HEVCLayerContext l,
int  poc,
uint8_t  use_msb 
)
static

Definition at line 323 of file refs.c.

Referenced by add_candidate_ref().

◆ mark_ref()

static void mark_ref ( HEVCFrame frame,
int  flag 
)
static

Definition at line 343 of file refs.c.

Referenced by add_candidate_ref(), and ff_hevc_frame_rps().

◆ generate_missing_ref()

static HEVCFrame* generate_missing_ref ( HEVCContext s,
HEVCLayerContext l,
int  poc 
)
static

Definition at line 349 of file refs.c.

Referenced by add_candidate_ref().

◆ add_candidate_ref()

static int add_candidate_ref ( HEVCContext s,
HEVCLayerContext l,
RefPicList list,
int  poc,
int  ref_flag,
uint8_t  use_msb 
)
static

Definition at line 383 of file refs.c.

Referenced by ff_hevc_frame_rps().

◆ ff_hevc_frame_rps()

int ff_hevc_frame_rps ( HEVCContext s,
HEVCLayerContext l 
)

Construct the reference picture sets for the current frame.

Definition at line 406 of file refs.c.

Referenced by hevc_frame_start().

◆ ff_hevc_frame_nb_refs()

int ff_hevc_frame_nb_refs ( const SliceHeader sh,
const HEVCPPS pps 
)

Get the number of candidate references for the current frame.

Definition at line 470 of file refs.c.

Referenced by hls_slice_header(), nvdec_hevc_start_frame(), and vdpau_hevc_start_frame().