diff options
65 files changed, 126 insertions, 118 deletions
@@ -306,6 +306,7 @@ typedef struct OutputStream { int64_t *forced_kf_pts; int forced_kf_count; int forced_kf_index; + char *forced_keyframes; /* audio only */ int audio_channels_map[SWR_CH_MAX]; /* list of the channels id to pick from the source stream */ @@ -1383,6 +1384,7 @@ void av_noreturn exit_program(int ret) } output_streams[i]->bitstream_filters = NULL; + av_freep(&output_streams[i]->forced_keyframes); av_freep(&output_streams[i]->filtered_frame); av_freep(&output_streams[i]->avfilter); av_freep(&output_streams[i]); @@ -2763,6 +2765,29 @@ static InputStream *get_input_stream(OutputStream *ost) return NULL; } +static void parse_forced_key_frames(char *kf, OutputStream *ost, + AVCodecContext *avctx) +{ + char *p; + int n = 1, i; + int64_t t; + + for (p = kf; *p; p++) + if (*p == ',') + n++; + ost->forced_kf_count = n; + ost->forced_kf_pts = av_malloc(sizeof(*ost->forced_kf_pts) * n); + if (!ost->forced_kf_pts) { + av_log(NULL, AV_LOG_FATAL, "Could not allocate forced key frames array.\n"); + exit_program(1); + } + for (i = 0; i < n; i++) { + p = i ? strchr(p, ',') + 1 : kf; + t = parse_time_or_die("force_key_frames", p, 1); + ost->forced_kf_pts[i] = av_rescale_q(t, AV_TIME_BASE_Q, avctx->time_base); + } +} + static int transcode_init(void) { int ret = 0, i, j, k; @@ -2997,6 +3022,9 @@ static int transcode_init(void) codec->bits_per_raw_sample = frame_bits_per_raw_sample; } + if (ost->forced_keyframes) + parse_forced_key_frames(ost->forced_keyframes, ost, + ost->st->codec); break; case AVMEDIA_TYPE_SUBTITLE: codec->time_base = (AVRational){1, 1000}; @@ -4362,29 +4390,6 @@ static int opt_input_file(OptionsContext *o, const char *opt, const char *filena return 0; } -static void parse_forced_key_frames(char *kf, OutputStream *ost) -{ - char *p; - int n = 1, i; - - for (p = kf; *p; p++) - if (*p == ',') - n++; - ost->forced_kf_count = n; - ost->forced_kf_pts = av_malloc(sizeof(*ost->forced_kf_pts) * n); - if (!ost->forced_kf_pts) { - av_log(NULL, AV_LOG_FATAL, "Could not allocate forced key frames array.\n"); - exit_program(1); - } - p = kf; - for (i = 0; i < n; i++) { - char *next = strchr(p, ','); - if (next) *next++ = 0; - ost->forced_kf_pts[i] = parse_time_or_die("force_key_frames", p, 1); - p = next; - } -} - static uint8_t *get_line(AVIOContext *s) { AVIOContext *line; @@ -4596,7 +4601,7 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in if (!ost->stream_copy) { const char *p = NULL; - char *forced_key_frames = NULL, *frame_size = NULL; + char *frame_size = NULL; char *frame_aspect_ratio = NULL, *frame_pix_fmt = NULL; char *intra_matrix = NULL, *inter_matrix = NULL; const char *filters = "null"; @@ -4694,9 +4699,9 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in } } - MATCH_PER_STREAM_OPT(forced_key_frames, str, forced_key_frames, oc, st); - if (forced_key_frames) - parse_forced_key_frames(forced_key_frames, ost); + MATCH_PER_STREAM_OPT(forced_key_frames, str, ost->forced_keyframes, oc, st); + if (ost->forced_keyframes) + ost->forced_keyframes = av_strdup(ost->forced_keyframes); MATCH_PER_STREAM_OPT(force_fps, i, ost->force_fps, oc, st); diff --git a/libavfilter/af_aconvert.c b/libavfilter/af_aconvert.c index d5bc6a8..51167f4 100644 --- a/libavfilter/af_aconvert.c +++ b/libavfilter/af_aconvert.c @@ -38,7 +38,7 @@ typedef struct { struct SwrContext *swr; } AConvertContext; -static av_cold int init(AVFilterContext *ctx, const char *args0, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args0) { AConvertContext *aconvert = ctx->priv; char *arg, *ptr = NULL; diff --git a/libavfilter/af_aformat.c b/libavfilter/af_aformat.c index b8df111..59e41c0 100644 --- a/libavfilter/af_aformat.c +++ b/libavfilter/af_aformat.c @@ -81,7 +81,7 @@ static int get_sample_rate(const char *samplerate) return FFMAX(ret, 0); } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { AFormatContext *s = ctx->priv; int ret; diff --git a/libavfilter/af_amerge.c b/libavfilter/af_amerge.c index 1d45856..429057c 100644 --- a/libavfilter/af_amerge.c +++ b/libavfilter/af_amerge.c @@ -288,7 +288,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples) ff_filter_samples(ctx->outputs[0], outbuf); } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { AMergeContext *am = ctx->priv; int ret, i; diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c index 2fc5d0e..ce77692 100644 --- a/libavfilter/af_amix.c +++ b/libavfilter/af_amix.c @@ -473,7 +473,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf) avfilter_unref_buffer(buf); } -static int init(AVFilterContext *ctx, const char *args, void *opaque) +static int init(AVFilterContext *ctx, const char *args) { MixContext *s = ctx->priv; int i, ret; diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c index 170b5bc..095a2b5 100644 --- a/libavfilter/af_aresample.c +++ b/libavfilter/af_aresample.c @@ -41,7 +41,7 @@ typedef struct { int req_fullfilled; } AResampleContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { AResampleContext *aresample = ctx->priv; int ret = 0; diff --git a/libavfilter/af_asetnsamples.c b/libavfilter/af_asetnsamples.c index 9ce4374..7a6c381 100644 --- a/libavfilter/af_asetnsamples.c +++ b/libavfilter/af_asetnsamples.c @@ -54,7 +54,7 @@ static const AVOption asetnsamples_options[] = { AVFILTER_DEFINE_CLASS(asetnsamples); -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { ASNSContext *asns = ctx->priv; int err; diff --git a/libavfilter/af_ashowinfo.c b/libavfilter/af_ashowinfo.c index d4198e9..d774ec7 100644 --- a/libavfilter/af_ashowinfo.c +++ b/libavfilter/af_ashowinfo.c @@ -33,7 +33,7 @@ typedef struct { unsigned int frame; } ShowInfoContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { ShowInfoContext *showinfo = ctx->priv; showinfo->frame = 0; diff --git a/libavfilter/af_astreamsync.c b/libavfilter/af_astreamsync.c index ff3f3c2..8cf3f39 100644 --- a/libavfilter/af_astreamsync.c +++ b/libavfilter/af_astreamsync.c @@ -60,7 +60,7 @@ typedef struct { static const char *default_expr = "t1-t2"; -static av_cold int init(AVFilterContext *ctx, const char *args0, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args0) { AStreamSyncContext *as = ctx->priv; const char *expr = args0 ? args0 : default_expr; diff --git a/libavfilter/af_asyncts.c b/libavfilter/af_asyncts.c index efe56d0..2435cca 100644 --- a/libavfilter/af_asyncts.c +++ b/libavfilter/af_asyncts.c @@ -51,7 +51,7 @@ static const AVOption asyncts_options[] = { AVFILTER_DEFINE_CLASS(asyncts); -static int init(AVFilterContext *ctx, const char *args, void *opaque) +static int init(AVFilterContext *ctx, const char *args) { ASyncContext *s = ctx->priv; int ret; diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c index 15d06d6..7a08503 100644 --- a/libavfilter/af_atempo.c +++ b/libavfilter/af_atempo.c @@ -948,7 +948,7 @@ static int yae_flush(ATempoContext *atempo, return atempo->position[1] == stop_here ? 0 : AVERROR(EAGAIN); } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { ATempoContext *atempo = ctx->priv; diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c index fe766fd..8d908ca 100644 --- a/libavfilter/af_channelmap.c +++ b/libavfilter/af_channelmap.c @@ -118,8 +118,7 @@ static int get_channel(char **map, uint64_t *ch, char delim) return 0; } -static av_cold int channelmap_init(AVFilterContext *ctx, const char *args, - void *opaque) +static av_cold int channelmap_init(AVFilterContext *ctx, const char *args) { ChannelMapContext *s = ctx->priv; int ret; diff --git a/libavfilter/af_channelsplit.c b/libavfilter/af_channelsplit.c index 1e2d011..bf0b24d 100644 --- a/libavfilter/af_channelsplit.c +++ b/libavfilter/af_channelsplit.c @@ -47,7 +47,7 @@ static const AVOption channelsplit_options[] = { AVFILTER_DEFINE_CLASS(channelsplit); -static int init(AVFilterContext *ctx, const char *arg, void *opaque) +static int init(AVFilterContext *ctx, const char *arg) { ChannelSplitContext *s = ctx->priv; int nb_channels; diff --git a/libavfilter/af_join.c b/libavfilter/af_join.c index ab5e905..89bc47f 100644 --- a/libavfilter/af_join.c +++ b/libavfilter/af_join.c @@ -184,7 +184,7 @@ static int parse_maps(AVFilterContext *ctx) return 0; } -static int join_init(AVFilterContext *ctx, const char *args, void *opaque) +static int join_init(AVFilterContext *ctx, const char *args) { JoinContext *s = ctx->priv; int ret, i; diff --git a/libavfilter/af_pan.c b/libavfilter/af_pan.c index 052bf7d..f451e00 100644 --- a/libavfilter/af_pan.c +++ b/libavfilter/af_pan.c @@ -96,7 +96,7 @@ static void skip_spaces(char **arg) *arg += len; } -static av_cold int init(AVFilterContext *ctx, const char *args0, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args0) { PanContext *const pan = ctx->priv; char *arg, *arg0, *tokenizer, *args = av_strdup(args0); diff --git a/libavfilter/af_silencedetect.c b/libavfilter/af_silencedetect.c index 5ef5f96..724a923 100644 --- a/libavfilter/af_silencedetect.c +++ b/libavfilter/af_silencedetect.c @@ -52,7 +52,7 @@ static const AVOption silencedetect_options[] = { AVFILTER_DEFINE_CLASS(silencedetect); -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { int ret; char *tail; diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c index e01453b..11da226 100644 --- a/libavfilter/af_volume.c +++ b/libavfilter/af_volume.c @@ -35,7 +35,7 @@ typedef struct { int volume_i; } VolumeContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { VolumeContext *vol = ctx->priv; char *tail; diff --git a/libavfilter/asrc_aevalsrc.c b/libavfilter/asrc_aevalsrc.c index ec58ab3..dfb6b5a 100644 --- a/libavfilter/asrc_aevalsrc.c +++ b/libavfilter/asrc_aevalsrc.c @@ -80,7 +80,7 @@ static const AVOption aevalsrc_options[]= { AVFILTER_DEFINE_CLASS(aevalsrc); -static int init(AVFilterContext *ctx, const char *args, void *opaque) +static int init(AVFilterContext *ctx, const char *args) { EvalContext *eval = ctx->priv; char *args1 = av_strdup(args); diff --git a/libavfilter/asrc_anullsrc.c b/libavfilter/asrc_anullsrc.c index feffb96..5d856e8 100644 --- a/libavfilter/asrc_anullsrc.c +++ b/libavfilter/asrc_anullsrc.c @@ -56,7 +56,7 @@ static const AVOption anullsrc_options[]= { AVFILTER_DEFINE_CLASS(anullsrc); -static int init(AVFilterContext *ctx, const char *args, void *opaque) +static int init(AVFilterContext *ctx, const char *args) { ANullContext *null = ctx->priv; int ret; diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 0954ce0..7146a64 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -547,7 +547,7 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque int ret=0; if (filter->filter->init) - ret = filter->filter->init(filter, args, opaque); + ret = filter->filter->init(filter, args); return ret; } diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index 7704e81..f06624f 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -568,10 +568,8 @@ typedef struct AVFilter { /** * Filter initialization function. Args contains the user-supplied * parameters. FIXME: maybe an AVOption-based system would be better? - * opaque is data provided by the code requesting creation of the filter, - * and is used to pass data to the filter. */ - int (*init)(AVFilterContext *ctx, const char *args, void *opaque); + int (*init)(AVFilterContext *ctx, const char *args); /** * Filter uninitialization function. Should deallocate any memory held diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c index 81beb01..7001309 100644 --- a/libavfilter/buffersrc.c +++ b/libavfilter/buffersrc.c @@ -213,7 +213,7 @@ static const AVOption buffer_options[] = { AVFILTER_DEFINE_CLASS(buffer); -static av_cold int init_video(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init_video(AVFilterContext *ctx, const char *args) { BufferSourceContext *c = ctx->priv; char pix_fmt_str[128], sws_param[256] = "", *colon, *equal; @@ -280,7 +280,7 @@ static const AVOption abuffer_options[] = { AVFILTER_DEFINE_CLASS(abuffer); -static av_cold int init_audio(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init_audio(AVFilterContext *ctx, const char *args) { BufferSourceContext *s = ctx->priv; int ret = 0; diff --git a/libavfilter/fifo.c b/libavfilter/fifo.c index 540dea6..1361881 100644 --- a/libavfilter/fifo.c +++ b/libavfilter/fifo.c @@ -50,7 +50,7 @@ typedef struct { int allocated_samples; ///< number of samples buf_out was allocated for } FifoContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { FifoContext *fifo = ctx->priv; fifo->last = &fifo->root; diff --git a/libavfilter/sink_buffer.c b/libavfilter/sink_buffer.c index c4f6118..85fbee2 100644 --- a/libavfilter/sink_buffer.c +++ b/libavfilter/sink_buffer.c @@ -163,12 +163,15 @@ int av_buffersink_poll_frame(AVFilterContext *ctx) #if CONFIG_BUFFERSINK_FILTER -static av_cold int vsink_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int vsink_init(AVFilterContext *ctx, const char *args) { BufferSinkContext *buf = ctx->priv; - AVBufferSinkParams *params = (AVBufferSinkParams *)opaque; + AVBufferSinkParams *params = NULL; - if (!opaque) { +// if(args && !strcmp(args, "opaque")) +// params = (AVBufferSinkParams *)(args+7); + + if (!params) { av_log(ctx, AV_LOG_WARNING, "No opaque field provided\n"); buf->pixel_fmts = NULL; @@ -228,10 +231,13 @@ static void filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref) end_frame(link); } -static av_cold int asink_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int asink_init(AVFilterContext *ctx, const char *args) { BufferSinkContext *buf = ctx->priv; - AVABufferSinkParams *params = opaque; + AVABufferSinkParams *params = NULL; + +// if(args && !strcmp(args, "opaque")) +// params = (AVABufferSinkParams *)(args+7); if (params && params->sample_fmts) { buf->sample_fmts = ff_copy_int_list (params->sample_fmts); diff --git a/libavfilter/split.c b/libavfilter/split.c index 13d26d4..837dc0d 100644 --- a/libavfilter/split.c +++ b/libavfilter/split.c @@ -28,7 +28,7 @@ #include "internal.h" #include "video.h" -static int split_init(AVFilterContext *ctx, const char *args, void *opaque) +static int split_init(AVFilterContext *ctx, const char *args) { int i, nb_outputs = 2; diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c index 1b83ecb..c91b834 100644 --- a/libavfilter/src_movie.c +++ b/libavfilter/src_movie.c @@ -82,7 +82,7 @@ static const AVOption movie_options[]= { AVFILTER_DEFINE_CLASS(movie); -static av_cold int movie_common_init(AVFilterContext *ctx, const char *args, void *opaque, +static av_cold int movie_common_init(AVFilterContext *ctx, const char *args, enum AVMediaType type) { MovieContext *movie = ctx->priv; @@ -198,12 +198,12 @@ static av_cold void movie_common_uninit(AVFilterContext *ctx) #if CONFIG_MOVIE_FILTER -static av_cold int movie_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int movie_init(AVFilterContext *ctx, const char *args) { MovieContext *movie = ctx->priv; int ret; - if ((ret = movie_common_init(ctx, args, opaque, AVMEDIA_TYPE_VIDEO)) < 0) + if ((ret = movie_common_init(ctx, args, AVMEDIA_TYPE_VIDEO)) < 0) return ret; movie->w = movie->codec_ctx->width; @@ -345,12 +345,12 @@ AVFilter avfilter_vsrc_movie = { #if CONFIG_AMOVIE_FILTER -static av_cold int amovie_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int amovie_init(AVFilterContext *ctx, const char *args) { MovieContext *movie = ctx->priv; int ret; - if ((ret = movie_common_init(ctx, args, opaque, AVMEDIA_TYPE_AUDIO)) < 0) + if ((ret = movie_common_init(ctx, args, AVMEDIA_TYPE_AUDIO)) < 0) return ret; movie->bps = av_get_bytes_per_sample(movie->codec_ctx->sample_fmt); diff --git a/libavfilter/vf_aspect.c b/libavfilter/vf_aspect.c index e7f431f..eeaa887 100644 --- a/libavfilter/vf_aspect.c +++ b/libavfilter/vf_aspect.c @@ -33,7 +33,7 @@ typedef struct { AVRational ratio; } AspectContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { AspectContext *aspect = ctx->priv; aspect->ratio = (AVRational) {0, 1}; diff --git a/libavfilter/vf_ass.c b/libavfilter/vf_ass.c index 7c34c48..81dc773 100644 --- a/libavfilter/vf_ass.c +++ b/libavfilter/vf_ass.c @@ -79,7 +79,7 @@ static void ass_log(int ass_level, const char *fmt, va_list args, void *ctx) av_log(ctx, level, "\n"); } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { AssContext *ass = ctx->priv; int ret; diff --git a/libavfilter/vf_bbox.c b/libavfilter/vf_bbox.c index 6fc6935..99066a6 100644 --- a/libavfilter/vf_bbox.c +++ b/libavfilter/vf_bbox.c @@ -34,7 +34,7 @@ typedef struct { int vsub, hsub; } BBoxContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { BBoxContext *bbox = ctx->priv; bbox->frame = 0; diff --git a/libavfilter/vf_blackdetect.c b/libavfilter/vf_blackdetect.c index 9d29c45..bb9567d 100644 --- a/libavfilter/vf_blackdetect.c +++ b/libavfilter/vf_blackdetect.c @@ -80,7 +80,7 @@ static int query_formats(AVFilterContext *ctx) return 0; } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { int ret; BlackDetectContext *blackdetect = ctx->priv; diff --git a/libavfilter/vf_blackframe.c b/libavfilter/vf_blackframe.c index b37bc03..dbdbffb 100644 --- a/libavfilter/vf_blackframe.c +++ b/libavfilter/vf_blackframe.c @@ -53,7 +53,7 @@ static int query_formats(AVFilterContext *ctx) return 0; } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { BlackFrameContext *blackframe = ctx->priv; diff --git a/libavfilter/vf_boxblur.c b/libavfilter/vf_boxblur.c index 7bab9bd..d9ef7e6 100644 --- a/libavfilter/vf_boxblur.c +++ b/libavfilter/vf_boxblur.c @@ -77,7 +77,7 @@ typedef struct { #define V 2 #define A 3 -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { BoxBlurContext *boxblur = ctx->priv; int e; diff --git a/libavfilter/vf_colormatrix.c b/libavfilter/vf_colormatrix.c index 80814de..0784c82 100644 --- a/libavfilter/vf_colormatrix.c +++ b/libavfilter/vf_colormatrix.c @@ -145,7 +145,7 @@ static int get_color_mode_index(const char *name) return -1; } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { ColorMatrixContext *color = ctx->priv; diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c index db18b2b..3b7f073 100644 --- a/libavfilter/vf_crop.c +++ b/libavfilter/vf_crop.c @@ -120,7 +120,7 @@ static int query_formats(AVFilterContext *ctx) return 0; } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { CropContext *crop = ctx->priv; diff --git a/libavfilter/vf_cropdetect.c b/libavfilter/vf_cropdetect.c index fdb99e9..9f303b9 100644 --- a/libavfilter/vf_cropdetect.c +++ b/libavfilter/vf_cropdetect.c @@ -80,7 +80,7 @@ static int checkline(void *ctx, const unsigned char *src, int stride, int len, i return total; } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { CropDetectContext *cd = ctx->priv; diff --git a/libavfilter/vf_delogo.c b/libavfilter/vf_delogo.c index 78258ee..ae9d2a3 100644 --- a/libavfilter/vf_delogo.c +++ b/libavfilter/vf_delogo.c @@ -166,7 +166,7 @@ static int query_formats(AVFilterContext *ctx) return 0; } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { DelogoContext *delogo = ctx->priv; int ret = 0; diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c index ff78f1f..10d789f 100644 --- a/libavfilter/vf_deshake.c +++ b/libavfilter/vf_deshake.c @@ -331,7 +331,7 @@ static void find_motion(DeshakeContext *deshake, uint8_t *src1, uint8_t *src2, av_free(angles); } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { DeshakeContext *deshake = ctx->priv; char filename[256] = {0}; diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c index 42ee075..2068903 100644 --- a/libavfilter/vf_drawbox.c +++ b/libavfilter/vf_drawbox.c @@ -40,7 +40,7 @@ typedef struct { int vsub, hsub; ///< chroma subsampling } DrawBoxContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { DrawBoxContext *drawbox= ctx->priv; char color_str[1024] = "black"; diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c index e5ba32e..dbdcd39 100644 --- a/libavfilter/vf_drawtext.c +++ b/libavfilter/vf_drawtext.c @@ -379,7 +379,7 @@ static int load_font(AVFilterContext *ctx) return err; } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { int err; DrawTextContext *dtext = ctx->priv; @@ -574,7 +574,7 @@ static int command(AVFilterContext *ctx, const char *cmd, const char *arg, char int ret; uninit(ctx); dtext->reinit = 1; - if ((ret = init(ctx, arg, NULL)) < 0) + if ((ret = init(ctx, arg)) < 0) return ret; return config_input(ctx->inputs[0]); } diff --git a/libavfilter/vf_fade.c b/libavfilter/vf_fade.c index e7e8c87..bbf58f2 100644 --- a/libavfilter/vf_fade.c +++ b/libavfilter/vf_fade.c @@ -73,7 +73,7 @@ static const AVOption fade_options[] = { AVFILTER_DEFINE_CLASS(fade); -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { FadeContext *fade = ctx->priv; int ret = 0; diff --git a/libavfilter/vf_fieldorder.c b/libavfilter/vf_fieldorder.c index 0f8df15..3bc7e89 100644 --- a/libavfilter/vf_fieldorder.c +++ b/libavfilter/vf_fieldorder.c @@ -38,7 +38,7 @@ typedef struct int line_size[4]; ///< bytes of pixel data per line for each plane } FieldOrderContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { FieldOrderContext *fieldorder = ctx->priv; diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c index cc0e142..9565daa 100644 --- a/libavfilter/vf_format.c +++ b/libavfilter/vf_format.c @@ -40,7 +40,7 @@ typedef struct { #define PIX_FMT_NAME_MAXSIZE 32 -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { FormatContext *format = ctx->priv; const char *cur, *sep; diff --git a/libavfilter/vf_fps.c b/libavfilter/vf_fps.c index 93a107a..8734a9a 100644 --- a/libavfilter/vf_fps.c +++ b/libavfilter/vf_fps.c @@ -62,7 +62,7 @@ static const AVOption fps_options[] = { AVFILTER_DEFINE_CLASS(fps); -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { FPSContext *s = ctx->priv; int ret; diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c index 1678b33..a550127 100644 --- a/libavfilter/vf_frei0r.c +++ b/libavfilter/vf_frei0r.c @@ -278,7 +278,7 @@ static av_cold int frei0r_init(AVFilterContext *ctx, return 0; } -static av_cold int filter_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int filter_init(AVFilterContext *ctx, const char *args) { Frei0rContext *frei0r = ctx->priv; char dl_name[1024], c; @@ -381,7 +381,7 @@ AVFilter avfilter_vf_frei0r = { { .name = NULL}}, }; -static av_cold int source_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int source_init(AVFilterContext *ctx, const char *args) { Frei0rContext *frei0r = ctx->priv; char dl_name[1024], c; diff --git a/libavfilter/vf_gradfun.c b/libavfilter/vf_gradfun.c index e863d32..12e5573 100644 --- a/libavfilter/vf_gradfun.c +++ b/libavfilter/vf_gradfun.c @@ -118,7 +118,7 @@ static void filter(GradFunContext *ctx, uint8_t *dst, const uint8_t *src, int wi } } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { GradFunContext *gf = ctx->priv; float thresh = 1.2; diff --git a/libavfilter/vf_hqdn3d.c b/libavfilter/vf_hqdn3d.c index 17d0b11..5495028 100644 --- a/libavfilter/vf_hqdn3d.c +++ b/libavfilter/vf_hqdn3d.c @@ -197,7 +197,7 @@ static void PrecalcCoefs(int *Ct, double Dist25) #define PARAM2_DEFAULT 3.0 #define PARAM3_DEFAULT 6.0 -static int init(AVFilterContext *ctx, const char *args, void *opaque) +static int init(AVFilterContext *ctx, const char *args) { HQDN3DContext *hqdn3d = ctx->priv; double LumSpac, LumTmp, ChromSpac, ChromTmp; diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c index 1dcf7da..d192be7 100644 --- a/libavfilter/vf_idet.c +++ b/libavfilter/vf_idet.c @@ -292,7 +292,7 @@ static int query_formats(AVFilterContext *ctx) return 0; } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { IDETContext *idet = ctx->priv; diff --git a/libavfilter/vf_libopencv.c b/libavfilter/vf_libopencv.c index 88319b8..6dda3c7 100644 --- a/libavfilter/vf_libopencv.c +++ b/libavfilter/vf_libopencv.c @@ -71,7 +71,7 @@ static void null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) { } typedef struct { const char *name; - int (*init)(AVFilterContext *ctx, const char *args, void *opaque); + int (*init)(AVFilterContext *ctx, const char *args); void (*uninit)(AVFilterContext *ctx); void (*end_frame_filter)(AVFilterContext *ctx, IplImage *inimg, IplImage *outimg); void *priv; @@ -83,7 +83,7 @@ typedef struct { double param3, param4; } SmoothContext; -static av_cold int smooth_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int smooth_init(AVFilterContext *ctx, const char *args) { OCVContext *ocv = ctx->priv; SmoothContext *smooth = ocv->priv; @@ -249,7 +249,7 @@ typedef struct { IplConvKernel *kernel; } DilateContext; -static av_cold int dilate_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int dilate_init(AVFilterContext *ctx, const char *args) { OCVContext *ocv = ctx->priv; DilateContext *dilate = ocv->priv; @@ -303,7 +303,7 @@ static void erode_end_frame_filter(AVFilterContext *ctx, IplImage *inimg, IplIma typedef struct { const char *name; size_t priv_size; - int (*init)(AVFilterContext *ctx, const char *args, void *opaque); + int (*init)(AVFilterContext *ctx, const char *args); void (*uninit)(AVFilterContext *ctx); void (*end_frame_filter)(AVFilterContext *ctx, IplImage *inimg, IplImage *outimg); } OCVFilterEntry; @@ -314,7 +314,7 @@ static OCVFilterEntry ocv_filter_entries[] = { { "smooth", sizeof(SmoothContext), smooth_init, NULL, smooth_end_frame_filter }, }; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { OCVContext *ocv = ctx->priv; char name[128], priv_args[1024]; @@ -333,7 +333,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) if (!(ocv->priv = av_mallocz(entry->priv_size))) return AVERROR(ENOMEM); - return ocv->init(ctx, priv_args, opaque); + return ocv->init(ctx, priv_args); } } diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c index 47dd7f3..252aac1 100644 --- a/libavfilter/vf_lut.c +++ b/libavfilter/vf_lut.c @@ -93,7 +93,7 @@ static const AVOption lut_options[] = { AVFILTER_DEFINE_CLASS(lut); -static int init(AVFilterContext *ctx, const char *args, void *opaque) +static int init(AVFilterContext *ctx, const char *args) { LutContext *lut = ctx->priv; int ret; @@ -368,7 +368,7 @@ DEFINE_LUT_FILTER(lutrgb, "Compute and apply a lookup table to the RGB input vid #if CONFIG_NEGATE_FILTER -static int negate_init(AVFilterContext *ctx, const char *args, void *opaque) +static int negate_init(AVFilterContext *ctx, const char *args) { LutContext *lut = ctx->priv; char lut_params[64]; @@ -381,7 +381,7 @@ static int negate_init(AVFilterContext *ctx, const char *args, void *opaque) snprintf(lut_params, sizeof(lut_params), "c0=negval:c1=negval:c2=negval:a=%s", lut->negate_alpha ? "negval" : "val"); - return init(ctx, lut_params, opaque); + return init(ctx, lut_params); } DEFINE_LUT_FILTER(negate, "Negate input video.", negate_init); diff --git a/libavfilter/vf_mp.c b/libavfilter/vf_mp.c index 43eecc3..0cf2b79 100644 --- a/libavfilter/vf_mp.c +++ b/libavfilter/vf_mp.c @@ -699,7 +699,7 @@ static int vf_default_query_format(struct vf_instance *vf, unsigned int fmt){ } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { MPContext *m = ctx->priv; char name[256]; diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c index dbf0fbc..dc4e00d 100644 --- a/libavfilter/vf_overlay.c +++ b/libavfilter/vf_overlay.c @@ -105,7 +105,7 @@ static const AVOption overlay_options[] = { AVFILTER_DEFINE_CLASS(overlay); -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { OverlayContext *over = ctx->priv; char *args1 = av_strdup(args); diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c index 08a1f8e..13618f2 100644 --- a/libavfilter/vf_pad.c +++ b/libavfilter/vf_pad.c @@ -90,7 +90,7 @@ typedef struct { int needs_copy; } PadContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { PadContext *pad = ctx->priv; char color_string[128] = "black"; diff --git a/libavfilter/vf_removelogo.c b/libavfilter/vf_removelogo.c index c912fc3..fdfe5bd 100644 --- a/libavfilter/vf_removelogo.c +++ b/libavfilter/vf_removelogo.c @@ -263,7 +263,7 @@ static void generate_half_size_image(const uint8_t *src_data, int src_linesize, src_w/2, src_h/2, 0, max_mask_size); } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { RemovelogoContext *removelogo = ctx->priv; int ***mask; diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index b7d79a3..3717da2 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -84,7 +84,7 @@ typedef struct { char h_expr[256]; ///< height expression string } ScaleContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { ScaleContext *scale = ctx->priv; const char *p; diff --git a/libavfilter/vf_select.c b/libavfilter/vf_select.c index 1fc71eb..9d22171 100644 --- a/libavfilter/vf_select.c +++ b/libavfilter/vf_select.c @@ -124,7 +124,7 @@ typedef struct { AVFifoBuffer *pending_frames; ///< FIFO buffer of video frames } SelectContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { SelectContext *select = ctx->priv; int ret; diff --git a/libavfilter/vf_setfield.c b/libavfilter/vf_setfield.c index d50a252..4be4fd8 100644 --- a/libavfilter/vf_setfield.c +++ b/libavfilter/vf_setfield.c @@ -37,7 +37,7 @@ typedef struct { enum SetFieldMode mode; } SetFieldContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { SetFieldContext *setfield = ctx->priv; diff --git a/libavfilter/vf_setpts.c b/libavfilter/vf_setpts.c index d73e77b..7739356 100644 --- a/libavfilter/vf_setpts.c +++ b/libavfilter/vf_setpts.c @@ -61,7 +61,7 @@ typedef struct { double var_values[VAR_VARS_NB]; } SetPTSContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { SetPTSContext *setpts = ctx->priv; int ret; diff --git a/libavfilter/vf_settb.c b/libavfilter/vf_settb.c index 9f4c1b2..d61a042 100644 --- a/libavfilter/vf_settb.c +++ b/libavfilter/vf_settb.c @@ -48,7 +48,7 @@ typedef struct { double var_values[VAR_VARS_NB]; } SetTBContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { SetTBContext *settb = ctx->priv; av_strlcpy(settb->tb_expr, "intb", sizeof(settb->tb_expr)); diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c index 9f3eb78..2c03177 100644 --- a/libavfilter/vf_showinfo.c +++ b/libavfilter/vf_showinfo.c @@ -34,7 +34,7 @@ typedef struct { unsigned int frame; } ShowInfoContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { ShowInfoContext *showinfo = ctx->priv; showinfo->frame = 0; diff --git a/libavfilter/vf_slicify.c b/libavfilter/vf_slicify.c index 1af3239..1b43a82 100644 --- a/libavfilter/vf_slicify.c +++ b/libavfilter/vf_slicify.c @@ -35,7 +35,7 @@ typedef struct { int use_random_h; ///< enable the use of random slice height values } SliceContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { SliceContext *slice = ctx->priv; diff --git a/libavfilter/vf_transpose.c b/libavfilter/vf_transpose.c index 512a530..0eb2958 100644 --- a/libavfilter/vf_transpose.c +++ b/libavfilter/vf_transpose.c @@ -44,7 +44,7 @@ typedef struct { int dir; } TransContext; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { TransContext *trans = ctx->priv; trans->dir = 0; diff --git a/libavfilter/vf_unsharp.c b/libavfilter/vf_unsharp.c index 13f4157..dfd5c09 100644 --- a/libavfilter/vf_unsharp.c +++ b/libavfilter/vf_unsharp.c @@ -132,7 +132,7 @@ static void set_filter_param(FilterParam *fp, int msize_x, int msize_y, double a fp->halfscale = 1 << (fp->scalebits - 1); } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { UnsharpContext *unsharp = ctx->priv; int lmsize_x = 5, cmsize_x = 5; diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c index 336f18d..582effd 100644 --- a/libavfilter/vf_yadif.c +++ b/libavfilter/vf_yadif.c @@ -397,7 +397,7 @@ static int query_formats(AVFilterContext *ctx) return 0; } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { YADIFContext *yadif = ctx->priv; int cpu_flags = av_get_cpu_flags(); diff --git a/libavfilter/vsrc_color.c b/libavfilter/vsrc_color.c index 986b41b..3d0a776 100644 --- a/libavfilter/vsrc_color.c +++ b/libavfilter/vsrc_color.c @@ -61,7 +61,7 @@ static const AVOption color_options[]= { AVFILTER_DEFINE_CLASS(color); -static av_cold int color_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int color_init(AVFilterContext *ctx, const char *args) { ColorContext *color = ctx->priv; char color_string[128] = "black"; diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c index 6e706f0..0c07f06 100644 --- a/libavfilter/vsrc_testsrc.c +++ b/libavfilter/vsrc_testsrc.c @@ -72,7 +72,7 @@ static const AVOption testsrc_options[]= { { NULL }, }; -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { TestSourceContext *test = ctx->priv; AVRational frame_rate_q; @@ -167,13 +167,13 @@ static const AVClass nullsrc_class = { static void nullsrc_fill_picture(AVFilterContext *ctx, AVFilterBufferRef *picref) { } -static av_cold int nullsrc_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int nullsrc_init(AVFilterContext *ctx, const char *args) { TestSourceContext *test = ctx->priv; test->class = &nullsrc_class; test->fill_picture_fn = nullsrc_fill_picture; - return init(ctx, args, opaque); + return init(ctx, args); } AVFilter avfilter_vsrc_nullsrc = { @@ -373,13 +373,13 @@ static void test_fill_picture(AVFilterContext *ctx, AVFilterBufferRef *picref) } } -static av_cold int test_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int test_init(AVFilterContext *ctx, const char *args) { TestSourceContext *test = ctx->priv; test->class = &testsrc_class; test->fill_picture_fn = test_fill_picture; - return init(ctx, args, opaque); + return init(ctx, args); } static int test_query_formats(AVFilterContext *ctx) @@ -476,13 +476,13 @@ static void rgbtest_fill_picture(AVFilterContext *ctx, AVFilterBufferRef *picref } } -static av_cold int rgbtest_init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int rgbtest_init(AVFilterContext *ctx, const char *args) { TestSourceContext *test = ctx->priv; test->class = &rgbtestsrc_class; test->fill_picture_fn = rgbtest_fill_picture; - return init(ctx, args, opaque); + return init(ctx, args); } static int rgbtest_query_formats(AVFilterContext *ctx) |