You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
fftools/ffmpeg_(filter|opt): Use dedicated pointer for array elem access
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -159,29 +159,33 @@ DEF_CHOOSE_FORMAT(channel_layouts, uint64_t, channel_layout, channel_layouts, 0,
|
|||||||
int init_simple_filtergraph(InputStream *ist, OutputStream *ost)
|
int init_simple_filtergraph(InputStream *ist, OutputStream *ost)
|
||||||
{
|
{
|
||||||
FilterGraph *fg = av_mallocz(sizeof(*fg));
|
FilterGraph *fg = av_mallocz(sizeof(*fg));
|
||||||
|
OutputFilter *ofilter;
|
||||||
|
InputFilter *ifilter;
|
||||||
|
|
||||||
if (!fg)
|
if (!fg)
|
||||||
exit_program(1);
|
exit_program(1);
|
||||||
fg->index = nb_filtergraphs;
|
fg->index = nb_filtergraphs;
|
||||||
|
|
||||||
ALLOC_ARRAY_ELEM(fg->outputs, fg->nb_outputs);
|
ALLOC_ARRAY_ELEM(fg->outputs, fg->nb_outputs);
|
||||||
fg->outputs[0]->ost = ost;
|
ofilter = fg->outputs[0];
|
||||||
fg->outputs[0]->graph = fg;
|
ofilter->ost = ost;
|
||||||
fg->outputs[0]->format = -1;
|
ofilter->graph = fg;
|
||||||
|
ofilter->format = -1;
|
||||||
|
|
||||||
ost->filter = fg->outputs[0];
|
ost->filter = ofilter;
|
||||||
|
|
||||||
ALLOC_ARRAY_ELEM(fg->inputs, fg->nb_inputs);
|
ALLOC_ARRAY_ELEM(fg->inputs, fg->nb_inputs);
|
||||||
fg->inputs[0]->ist = ist;
|
ifilter = fg->inputs[0];
|
||||||
fg->inputs[0]->graph = fg;
|
ifilter->ist = ist;
|
||||||
fg->inputs[0]->format = -1;
|
ifilter->graph = fg;
|
||||||
|
ifilter->format = -1;
|
||||||
|
|
||||||
fg->inputs[0]->frame_queue = av_fifo_alloc(8 * sizeof(AVFrame*));
|
ifilter->frame_queue = av_fifo_alloc(8 * sizeof(AVFrame*));
|
||||||
if (!fg->inputs[0]->frame_queue)
|
if (!ifilter->frame_queue)
|
||||||
exit_program(1);
|
exit_program(1);
|
||||||
|
|
||||||
GROW_ARRAY(ist->filters, ist->nb_filters);
|
GROW_ARRAY(ist->filters, ist->nb_filters);
|
||||||
ist->filters[ist->nb_filters - 1] = fg->inputs[0];
|
ist->filters[ist->nb_filters - 1] = ifilter;
|
||||||
|
|
||||||
GROW_ARRAY(filtergraphs, nb_filtergraphs);
|
GROW_ARRAY(filtergraphs, nb_filtergraphs);
|
||||||
filtergraphs[nb_filtergraphs - 1] = fg;
|
filtergraphs[nb_filtergraphs - 1] = fg;
|
||||||
@@ -210,6 +214,7 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
|
|||||||
{
|
{
|
||||||
InputStream *ist = NULL;
|
InputStream *ist = NULL;
|
||||||
enum AVMediaType type = avfilter_pad_get_type(in->filter_ctx->input_pads, in->pad_idx);
|
enum AVMediaType type = avfilter_pad_get_type(in->filter_ctx->input_pads, in->pad_idx);
|
||||||
|
InputFilter *ifilter;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
// TODO: support other filter types
|
// TODO: support other filter types
|
||||||
@@ -277,18 +282,19 @@ static void init_input_filter(FilterGraph *fg, AVFilterInOut *in)
|
|||||||
ist->st->discard = AVDISCARD_NONE;
|
ist->st->discard = AVDISCARD_NONE;
|
||||||
|
|
||||||
ALLOC_ARRAY_ELEM(fg->inputs, fg->nb_inputs);
|
ALLOC_ARRAY_ELEM(fg->inputs, fg->nb_inputs);
|
||||||
fg->inputs[fg->nb_inputs - 1]->ist = ist;
|
ifilter = fg->inputs[fg->nb_inputs - 1];
|
||||||
fg->inputs[fg->nb_inputs - 1]->graph = fg;
|
ifilter->ist = ist;
|
||||||
fg->inputs[fg->nb_inputs - 1]->format = -1;
|
ifilter->graph = fg;
|
||||||
fg->inputs[fg->nb_inputs - 1]->type = ist->st->codecpar->codec_type;
|
ifilter->format = -1;
|
||||||
fg->inputs[fg->nb_inputs - 1]->name = describe_filter_link(fg, in, 1);
|
ifilter->type = ist->st->codecpar->codec_type;
|
||||||
|
ifilter->name = describe_filter_link(fg, in, 1);
|
||||||
|
|
||||||
fg->inputs[fg->nb_inputs - 1]->frame_queue = av_fifo_alloc(8 * sizeof(AVFrame*));
|
ifilter->frame_queue = av_fifo_alloc(8 * sizeof(AVFrame*));
|
||||||
if (!fg->inputs[fg->nb_inputs - 1]->frame_queue)
|
if (!ifilter->frame_queue)
|
||||||
exit_program(1);
|
exit_program(1);
|
||||||
|
|
||||||
GROW_ARRAY(ist->filters, ist->nb_filters);
|
GROW_ARRAY(ist->filters, ist->nb_filters);
|
||||||
ist->filters[ist->nb_filters - 1] = fg->inputs[fg->nb_inputs - 1];
|
ist->filters[ist->nb_filters - 1] = ifilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
int init_complex_filtergraph(FilterGraph *fg)
|
int init_complex_filtergraph(FilterGraph *fg)
|
||||||
@@ -312,15 +318,17 @@ int init_complex_filtergraph(FilterGraph *fg)
|
|||||||
init_input_filter(fg, cur);
|
init_input_filter(fg, cur);
|
||||||
|
|
||||||
for (cur = outputs; cur;) {
|
for (cur = outputs; cur;) {
|
||||||
|
OutputFilter *ofilter;
|
||||||
ALLOC_ARRAY_ELEM(fg->outputs, fg->nb_outputs);
|
ALLOC_ARRAY_ELEM(fg->outputs, fg->nb_outputs);
|
||||||
|
ofilter = fg->outputs[fg->nb_outputs - 1];
|
||||||
|
|
||||||
fg->outputs[fg->nb_outputs - 1]->graph = fg;
|
ofilter->graph = fg;
|
||||||
fg->outputs[fg->nb_outputs - 1]->out_tmp = cur;
|
ofilter->out_tmp = cur;
|
||||||
fg->outputs[fg->nb_outputs - 1]->type = avfilter_pad_get_type(cur->filter_ctx->output_pads,
|
ofilter->type = avfilter_pad_get_type(cur->filter_ctx->output_pads,
|
||||||
cur->pad_idx);
|
cur->pad_idx);
|
||||||
fg->outputs[fg->nb_outputs - 1]->name = describe_filter_link(fg, cur, 0);
|
ofilter->name = describe_filter_link(fg, cur, 0);
|
||||||
cur = cur->next;
|
cur = cur->next;
|
||||||
fg->outputs[fg->nb_outputs - 1]->out_tmp->next = NULL;
|
ofilter->out_tmp->next = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
@@ -3258,10 +3258,12 @@ static int opt_audio_qscale(void *optctx, const char *opt, const char *arg)
|
|||||||
|
|
||||||
static int opt_filter_complex(void *optctx, const char *opt, const char *arg)
|
static int opt_filter_complex(void *optctx, const char *opt, const char *arg)
|
||||||
{
|
{
|
||||||
|
FilterGraph *fg;
|
||||||
ALLOC_ARRAY_ELEM(filtergraphs, nb_filtergraphs);
|
ALLOC_ARRAY_ELEM(filtergraphs, nb_filtergraphs);
|
||||||
filtergraphs[nb_filtergraphs - 1]->index = nb_filtergraphs - 1;
|
fg = filtergraphs[nb_filtergraphs - 1];
|
||||||
filtergraphs[nb_filtergraphs - 1]->graph_desc = av_strdup(arg);
|
fg->index = nb_filtergraphs - 1;
|
||||||
if (!filtergraphs[nb_filtergraphs - 1]->graph_desc)
|
fg->graph_desc = av_strdup(arg);
|
||||||
|
if (!fg->graph_desc)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
input_stream_potentially_available = 1;
|
input_stream_potentially_available = 1;
|
||||||
@@ -3271,13 +3273,15 @@ static int opt_filter_complex(void *optctx, const char *opt, const char *arg)
|
|||||||
|
|
||||||
static int opt_filter_complex_script(void *optctx, const char *opt, const char *arg)
|
static int opt_filter_complex_script(void *optctx, const char *opt, const char *arg)
|
||||||
{
|
{
|
||||||
|
FilterGraph *fg;
|
||||||
uint8_t *graph_desc = read_file(arg);
|
uint8_t *graph_desc = read_file(arg);
|
||||||
if (!graph_desc)
|
if (!graph_desc)
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
|
||||||
ALLOC_ARRAY_ELEM(filtergraphs, nb_filtergraphs);
|
ALLOC_ARRAY_ELEM(filtergraphs, nb_filtergraphs);
|
||||||
filtergraphs[nb_filtergraphs - 1]->index = nb_filtergraphs - 1;
|
fg = filtergraphs[nb_filtergraphs - 1];
|
||||||
filtergraphs[nb_filtergraphs - 1]->graph_desc = graph_desc;
|
fg->index = nb_filtergraphs - 1;
|
||||||
|
fg->graph_desc = graph_desc;
|
||||||
|
|
||||||
input_stream_potentially_available = 1;
|
input_stream_potentially_available = 1;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user