FFmpegKit Android API 4.5
Macros | Functions | Variables
fftools_ffmpeg_filter.c File Reference

Go to the source code of this file.

Macros

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

Functions

static enum AVPixelFormat * get_compliance_normal_pix_fmts (const AVCodec *codec, const enum AVPixelFormat default_formats[])
 
enum AVPixelFormat choose_pixel_fmt (AVStream *st, AVCodecContext *enc_ctx, const AVCodec *codec, enum AVPixelFormat target)
 
static char * choose_pix_fmts (OutputFilter *ofilter)
 
 DEF_CHOOSE_FORMAT (sample_fmts, enum AVSampleFormat, format, formats, AV_SAMPLE_FMT_NONE, "%s", av_get_sample_fmt_name) DEF_CHOOSE_FORMAT(sample_rates
 
 DEF_CHOOSE_FORMAT (channel_layouts, uint64_t, channel_layout, channel_layouts, 0, "0x%"PRIx64,) int init_simple_filtergraph(InputStream *ist
 
 if (!fg) exit_program(1)
 
 GROW_ARRAY (fg->outputs, fg->nb_outputs)
 
 if (!(fg->outputs[0]=av_mallocz(sizeof(*fg->outputs[0])))) exit_program(1)
 
 if (!(fg->inputs[0]=av_mallocz(sizeof(*fg->inputs[0])))) exit_program(1)
 
 if (!fg->inputs[0]->frame_queue) exit_program(1)
 
 GROW_ARRAY (ist->filters, ist->nb_filters)
 
 GROW_ARRAY (filtergraphs, nb_filtergraphs)
 
static char * describe_filter_link (FilterGraph *fg, AVFilterInOut *inout, int in)
 
static void init_input_filter (FilterGraph *fg, AVFilterInOut *in)
 
int init_complex_filtergraph (FilterGraph *fg)
 
static int insert_trim (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 (FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out)
 
static int configure_output_audio_filter (FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out)
 
int configure_output_filter (FilterGraph *fg, OutputFilter *ofilter, AVFilterInOut *out)
 
void check_filter_outputs (void)
 
static int sub2video_prepare (InputStream *ist, InputFilter *ifilter)
 
static int configure_input_video_filter (FilterGraph *fg, InputFilter *ifilter, AVFilterInOut *in)
 
static int configure_input_audio_filter (FilterGraph *fg, InputFilter *ifilter, AVFilterInOut *in)
 
static int configure_input_filter (FilterGraph *fg, InputFilter *ifilter, AVFilterInOut *in)
 
static void cleanup_filtergraph (FilterGraph *fg)
 
int configure_filtergraph (FilterGraph *fg)
 
int ifilter_parameters_from_frame (InputFilter *ifilter, const AVFrame *frame)
 
int filtergraph_is_simple (FilterGraph *fg)
 

Variables

 int
 
 sample_rate
 
 sample_rates
 
 d
 
OutputStreamost
 
fg index = nb_filtergraphs
 
fg outputs[0] graph = fg
 
fg outputs[0] format = -1
 
ost filter = fg->outputs[0]
 
fg inputs[0] ist = ist
 
fg inputs[0] frame_queue = av_fifo_alloc(8 * sizeof(AVFrame*))
 
ist filters [ist->nb_filters - 1] = fg->inputs[0]
 
 filtergraphs [nb_filtergraphs - 1] = fg
 
 return
 

Macro Definition Documentation

◆ AUTO_INSERT_FILTER

#define AUTO_INSERT_FILTER (   opt_name,
  filter_name,
  arg 
)
Value:
do { \
AVFilterContext *filt_ctx; \
\
av_log(NULL, 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, fg->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)

◆ AUTO_INSERT_FILTER_INPUT

#define AUTO_INSERT_FILTER_INPUT (   opt_name,
  filter_name,
  arg 
)
Value:
do { \
AVFilterContext *filt_ctx; \
\
av_log(NULL, AV_LOG_INFO, opt_name " is forwarded to lavfi " \
"similarly to -af " filter_name "=%s.\n", arg); \
\
snprintf(name, sizeof(name), "graph_%d_%s_in_%d_%d", \
fg->index, filter_name, ist->file_index, ist->st->index); \
ret = avfilter_graph_create_filter(&filt_ctx, \
avfilter_get_by_name(filter_name), \
name, arg, NULL, fg->graph); \
if (ret < 0) \
return ret; \
\
ret = avfilter_link(last_filter, 0, filt_ctx, 0); \
if (ret < 0) \
return ret; \
\
last_filter = filt_ctx; \
} while (0)
fg inputs[0] ist

◆ DEF_CHOOSE_FORMAT

#define DEF_CHOOSE_FORMAT (   name,
  type,
  var,
  supported_list,
  none,
  printf_format,
  get_name 
)
Value:
static void choose_ ## name (OutputFilter *ofilter, AVBPrint *bprint) \
{ \
if (ofilter->var == none && !ofilter->supported_list) \
return; \
av_bprintf(bprint, #name "="); \
if (ofilter->var != none) { \
av_bprintf(bprint, printf_format, get_name(ofilter->var)); \
} else { \
const type *p; \
\
for (p = ofilter->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); \
}

Definition at line 140 of file fftools_ffmpeg_filter.c.

Function Documentation

◆ check_filter_outputs()

void check_filter_outputs ( void  )

Definition at line 645 of file fftools_ffmpeg_filter.c.

◆ choose_pix_fmts()

static char * choose_pix_fmts ( OutputFilter ofilter)
static

Definition at line 96 of file fftools_ffmpeg_filter.c.

◆ choose_pixel_fmt()

enum AVPixelFormat choose_pixel_fmt ( AVStream *  st,
AVCodecContext *  enc_ctx,
const AVCodec *  codec,
enum AVPixelFormat  target 
)

Definition at line 65 of file fftools_ffmpeg_filter.c.

◆ cleanup_filtergraph()

static void cleanup_filtergraph ( FilterGraph fg)
static

Definition at line 955 of file fftools_ffmpeg_filter.c.

◆ configure_filtergraph()

int configure_filtergraph ( FilterGraph fg)

Definition at line 965 of file fftools_ffmpeg_filter.c.

◆ configure_input_audio_filter()

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

Definition at line 829 of file fftools_ffmpeg_filter.c.

◆ configure_input_filter()

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

Definition at line 939 of file fftools_ffmpeg_filter.c.

◆ configure_input_video_filter()

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

Definition at line 707 of file fftools_ffmpeg_filter.c.

◆ configure_output_audio_filter()

static int configure_output_audio_filter ( FilterGraph fg,
OutputFilter ofilter,
AVFilterInOut *  out 
)
static

Definition at line 522 of file fftools_ffmpeg_filter.c.

◆ configure_output_filter()

int configure_output_filter ( FilterGraph fg,
OutputFilter ofilter,
AVFilterInOut *  out 
)

Definition at line 630 of file fftools_ffmpeg_filter.c.

◆ configure_output_video_filter()

static int configure_output_video_filter ( FilterGraph fg,
OutputFilter ofilter,
AVFilterInOut *  out 
)
static

Definition at line 429 of file fftools_ffmpeg_filter.c.

◆ DEF_CHOOSE_FORMAT() [1/2]

DEF_CHOOSE_FORMAT ( channel_layouts  ,
uint64_t  ,
channel_layout  ,
channel_layouts  ,
,
"0x%"  PRIx64 
)

◆ DEF_CHOOSE_FORMAT() [2/2]

DEF_CHOOSE_FORMAT ( sample_fmts  ,
enum  AVSampleFormat,
format  ,
formats  ,
AV_SAMPLE_FMT_NONE  ,
"%s"  ,
av_get_sample_fmt_name   
)

◆ describe_filter_link()

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

Definition at line 209 of file fftools_ffmpeg_filter.c.

◆ filtergraph_is_simple()

int filtergraph_is_simple ( FilterGraph fg)

Definition at line 1166 of file fftools_ffmpeg_filter.c.

◆ get_compliance_normal_pix_fmts()

static enum AVPixelFormat * get_compliance_normal_pix_fmts ( const AVCodec *  codec,
const enum AVPixelFormat  default_formats[] 
)
static

Definition at line 52 of file fftools_ffmpeg_filter.c.

◆ GROW_ARRAY() [1/3]

GROW_ARRAY ( fg->  outputs,
fg->  nb_outputs 
)

◆ GROW_ARRAY() [2/3]

GROW_ARRAY ( filtergraphs  ,
nb_filtergraphs   
)

◆ GROW_ARRAY() [3/3]

GROW_ARRAY ( ist->  filters,
ist->  nb_filters 
)

◆ if() [1/4]

if ( fg->inputs[0]=av_mallocz(sizeof(*fg->inputs[0])))

◆ if() [2/4]

if ( fg->outputs[0]=av_mallocz(sizeof(*fg->outputs[0])))

◆ if() [3/4]

if ( fg)

◆ if() [4/4]

if ( !fg->inputs->  frame_queue[0])

◆ ifilter_parameters_from_frame()

int ifilter_parameters_from_frame ( InputFilter ifilter,
const AVFrame *  frame 
)

Definition at line 1143 of file fftools_ffmpeg_filter.c.

◆ init_complex_filtergraph()

int init_complex_filtergraph ( FilterGraph fg)

Definition at line 315 of file fftools_ffmpeg_filter.c.

◆ init_input_filter()

static void init_input_filter ( FilterGraph fg,
AVFilterInOut *  in 
)
static

Definition at line 228 of file fftools_ffmpeg_filter.c.

◆ insert_filter()

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

Definition at line 407 of file fftools_ffmpeg_filter.c.

◆ insert_trim()

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

Definition at line 356 of file fftools_ffmpeg_filter.c.

◆ sub2video_prepare()

static int sub2video_prepare ( InputStream ist,
InputFilter ifilter 
)
static

Definition at line 660 of file fftools_ffmpeg_filter.c.

Variable Documentation

◆ d

d

Definition at line 167 of file fftools_ffmpeg_filter.c.

◆ filter

ost filter = fg->outputs[0]

Definition at line 187 of file fftools_ffmpeg_filter.c.

◆ filtergraphs

filtergraphs[nb_filtergraphs - 1] = fg

Definition at line 204 of file fftools_ffmpeg_filter.c.

◆ filters

ist filters[ist->nb_filters - 1] = fg->inputs[0]

Definition at line 201 of file fftools_ffmpeg_filter.c.

◆ format

fg inputs [0] format = -1

Definition at line 185 of file fftools_ffmpeg_filter.c.

◆ frame_queue

fg inputs [0] frame_queue = av_fifo_alloc(8 * sizeof(AVFrame*))

Definition at line 196 of file fftools_ffmpeg_filter.c.

◆ graph

fg inputs [0] graph = fg

Definition at line 184 of file fftools_ffmpeg_filter.c.

◆ index

fg index = nb_filtergraphs

Definition at line 178 of file fftools_ffmpeg_filter.c.

◆ int

int

Definition at line 166 of file fftools_ffmpeg_filter.c.

◆ ist

fg inputs [0] ist = ist

Definition at line 192 of file fftools_ffmpeg_filter.c.

◆ ost

fg outputs [0] ost
Initial value:
{
FilterGraph *fg = av_mallocz(sizeof(*fg))

Definition at line 172 of file fftools_ffmpeg_filter.c.

◆ return

return

Definition at line 206 of file fftools_ffmpeg_filter.c.

◆ sample_rate

sample_rate

Definition at line 166 of file fftools_ffmpeg_filter.c.

◆ sample_rates

sample_rates

Definition at line 166 of file fftools_ffmpeg_filter.c.