FFmpeg
Loading...
Searching...
No Matches
ffmpeg_filter.c File Reference
#include <stdint.h>
#include "ffmpeg.h"
#include "graph/graphprint.h"
#include "libavfilter/avfilter.h"
#include "libavfilter/buffersink.h"
#include "libavfilter/buffersrc.h"
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/downmix_info.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/pixfmt.h"
#include "libavutil/samplefmt.h"
#include "libavutil/time.h"
#include "libavutil/timestamp.h"

Go to the source code of this file.

Data Structures

struct  FilterGraphPriv
 
struct  FilterGraphThread
 
struct  InputFilterPriv
 
struct  FPSConvContext
 
struct  ReinitOpts
 
struct  OutputFilterPriv
 
struct  FilterCommand
 

Macros

#define DEF_CHOOSE_FORMAT(name, type, var, supported_list, none, printf_format, get_name)
 
#define AUTO_INSERT_FILTER(opt_name, filter_name, arg)
 

Enumerations

enum  ReinitReason {
  VIDEO_CHANGED = (1 << 0) , AUDIO_CHANGED = (1 << 1) , MATRIX_CHANGED = (1 << 2) , DOWNMIX_CHANGED = (1 << 3) ,
  HWACCEL_CHANGED = (1 << 4)
}
 

Functions

static FilterGraphPrivfgp_from_fg (FilterGraph *fg)
 
static const FilterGraphPrivcfgp_from_cfg (const FilterGraph *fg)
 
static InputFilterPrivifp_from_ifilter (InputFilter *ifilter)
 
static OutputFilterPrivofp_from_ofilter (OutputFilter *ofilter)
 
static void filter_command_free (void *opaque, uint8_t *data)
 
static int sub2video_get_blank_frame (InputFilterPriv *ifp)
 
static void sub2video_copy_rect (uint8_t *dst, int dst_linesize, int w, int h, AVSubtitleRect *r)
 
static void sub2video_push_ref (InputFilterPriv *ifp, int64_t pts)
 
static void sub2video_update (InputFilterPriv *ifp, int64_t heartbeat_pts, const AVSubtitle *sub)
 
 DEF_CHOOSE_FORMAT (pix_fmts, enum AVPixelFormat, format, pix_fmts, AV_PIX_FMT_NONE, "%s", av_get_pix_fmt_name) DEF_CHOOSE_FORMAT(sample_fmts
 
s av_get_sample_fmt_name DEF_CHOOSE_FORMAT (sample_rates, int, sample_rate, sample_rates, 0, "%d")
 
static int read_binary (void *logctx, const char *path, uint8_t **data, int *len)
 
static int filter_opt_apply (void *logctx, AVFilterContext *f, const char *key, const char *val)
 
static int graph_opts_apply (void *logctx, AVFilterGraphSegment *seg)
 
static int graph_parse (void *logctx, AVFilterGraph *graph, const char *desc, AVFilterInOut **inputs, AVFilterInOut **outputs, AVBufferRef *hw_device)
 
static int ifilter_has_all_input_formats (FilterGraph *fg)
 
static int filter_thread (void *arg)
 
static char * describe_filter_link (FilterGraph *fg, AVFilterInOut *inout, int in)
 
static const char * ofilter_item_name (void *obj)
 
static OutputFilterofilter_alloc (FilterGraph *fg, enum AVMediaType type)
 
static int ifilter_bind_ist (InputFilter *ifilter, InputStream *ist, const ViewSpecifier *vs)
 
static int ifilter_bind_dec (InputFilterPriv *ifp, Decoder *dec, const ViewSpecifier *vs)
 
static int set_channel_layout (OutputFilterPriv *f, const AVChannelLayout *layouts_allowed, const AVChannelLayout *layout_requested)
 
static int parse_reinit_opts (AVFifo **pout, const char *opts, void *logctx)
 
int ofilter_bind_enc (OutputFilter *ofilter, unsigned sched_idx_enc, const OutputFilterOptions *opts)
 
static int ofilter_bind_ifilter (OutputFilter *ofilter, InputFilterPriv *ifp, const OutputFilterOptions *opts)
 
static int ifilter_bind_fg (InputFilterPriv *ifp, FilterGraph *fg_src, int out_idx)
 
static InputFilterifilter_alloc (FilterGraph *fg)
 
void fg_free (FilterGraph **pfg)
 
static const char * fg_item_name (void *obj)
 
int fg_create (FilterGraph **pfg, char **graph_desc, Scheduler *sch, const OutputFilterOptions *opts)
 Create a new filtergraph in the global filtergraph list.
 
int fg_create_simple (FilterGraph **pfg, InputStream *ist, char **graph_desc, Scheduler *sch, unsigned sched_idx_enc, const OutputFilterOptions *opts)
 
static int fg_complex_bind_input (FilterGraph *fg, InputFilter *ifilter, int commit)
 
static int bind_inputs (FilterGraph *fg, int commit)
 
int fg_finalise_bindings (void)
 
static int insert_trim (void *logctx, int64_t start_time, int64_t duration, AVFilterContext **last_filter, int *pad_idx, const char *filter_name)
 
static int insert_filter (AVFilterContext **last_filter, int *pad_idx, const char *filter_name, const char *args)
 
static int configure_output_video_filter (FilterGraphPriv *fgp, AVFilterGraph *graph, OutputFilter *ofilter, AVFilterInOut *out)
 
static int configure_output_audio_filter (FilterGraphPriv *fgp, AVFilterGraph *graph, OutputFilter *ofilter, AVFilterInOut *out)
 
static int configure_output_filter (FilterGraphPriv *fgp, AVFilterGraph *graph, OutputFilter *ofilter, AVFilterInOut *out)
 
static void sub2video_prepare (InputFilterPriv *ifp)
 
static int configure_input_video_filter (FilterGraph *fg, AVFilterGraph *graph, InputFilter *ifilter, AVFilterInOut *in)
 
static int configure_input_audio_filter (FilterGraph *fg, AVFilterGraph *graph, InputFilter *ifilter, AVFilterInOut *in)
 
static int configure_input_filter (FilterGraph *fg, AVFilterGraph *graph, InputFilter *ifilter, AVFilterInOut *in)
 
static void cleanup_filtergraph (FilterGraph *fg, FilterGraphThread *fgt)
 
static int filter_is_buffersrc (const AVFilterContext *f)
 
static int graph_is_meta (AVFilterGraph *graph)
 
static int sub2video_frame (InputFilter *ifilter, AVFrame *frame, int buffer)
 
static int configure_filtergraph (FilterGraph *fg, FilterGraphThread *fgt)
 
static int ifilter_parameters_from_frame (InputFilter *ifilter, const AVFrame *frame)
 
static int ifilter_parameters_from_ofilter (InputFilter *ifilter, OutputFilter *ofilter)
 
int filtergraph_is_simple (const FilterGraph *fg)
 
static void send_command (FilterGraph *fg, AVFilterGraph *graph, double time, const char *target, const char *command, const char *arg, int all_filters)
 
static int choose_input (const FilterGraph *fg, const FilterGraphThread *fgt)
 
static int choose_out_timebase (OutputFilterPriv *ofp, AVFrame *frame)
 
static double adjust_frame_pts_to_encoder_tb (void *logctx, AVFrame *frame, AVRational tb_dst, int64_t start_time)
 
static int64_t median3 (int64_t a, int64_t b, int64_t c)
 
static void video_sync_process (OutputFilterPriv *ofp, AVFrame *frame, int64_t *nb_frames, int64_t *nb_frames_prev)
 
static void close_input (InputFilterPriv *ifp)
 
static int close_output (OutputFilterPriv *ofp, FilterGraphThread *fgt)
 
static int fg_output_frame (OutputFilterPriv *ofp, FilterGraphThread *fgt, AVFrame *frame)
 
static int fg_output_step (OutputFilterPriv *ofp, FilterGraphThread *fgt, AVFrame *frame)
 
static int read_frames (FilterGraph *fg, FilterGraphThread *fgt, AVFrame *frame)
 
static void sub2video_heartbeat (InputFilter *ifilter, int64_t pts, AVRational tb)
 
static int send_eof (FilterGraphThread *fgt, InputFilter *ifilter, int64_t pts, AVRational tb)
 
static const char * unknown_if_null (const char *str)
 
static int send_frame (FilterGraph *fg, FilterGraphThread *fgt, InputFilter *ifilter, AVFrame *frame, int force_reinit)
 
static void fg_thread_set_name (const FilterGraph *fg)
 
static void fg_thread_uninit (FilterGraphThread *fgt)
 
static int fg_thread_init (FilterGraphThread *fgt, const FilterGraph *fg)
 
static int check_reinit (FilterGraph *fg, FilterGraphThread *fgt)
 
void fg_send_command (FilterGraph *fg, double time, const char *target, const char *command, const char *arg, int all_filters)
 

Variables

static const AVOption ofilter_options []
 
static const AVClass ofilter_class
 
static const AVClass fg_class
 

Macro Definition Documentation

◆ DEF_CHOOSE_FORMAT

#define DEF_CHOOSE_FORMAT ( name,
type,
var,
supported_list,
none,
printf_format,
get_name )
Value:
static void choose_ ## name (OutputFilterPriv *ofp, AVBPrint *bprint) \
{ \
if (ofp->var == none && !ofp->supported_list) \
return; \
av_bprintf(bprint, #name "="); \
if (ofp->var != none) { \
av_bprintf(bprint, printf_format, get_name(ofp->var)); \
} else { \
const type *p; \
\
for (p = ofp->supported_list; *p != none; p++) { \
av_bprintf(bprint, printf_format "|", get_name(*p)); \
} \
if (bprint->len > 0) \
bprint->str[--bprint->len] = '\0'; \
} \
av_bprint_chars(bprint, ':', 1); \
}
cl_device_type type
const char * name
Definition qsvenc.c:142

Definition at line 396 of file ffmpeg_filter.c.

Referenced by DEF_CHOOSE_FORMAT().

◆ AUTO_INSERT_FILTER

#define AUTO_INSERT_FILTER ( opt_name,
filter_name,
arg )
Value:
do { \
AVFilterContext *filt_ctx; \
\
av_log(ofilter, AV_LOG_INFO, opt_name " is forwarded to lavfi " \
"similarly to -af " filter_name "=%s.\n", arg); \
\
ret = avfilter_graph_create_filter(&filt_ctx, \
avfilter_get_by_name(filter_name), \
filter_name, arg, NULL, graph); \
if (ret < 0) \
goto fail; \
\
ret = avfilter_link(last_filter, pad_idx, filt_ctx, 0); \
if (ret < 0) \
goto fail; \
\
last_filter = filt_ctx; \
pad_idx = 0; \
} while (0)
#define NULL
Definition coverity.c:32
#define fail
Definition test.h:479
const AVFilter * avfilter_get_by_name(const char *name)
Get a filter definition matching the given name.
Definition allfilters.c:654
int avfilter_link(AVFilterContext *src, unsigned srcpad, AVFilterContext *dst, unsigned dstpad)
Link two filters together.
Definition avfilter.c:149
int avfilter_graph_create_filter(AVFilterContext **filt_ctx, const AVFilter *filt, const char *name, const char *args, void *opaque, AVFilterGraph *graph_ctx)
A convenience wrapper that allocates and initializes a filter in a single step.
#define AV_LOG_INFO
Standard information.
Definition log.h:221
const char * arg
Definition jacosubdec.c:65
An instance of a filter.
Definition avfilter.h:273

Referenced by configure_output_audio_filter().

Enumeration Type Documentation

◆ ReinitReason

Enumerator
VIDEO_CHANGED 
AUDIO_CHANGED 
MATRIX_CHANGED 
DOWNMIX_CHANGED 
HWACCEL_CHANGED 

Definition at line 3167 of file ffmpeg_filter.c.

Function Documentation

◆ fgp_from_fg()

◆ cfgp_from_cfg()

static const FilterGraphPriv * cfgp_from_cfg ( const FilterGraph * fg)
static

Definition at line 74 of file ffmpeg_filter.c.

Referenced by filtergraph_is_simple().

◆ ifp_from_ifilter()

◆ ofp_from_ofilter()

◆ filter_command_free()

static void filter_command_free ( void * opaque,
uint8_t * data )
static

Definition at line 274 of file ffmpeg_filter.c.

Referenced by fg_send_command().

◆ sub2video_get_blank_frame()

static int sub2video_get_blank_frame ( InputFilterPriv * ifp)
static

Definition at line 285 of file ffmpeg_filter.c.

Referenced by sub2video_update().

◆ sub2video_copy_rect()

static void sub2video_copy_rect ( uint8_t * dst,
int dst_linesize,
int w,
int h,
AVSubtitleRect * r )
static

Definition at line 308 of file ffmpeg_filter.c.

Referenced by sub2video_update().

◆ sub2video_push_ref()

static void sub2video_push_ref ( InputFilterPriv * ifp,
int64_t pts )
static

Definition at line 339 of file ffmpeg_filter.c.

Referenced by sub2video_heartbeat(), and sub2video_update().

◆ sub2video_update()

static void sub2video_update ( InputFilterPriv * ifp,
int64_t heartbeat_pts,
const AVSubtitle * sub )
static

Definition at line 355 of file ffmpeg_filter.c.

Referenced by sub2video_frame(), and sub2video_heartbeat().

◆ DEF_CHOOSE_FORMAT() [1/2]

DEF_CHOOSE_FORMAT ( pix_fmts ,
enum AVPixelFormat,
format ,
pix_fmts ,
AV_PIX_FMT_NONE ,
"%s" ,
av_get_pix_fmt_name  )

◆ DEF_CHOOSE_FORMAT() [2/2]

s av_get_sample_fmt_name DEF_CHOOSE_FORMAT ( sample_rates ,
int ,
sample_rate ,
sample_rates ,
0 ,
"%d"  )

Definition at line 422 of file ffmpeg_filter.c.

◆ read_binary()

static int read_binary ( void * logctx,
const char * path,
uint8_t ** data,
int * len )
static

Definition at line 454 of file ffmpeg_filter.c.

Referenced by filter_opt_apply().

◆ filter_opt_apply()

static int filter_opt_apply ( void * logctx,
AVFilterContext * f,
const char * key,
const char * val )
static

Definition at line 503 of file ffmpeg_filter.c.

Referenced by graph_opts_apply().

◆ graph_opts_apply()

static int graph_opts_apply ( void * logctx,
AVFilterGraphSegment * seg )
static

Definition at line 559 of file ffmpeg_filter.c.

Referenced by graph_parse().

◆ graph_parse()

static int graph_parse ( void * logctx,
AVFilterGraph * graph,
const char * desc,
AVFilterInOut ** inputs,
AVFilterInOut ** outputs,
AVBufferRef * hw_device )
static

Definition at line 583 of file ffmpeg_filter.c.

Referenced by configure_filtergraph(), and fg_create().

◆ ifilter_has_all_input_formats()

static int ifilter_has_all_input_formats ( FilterGraph * fg)
static

Definition at line 628 of file ffmpeg_filter.c.

Referenced by filter_thread(), send_eof(), and send_frame().

◆ filter_thread()

static int filter_thread ( void * arg)
static

Definition at line 3443 of file ffmpeg_filter.c.

Referenced by fg_create().

◆ describe_filter_link()

static char * describe_filter_link ( FilterGraph * fg,
AVFilterInOut * inout,
int in )
static

Definition at line 640 of file ffmpeg_filter.c.

Referenced by fg_create().

◆ ofilter_item_name()

static const char * ofilter_item_name ( void * obj)
static

Definition at line 652 of file ffmpeg_filter.c.

◆ ofilter_alloc()

static OutputFilter * ofilter_alloc ( FilterGraph * fg,
enum AVMediaType type )
static

Definition at line 678 of file ffmpeg_filter.c.

Referenced by fg_create().

◆ ifilter_bind_ist()

static int ifilter_bind_ist ( InputFilter * ifilter,
InputStream * ist,
const ViewSpecifier * vs )
static

Definition at line 702 of file ffmpeg_filter.c.

Referenced by fg_complex_bind_input(), and fg_create_simple().

◆ ifilter_bind_dec()

static int ifilter_bind_dec ( InputFilterPriv * ifp,
Decoder * dec,
const ViewSpecifier * vs )
static

Definition at line 761 of file ffmpeg_filter.c.

Referenced by fg_complex_bind_input().

◆ set_channel_layout()

static int set_channel_layout ( OutputFilterPriv * f,
const AVChannelLayout * layouts_allowed,
const AVChannelLayout * layout_requested )
static

Definition at line 794 of file ffmpeg_filter.c.

Referenced by ofilter_bind_enc().

◆ parse_reinit_opts()

static int parse_reinit_opts ( AVFifo ** pout,
const char * opts,
void * logctx )
static

Definition at line 834 of file ffmpeg_filter.c.

Referenced by ofilter_bind_enc().

◆ ofilter_bind_enc()

int ofilter_bind_enc ( OutputFilter * ofilter,
unsigned sched_idx_enc,
const OutputFilterOptions * opts )

Definition at line 903 of file ffmpeg_filter.c.

Referenced by fg_create_simple(), and ost_bind_filter().

◆ ofilter_bind_ifilter()

static int ofilter_bind_ifilter ( OutputFilter * ofilter,
InputFilterPriv * ifp,
const OutputFilterOptions * opts )
static

Definition at line 1024 of file ffmpeg_filter.c.

Referenced by ifilter_bind_fg().

◆ ifilter_bind_fg()

static int ifilter_bind_fg ( InputFilterPriv * ifp,
FilterGraph * fg_src,
int out_idx )
static

Definition at line 1046 of file ffmpeg_filter.c.

Referenced by fg_complex_bind_input().

◆ ifilter_alloc()

static InputFilter * ifilter_alloc ( FilterGraph * fg)
static

Definition at line 1083 of file ffmpeg_filter.c.

Referenced by fg_create().

◆ fg_free()

void fg_free ( FilterGraph ** pfg)

Definition at line 1112 of file ffmpeg_filter.c.

Referenced by ffmpeg_cleanup(), fg_finalise_bindings(), and ost_free().

◆ fg_item_name()

static const char * fg_item_name ( void * obj)
static

Definition at line 1178 of file ffmpeg_filter.c.

◆ fg_create()

int fg_create ( FilterGraph ** pfg,
char ** graph_desc,
Scheduler * sch,
const OutputFilterOptions * opts )

Create a new filtergraph in the global filtergraph list.

Parameters
graph_descPointer to graph description; an av_malloc()ed string, filtergraph takes ownership of it.

Definition at line 1192 of file ffmpeg_filter.c.

Referenced by ffmpeg_parse_options(), fg_create_simple(), and istg_parse_tile_grid().

◆ fg_create_simple()

int fg_create_simple ( FilterGraph ** pfg,
InputStream * ist,
char ** graph_desc,
Scheduler * sch,
unsigned sched_idx_enc,
const OutputFilterOptions * opts )

Definition at line 1342 of file ffmpeg_filter.c.

Referenced by ost_bind_filter().

◆ fg_complex_bind_input()

static int fg_complex_bind_input ( FilterGraph * fg,
InputFilter * ifilter,
int commit )
static

Definition at line 1394 of file ffmpeg_filter.c.

Referenced by bind_inputs().

◆ bind_inputs()

static int bind_inputs ( FilterGraph * fg,
int commit )
static

Definition at line 1567 of file ffmpeg_filter.c.

Referenced by fg_finalise_bindings().

◆ fg_finalise_bindings()

int fg_finalise_bindings ( void )

Definition at line 1585 of file ffmpeg_filter.c.

Referenced by ffmpeg_parse_options().

◆ insert_trim()

static int insert_trim ( void * logctx,
int64_t start_time,
int64_t duration,
AVFilterContext ** last_filter,
int * pad_idx,
const char * filter_name )
static

◆ insert_filter()

static int insert_filter ( AVFilterContext ** last_filter,
int * pad_idx,
const char * filter_name,
const char * args )
static

◆ configure_output_video_filter()

static int configure_output_video_filter ( FilterGraphPriv * fgp,
AVFilterGraph * graph,
OutputFilter * ofilter,
AVFilterInOut * out )
static

Definition at line 1713 of file ffmpeg_filter.c.

Referenced by configure_output_filter().

◆ configure_output_audio_filter()

static int configure_output_audio_filter ( FilterGraphPriv * fgp,
AVFilterGraph * graph,
OutputFilter * ofilter,
AVFilterInOut * out )
static

Definition at line 1843 of file ffmpeg_filter.c.

Referenced by configure_output_filter().

◆ configure_output_filter()

static int configure_output_filter ( FilterGraphPriv * fgp,
AVFilterGraph * graph,
OutputFilter * ofilter,
AVFilterInOut * out )
static

Definition at line 1923 of file ffmpeg_filter.c.

Referenced by configure_filtergraph().

◆ sub2video_prepare()

static void sub2video_prepare ( InputFilterPriv * ifp)
static

Definition at line 1933 of file ffmpeg_filter.c.

Referenced by configure_input_video_filter().

◆ configure_input_video_filter()

static int configure_input_video_filter ( FilterGraph * fg,
AVFilterGraph * graph,
InputFilter * ifilter,
AVFilterInOut * in )
static

Definition at line 1944 of file ffmpeg_filter.c.

Referenced by configure_input_filter().

◆ configure_input_audio_filter()

static int configure_input_audio_filter ( FilterGraph * fg,
AVFilterGraph * graph,
InputFilter * ifilter,
AVFilterInOut * in )
static

Definition at line 2063 of file ffmpeg_filter.c.

Referenced by configure_input_filter().

◆ configure_input_filter()

static int configure_input_filter ( FilterGraph * fg,
AVFilterGraph * graph,
InputFilter * ifilter,
AVFilterInOut * in )
static

Definition at line 2114 of file ffmpeg_filter.c.

Referenced by configure_filtergraph().

◆ cleanup_filtergraph()

static void cleanup_filtergraph ( FilterGraph * fg,
FilterGraphThread * fgt )
static

Definition at line 2124 of file ffmpeg_filter.c.

Referenced by configure_filtergraph().

◆ filter_is_buffersrc()

static int filter_is_buffersrc ( const AVFilterContext * f)
static

Definition at line 2133 of file ffmpeg_filter.c.

Referenced by graph_is_meta().

◆ graph_is_meta()

static int graph_is_meta ( AVFilterGraph * graph)
static

Definition at line 2140 of file ffmpeg_filter.c.

Referenced by configure_filtergraph().

◆ sub2video_frame()

static int sub2video_frame ( InputFilter * ifilter,
AVFrame * frame,
int buffer )
static

Definition at line 3057 of file ffmpeg_filter.c.

Referenced by configure_filtergraph(), and filter_thread().

◆ configure_filtergraph()

static int configure_filtergraph ( FilterGraph * fg,
FilterGraphThread * fgt )
static

Definition at line 2159 of file ffmpeg_filter.c.

Referenced by filter_thread(), send_eof(), and send_frame().

◆ ifilter_parameters_from_frame()

static int ifilter_parameters_from_frame ( InputFilter * ifilter,
const AVFrame * frame )
static

Definition at line 2332 of file ffmpeg_filter.c.

Referenced by send_frame().

◆ ifilter_parameters_from_ofilter()

static int ifilter_parameters_from_ofilter ( InputFilter * ifilter,
OutputFilter * ofilter )
static

Definition at line 2410 of file ffmpeg_filter.c.

Referenced by send_frame().

◆ filtergraph_is_simple()

int filtergraph_is_simple ( const FilterGraph * fg)

◆ send_command()

static void send_command ( FilterGraph * fg,
AVFilterGraph * graph,
double time,
const char * target,
const char * command,
const char * arg,
int all_filters )
static

Definition at line 2437 of file ffmpeg_filter.c.

Referenced by filter_thread().

◆ choose_input()

static int choose_input ( const FilterGraph * fg,
const FilterGraphThread * fgt )
static

Definition at line 2462 of file ffmpeg_filter.c.

Referenced by read_frames().

◆ choose_out_timebase()

static int choose_out_timebase ( OutputFilterPriv * ofp,
AVFrame * frame )
static

Definition at line 2485 of file ffmpeg_filter.c.

Referenced by fg_output_step().

◆ adjust_frame_pts_to_encoder_tb()

static double adjust_frame_pts_to_encoder_tb ( void * logctx,
AVFrame * frame,
AVRational tb_dst,
int64_t start_time )
static

Definition at line 2562 of file ffmpeg_filter.c.

Referenced by video_sync_process().

◆ median3()

static int64_t median3 ( int64_t a,
int64_t b,
int64_t c )
static

Definition at line 2601 of file ffmpeg_filter.c.

◆ video_sync_process()

static void video_sync_process ( OutputFilterPriv * ofp,
AVFrame * frame,
int64_t * nb_frames,
int64_t * nb_frames_prev )
static

Definition at line 2622 of file ffmpeg_filter.c.

Referenced by fg_output_frame().

◆ close_input()

static void close_input ( InputFilterPriv * ifp)
static

Definition at line 2739 of file ffmpeg_filter.c.

Referenced by filter_thread().

◆ close_output()

static int close_output ( OutputFilterPriv * ofp,
FilterGraphThread * fgt )
static

Definition at line 2749 of file ffmpeg_filter.c.

Referenced by fg_output_frame().

◆ fg_output_frame()

static int fg_output_frame ( OutputFilterPriv * ofp,
FilterGraphThread * fgt,
AVFrame * frame )
static

Definition at line 2805 of file ffmpeg_filter.c.

Referenced by fg_output_step(), and filter_thread().

◆ fg_output_step()

static int fg_output_step ( OutputFilterPriv * ofp,
FilterGraphThread * fgt,
AVFrame * frame )
static

Definition at line 2888 of file ffmpeg_filter.c.

Referenced by read_frames().

◆ read_frames()

static int read_frames ( FilterGraph * fg,
FilterGraphThread * fgt,
AVFrame * frame )
static

Definition at line 2975 of file ffmpeg_filter.c.

Referenced by filter_thread(), and send_frame().

◆ sub2video_heartbeat()

static void sub2video_heartbeat ( InputFilter * ifilter,
int64_t pts,
AVRational tb )
static

Definition at line 3035 of file ffmpeg_filter.c.

Referenced by sub2video_frame().

◆ send_eof()

static int send_eof ( FilterGraphThread * fgt,
InputFilter * ifilter,
int64_t pts,
AVRational tb )
static

Definition at line 3104 of file ffmpeg_filter.c.

Referenced by filter_thread().

◆ unknown_if_null()

static const char * unknown_if_null ( const char * str)
static

Definition at line 3175 of file ffmpeg_filter.c.

Referenced by avcodec_string(), and send_frame().

◆ send_frame()

static int send_frame ( FilterGraph * fg,
FilterGraphThread * fgt,
InputFilter * ifilter,
AVFrame * frame,
int force_reinit )
static

Definition at line 3180 of file ffmpeg_filter.c.

Referenced by filter_thread().

◆ fg_thread_set_name()

static void fg_thread_set_name ( const FilterGraph * fg)
static

Definition at line 3347 of file ffmpeg_filter.c.

Referenced by filter_thread().

◆ fg_thread_uninit()

static void fg_thread_uninit ( FilterGraphThread * fgt)
static

Definition at line 3362 of file ffmpeg_filter.c.

Referenced by fg_thread_init(), and filter_thread().

◆ fg_thread_init()

static int fg_thread_init ( FilterGraphThread * fgt,
const FilterGraph * fg )
static

Definition at line 3380 of file ffmpeg_filter.c.

Referenced by filter_thread().

◆ check_reinit()

static int check_reinit ( FilterGraph * fg,
FilterGraphThread * fgt )
static

Definition at line 3407 of file ffmpeg_filter.c.

Referenced by filter_thread().

◆ fg_send_command()

void fg_send_command ( FilterGraph * fg,
double time,
const char * target,
const char * command,
const char * arg,
int all_filters )

Definition at line 3573 of file ffmpeg_filter.c.

Referenced by check_keyboard_interaction().

Variable Documentation

◆ ofilter_options

const AVOption ofilter_options[]
static
Initial value:
= {
{"video_size", "set video size", 0x42 , AV_OPT_TYPE_IMAGE_SIZE, {.str = NULL}, 0, INT_MAX },
{"pixel_format", "set pixel format", 0x42 , AV_OPT_TYPE_PIXEL_FMT, {.i64 = AV_PIX_FMT_NONE}, -1, INT_MAX },
{"colorspace", "color space", 0x42 , AV_OPT_TYPE_INT, {.i64 = AVCOL_SPC_UNSPECIFIED }, 0, INT_MAX },
{"color_range", "color range", 0x42 , AV_OPT_TYPE_INT, {.i64 = AVCOL_RANGE_UNSPECIFIED }, 0, INT_MAX },
{"alpha_mode", "color range", 0x42 , AV_OPT_TYPE_INT, {.i64 = AVALPHA_MODE_UNSPECIFIED }, 0, INT_MAX },
{"ar", "set audio sampling rate (in Hz)", 0x42 , AV_OPT_TYPE_INT, {.i64 = 0 }, 0, INT_MAX },
{"ch_layout", NULL, 0x42 , AV_OPT_TYPE_CHLAYOUT, {.str = NULL }, 0, 0 },
{ NULL },
}
@ AV_OPT_TYPE_IMAGE_SIZE
Underlying C type is two consecutive integers.
Definition opt.h:302
@ AV_OPT_TYPE_PIXEL_FMT
Underlying C type is enum AVPixelFormat.
Definition opt.h:306
@ AV_OPT_TYPE_INT
Underlying C type is int.
Definition opt.h:258
@ AV_OPT_TYPE_CHLAYOUT
Underlying C type is AVChannelLayout.
Definition opt.h:330
@ AVCOL_RANGE_UNSPECIFIED
Definition pixfmt.h:749
@ AVALPHA_MODE_UNSPECIFIED
Unknown alpha handling, or no alpha channel.
Definition pixfmt.h:817
@ AV_PIX_FMT_NONE
Definition pixfmt.h:72
@ AVCOL_SPC_UNSPECIFIED
Definition pixfmt.h:709

Definition at line 658 of file ffmpeg_filter.c.

◆ ofilter_class

const AVClass ofilter_class
static
Initial value:
= {
.class_name = "OutputFilter",
.item_name = ofilter_item_name,
.option = ofilter_options,
.parent_log_context_offset = 0x42 ,
}
static const AVOption ofilter_options[]
static const char * ofilter_item_name(void *obj)
#define LIBAVUTIL_VERSION_INT
Definition version.h:85
@ AV_CLASS_CATEGORY_FILTER
Definition log.h:36

Definition at line 669 of file ffmpeg_filter.c.

Referenced by ofilter_alloc().

◆ fg_class

const AVClass fg_class
static
Initial value:
= {
.class_name = "FilterGraph",
.item_name = fg_item_name,
}
static const char * fg_item_name(void *obj)

Definition at line 1185 of file ffmpeg_filter.c.

Referenced by fg_create().