lavd/lavfi: use buffersink accessors.

pull/247/head
Nicolas George 8 years ago
parent 448f2972f9
commit 063b1a42c6
  1. 37
      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;

Loading…
Cancel
Save