[FFmpeg-devel] [PATCH 4/6] lavd/lavfi: use buffersink accessors.
Nicolas George
george at nsup.org
Sun Dec 18 14:22:19 EET 2016
Signed-off-by: Nicolas George <george at nsup.org>
---
libavdevice/lavfi.c | 37 +++++++++++++++++++------------------
1 file changed, 19 insertions(+), 18 deletions(-)
diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c
index f9b2694..eca3f15 100644
--- a/libavdevice/lavfi.c
+++ b/libavdevice/lavfi.c
@@ -312,31 +312,32 @@ av_cold static int lavfi_read_header(AVFormatContext *avctx)
/* fill each stream with the information in the corresponding sink */
for (i = 0; i < lavfi->nb_sinks; i++) {
- AVFilterLink *link = lavfi->sinks[lavfi->stream_sink_map[i]]->inputs[0];
+ AVFilterContext *sink = lavfi->sinks[lavfi->stream_sink_map[i]];
+ AVRational time_base = av_buffersink_get_time_base(sink);
AVStream *st = avctx->streams[i];
- st->codecpar->codec_type = link->type;
- avpriv_set_pts_info(st, 64, link->time_base.num, link->time_base.den);
- if (link->type == AVMEDIA_TYPE_VIDEO) {
+ st->codecpar->codec_type = av_buffersink_get_type(sink);
+ avpriv_set_pts_info(st, 64, time_base.num, time_base.den);
+ if (av_buffersink_get_type(sink) == AVMEDIA_TYPE_VIDEO) {
st->codecpar->codec_id = AV_CODEC_ID_RAWVIDEO;
- st->codecpar->format = link->format;
- st->codecpar->width = link->w;
- st->codecpar->height = link->h;
+ st->codecpar->format = av_buffersink_get_format(sink);
+ st->codecpar->width = av_buffersink_get_w(sink);
+ st->codecpar->height = av_buffersink_get_h(sink);
st ->sample_aspect_ratio =
- st->codecpar->sample_aspect_ratio = link->sample_aspect_ratio;
+ st->codecpar->sample_aspect_ratio = av_buffersink_get_sample_aspect_ratio(sink);
avctx->probesize = FFMAX(avctx->probesize,
- link->w * link->h *
- av_get_padded_bits_per_pixel(av_pix_fmt_desc_get(link->format)) *
+ av_buffersink_get_w(sink) * av_buffersink_get_h(sink) *
+ av_get_padded_bits_per_pixel(av_pix_fmt_desc_get(av_buffersink_get_format(sink))) *
30);
- } else if (link->type == AVMEDIA_TYPE_AUDIO) {
- st->codecpar->codec_id = av_get_pcm_codec(link->format, -1);
- st->codecpar->channels = avfilter_link_get_channels(link);
- st->codecpar->format = link->format;
- st->codecpar->sample_rate = link->sample_rate;
- st->codecpar->channel_layout = link->channel_layout;
+ } else if (av_buffersink_get_type(sink) == AVMEDIA_TYPE_AUDIO) {
+ st->codecpar->codec_id = av_get_pcm_codec(av_buffersink_get_format(sink), -1);
+ st->codecpar->channels = av_buffersink_get_channels(sink);
+ st->codecpar->format = av_buffersink_get_format(sink);
+ st->codecpar->sample_rate = av_buffersink_get_sample_rate(sink);
+ st->codecpar->channel_layout = av_buffersink_get_channel_layout(sink);
if (st->codecpar->codec_id == AV_CODEC_ID_NONE)
av_log(avctx, AV_LOG_ERROR,
"Could not find PCM codec for sample format %s.\n",
- av_get_sample_fmt_name(link->format));
+ av_get_sample_fmt_name(av_buffersink_get_format(sink)));
}
}
@@ -400,7 +401,7 @@ static int lavfi_read_packet(AVFormatContext *avctx, AVPacket *pkt)
/* iterate through all the graph sinks. Select the sink with the
* minimum PTS */
for (i = 0; i < lavfi->nb_sinks; i++) {
- AVRational tb = lavfi->sinks[i]->inputs[0]->time_base;
+ AVRational tb = av_buffersink_get_time_base(lavfi->sinks[i]);
double d;
int ret;
--
2.10.2
More information about the ffmpeg-devel
mailing list