mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-04 06:08:26 +02:00
lavd/lavfi: use buffersink accessors.
This commit is contained in:
parent
448f2972f9
commit
063b1a42c6
@ -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…
x
Reference in New Issue
Block a user