[FFmpeg-devel] [PATCH 30/33] fftools/ffmpeg_filter: make OutputFilter.filter private
Anton Khirnov
anton at khirnov.net
Thu Jul 13 13:55:50 EEST 2023
It should not be accessed from outside of filtering code.
---
fftools/ffmpeg.h | 1 -
fftools/ffmpeg_filter.c | 18 ++++++++++--------
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
index bcd9cc584e..bd6b0ed6d1 100644
--- a/fftools/ffmpeg.h
+++ b/fftools/ffmpeg.h
@@ -283,7 +283,6 @@ typedef struct InputFilter {
} InputFilter;
typedef struct OutputFilter {
- AVFilterContext *filter;
struct OutputStream *ost;
struct FilterGraph *graph;
uint8_t *name;
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 4955fe38dd..e14b8f0f3c 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -137,6 +137,8 @@ static InputFilterPriv *ifp_from_ifilter(InputFilter *ifilter)
typedef struct OutputFilterPriv {
OutputFilter ofilter;
+ AVFilterContext *filter;
+
/* desired output stream properties */
int format;
int width, height;
@@ -1060,7 +1062,7 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter,
char name[255];
snprintf(name, sizeof(name), "out_%d_%d", ost->file_index, ost->index);
- ret = avfilter_graph_create_filter(&ofilter->filter,
+ ret = avfilter_graph_create_filter(&ofp->filter,
avfilter_get_by_name("buffersink"),
name, NULL, NULL, fg->graph);
@@ -1116,7 +1118,7 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter,
return ret;
- if ((ret = avfilter_link(last_filter, pad_idx, ofilter->filter, 0)) < 0)
+ if ((ret = avfilter_link(last_filter, pad_idx, ofp->filter, 0)) < 0)
return ret;
return 0;
@@ -1134,12 +1136,12 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
int ret;
snprintf(name, sizeof(name), "out_%d_%d", ost->file_index, ost->index);
- ret = avfilter_graph_create_filter(&ofilter->filter,
+ ret = avfilter_graph_create_filter(&ofp->filter,
avfilter_get_by_name("abuffersink"),
name, NULL, NULL, fg->graph);
if (ret < 0)
return ret;
- if ((ret = av_opt_set_int(ofilter->filter, "all_channel_counts", 1, AV_OPT_SEARCH_CHILDREN)) < 0)
+ if ((ret = av_opt_set_int(ofp->filter, "all_channel_counts", 1, AV_OPT_SEARCH_CHILDREN)) < 0)
return ret;
#define AUTO_INSERT_FILTER(opt_name, filter_name, arg) do { \
@@ -1222,7 +1224,7 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
if (ret < 0)
goto fail;
- if ((ret = avfilter_link(last_filter, pad_idx, ofilter->filter, 0)) < 0)
+ if ((ret = avfilter_link(last_filter, pad_idx, ofp->filter, 0)) < 0)
goto fail;
fail:
av_bprint_finalize(&args, NULL);
@@ -1470,7 +1472,7 @@ static void cleanup_filtergraph(FilterGraph *fg)
{
int i;
for (i = 0; i < fg->nb_outputs; i++)
- fg->outputs[i]->filter = (AVFilterContext *)NULL;
+ ofp_from_ofilter(fg->outputs[i])->filter = NULL;
for (i = 0; i < fg->nb_inputs; i++)
ifp_from_ifilter(fg->inputs[i])->filter = NULL;
avfilter_graph_free(&fg->graph);
@@ -1575,7 +1577,7 @@ static int configure_filtergraph(FilterGraph *fg)
for (i = 0; i < fg->nb_outputs; i++) {
OutputFilter *ofilter = fg->outputs[i];
OutputFilterPriv *ofp = ofp_from_ofilter(ofilter);
- AVFilterContext *sink = ofilter->filter;
+ AVFilterContext *sink = ofp->filter;
ofp->format = av_buffersink_get_format(sink);
@@ -1705,9 +1707,9 @@ int reap_filters(int flush)
if (!ost->filter || !ost->filter->graph->graph)
continue;
- filter = ost->filter->filter;
fgp = fgp_from_fg(ost->filter->graph);
ofp = ofp_from_ofilter(ost->filter);
+ filter = ofp->filter;
filtered_frame = fgp->frame;
--
2.40.1
More information about the ffmpeg-devel
mailing list