James Almer (2018-01-05): > Signed-off-by: James Almer <jamr...@gmail.com> > --- > tools/uncoded_frame.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/uncoded_frame.c b/tools/uncoded_frame.c > index 3ca2ba4bbe..c044741701 100644 > --- a/tools/uncoded_frame.c > +++ b/tools/uncoded_frame.c > @@ -178,7 +178,7 @@ int main(int argc, char **argv) > break; > case AVMEDIA_TYPE_AUDIO: > st->stream->codec->channel_layout = st->link->channel_layout; > - st->stream->codec->channels = > avfilter_link_get_channels(st->link); > + st->stream->codec->channels = st->link->channels; > st->stream->codec->sample_rate = st->link->sample_rate; > st->stream->codec->sample_fmt = st->link->format; > st->stream->codec->codec_id =
Counter-proposal attached. With the evolution of lavfi, AVFilterLink should have been made private entirely, but it never happened. Still, the API to do without it exists. Regards, -- Nicolas George
From 6abecbd60f63a3a235e64d2c9a29d8d2e191a399 Mon Sep 17 00:00:00 2001 From: Nicolas George <geo...@nsup.org> Date: Sat, 6 Jan 2018 14:14:04 +0100 Subject: [PATCH] tools/uncoded_frame: use buffersink accessors. No longer access buffersink's link structure directly. Signed-off-by: Nicolas George <geo...@nsup.org> --- tools/uncoded_frame.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/tools/uncoded_frame.c b/tools/uncoded_frame.c index 3ca2ba4bbe..f346b21916 100644 --- a/tools/uncoded_frame.c +++ b/tools/uncoded_frame.c @@ -11,7 +11,6 @@ typedef struct { AVFormatContext *mux; AVStream *stream; AVFilterContext *sink; - AVFilterLink *link; } Stream; static int create_sink(Stream *st, AVFilterGraph *graph, @@ -36,7 +35,6 @@ static int create_sink(Stream *st, AVFilterGraph *graph, ret = avfilter_link(f, idx, st->sink, 0); if (ret < 0) return ret; - st->link = st->sink->inputs[0]; return 0; } @@ -163,24 +161,24 @@ int main(int argc, char **argv) av_log(NULL, AV_LOG_ERROR, "Failed to create output stream\n"); goto fail; } - st->stream->codec->codec_type = st->link->type; + st->stream->codec->codec_type = av_buffersink_get_type(st->sink); st->stream->time_base = st->stream->codec->time_base = - st->link->time_base; - switch (st->link->type) { + av_buffersink_get_time_base(st->sink); + switch (av_buffersink_get_type(st->sink)) { case AVMEDIA_TYPE_VIDEO: st->stream->codec->codec_id = AV_CODEC_ID_RAWVIDEO; st->stream->avg_frame_rate = st->stream-> r_frame_rate = av_buffersink_get_frame_rate(st->sink); - st->stream->codec->width = st->link->w; - st->stream->codec->height = st->link->h; - st->stream->codec->sample_aspect_ratio = st->link->sample_aspect_ratio; - st->stream->codec->pix_fmt = st->link->format; + st->stream->codec->width = av_buffersink_get_w(st->sink); + st->stream->codec->height = av_buffersink_get_h(st->sink); + st->stream->codec->sample_aspect_ratio = av_buffersink_get_sample_aspect_ratio(st->sink); + st->stream->codec->pix_fmt = av_buffersink_get_format(st->sink); break; case AVMEDIA_TYPE_AUDIO: - st->stream->codec->channel_layout = st->link->channel_layout; - st->stream->codec->channels = avfilter_link_get_channels(st->link); - st->stream->codec->sample_rate = st->link->sample_rate; - st->stream->codec->sample_fmt = st->link->format; + st->stream->codec->channel_layout = av_buffersink_get_channel_layout(st->sink); + st->stream->codec->channels = av_buffersink_get_channels(st->sink); + st->stream->codec->sample_rate = av_buffersink_get_sample_rate(st->sink); + st->stream->codec->sample_fmt = av_buffersink_get_format(st->sink); st->stream->codec->codec_id = av_get_pcm_codec(st->stream->codec->sample_fmt, -1); break; @@ -240,7 +238,7 @@ int main(int argc, char **argv) } if (frame->pts != AV_NOPTS_VALUE) frame->pts = av_rescale_q(frame->pts, - st->link ->time_base, + av_buffersink_get_time_base(st->sink), st->stream->time_base); ret = av_interleaved_write_uncoded_frame(st->mux, st->stream->index, -- 2.15.1
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel