FFmpeg
|
#include "framequeue.h"
#include "libavutil/avassert.h"
#include "avfilter.h"
#include "bufferqueue.h"
#include "framesync.h"
#include "internal.h"
Go to the source code of this file.
Macros | |
#define | FF_INTERNAL_FIELDS 1 |
#define | OFFSET(member) offsetof(FFFrameSync, member) |
Enumerations | |
enum | { STATE_BOF, STATE_RUN, STATE_EOF } |
Functions | |
static const char * | framesync_name (void *ptr) |
int | ff_framesync_init (FFFrameSync *fs, void *parent, unsigned nb_in) |
Initialize a frame sync structure. More... | |
static void | framesync_sync_level_update (FFFrameSync *fs) |
int | ff_framesync_configure (FFFrameSync *fs) |
Configure a frame sync structure. More... | |
static void | framesync_advance (FFFrameSync *fs) |
static int64_t | framesync_pts_extrapolate (FFFrameSync *fs, unsigned in, int64_t pts) |
static void | framesync_inject_frame (FFFrameSync *fs, unsigned in, AVFrame *frame) |
int | ff_framesync_add_frame (FFFrameSync *fs, unsigned in, AVFrame *frame) |
Add a frame to an input. More... | |
void | ff_framesync_next (FFFrameSync *fs) |
Prepare the next frame event. More... | |
void | ff_framesync_drop (FFFrameSync *fs) |
Drop the current frame event. More... | |
int | ff_framesync_get_frame (FFFrameSync *fs, unsigned in, AVFrame **rframe, unsigned get) |
Get the current frame in an input. More... | |
void | ff_framesync_uninit (FFFrameSync *fs) |
Free all memory currently allocated. More... | |
int | ff_framesync_process_frame (FFFrameSync *fs, unsigned all) |
Process one or several frame using the on_event callback. More... | |
int | ff_framesync_filter_frame (FFFrameSync *fs, AVFilterLink *inlink, AVFrame *in) |
Accept a frame on a filter input. More... | |
int | ff_framesync_request_frame (FFFrameSync *fs, AVFilterLink *outlink) |
Request a frame on the filter output. More... | |
Variables | |
static const AVClass | framesync_class |
#define FF_INTERNAL_FIELDS 1 |
Definition at line 21 of file framesync.c.
#define OFFSET | ( | member | ) | offsetof(FFFrameSync, member) |
Definition at line 30 of file framesync.c.
anonymous enum |
Enumerator | |
---|---|
STATE_BOF | |
STATE_RUN | |
STATE_EOF |
Definition at line 46 of file framesync.c.
|
static |
Definition at line 32 of file framesync.c.
int ff_framesync_init | ( | FFFrameSync * | fs, |
void * | parent, | ||
unsigned | nb_in | ||
) |
Initialize a frame sync structure.
The entire structure is expected to be already set to 0.
fs | frame sync structure to initialize |
parent | parent object, used for logging |
nb_in | number of inputs |
Definition at line 52 of file framesync.c.
Referenced by config_output(), and ff_dualinput_init().
|
static |
Definition at line 64 of file framesync.c.
Referenced by ff_framesync_configure(), and framesync_inject_frame().
int ff_framesync_configure | ( | FFFrameSync * | fs | ) |
Configure a frame sync structure.
Must be called after all options are set but before all use.
Definition at line 80 of file framesync.c.
Referenced by config_output(), and ff_dualinput_init().
|
static |
Definition at line 121 of file framesync.c.
Referenced by ff_framesync_next().
|
static |
Definition at line 179 of file framesync.c.
Referenced by framesync_inject_frame().
|
static |
Definition at line 186 of file framesync.c.
Referenced by ff_framesync_add_frame(), and ff_framesync_next().
int ff_framesync_add_frame | ( | FFFrameSync * | fs, |
unsigned | in, | ||
AVFrame * | frame | ||
) |
Add a frame to an input.
Typically called from the filter_frame() method.
fs | frame sync structure |
in | index of the input |
frame | input frame, or NULL for EOF |
Definition at line 205 of file framesync.c.
Referenced by ff_framesync_filter_frame(), and ff_framesync_request_frame().
void ff_framesync_next | ( | FFFrameSync * | fs | ) |
Prepare the next frame event.
The status of the operation can be found in fs->frame_ready and fs->eof.
Definition at line 215 of file framesync.c.
Referenced by ff_framesync_process_frame().
void ff_framesync_drop | ( | FFFrameSync * | fs | ) |
Drop the current frame event.
Definition at line 227 of file framesync.c.
Referenced by ff_framesync_process_frame().
int ff_framesync_get_frame | ( | FFFrameSync * | fs, |
unsigned | in, | ||
AVFrame ** | rframe, | ||
unsigned | get | ||
) |
Get the current frame in an input.
fs | frame sync structure |
in | index of the input |
rframe | used to return the current frame (or NULL) |
get | if not zero, the calling code needs to get ownership of the returned frame; the current frame will either be duplicated or removed from the framesync structure |
Definition at line 232 of file framesync.c.
Referenced by process_frame().
void ff_framesync_uninit | ( | FFFrameSync * | fs | ) |
Free all memory currently allocated.
Definition at line 269 of file framesync.c.
Referenced by ff_dualinput_uninit(), and uninit().
int ff_framesync_process_frame | ( | FFFrameSync * | fs, |
unsigned | all | ||
) |
Process one or several frame using the on_event callback.
Definition at line 282 of file framesync.c.
Referenced by ff_framesync_filter_frame(), and ff_framesync_request_frame().
int ff_framesync_filter_frame | ( | FFFrameSync * | fs, |
AVFilterLink * | inlink, | ||
AVFrame * | in | ||
) |
Accept a frame on a filter input.
This function can be the complete implementation of all filter_frame methods of a filter using framesync.
Definition at line 303 of file framesync.c.
Referenced by ff_dualinput_filter_frame(), and filter_frame().
int ff_framesync_request_frame | ( | FFFrameSync * | fs, |
AVFilterLink * | outlink | ||
) |
Request a frame on the filter output.
This function can be the complete implementation of all filter_frame methods of a filter using framesync if it has only one output.
Definition at line 317 of file framesync.c.
Referenced by ff_dualinput_request_frame(), and request_frame().
|
static |
Definition at line 37 of file framesync.c.
Referenced by ff_framesync_init().