+ if (s->buffer_duration) {
+ int64_t bytes = s->buffer_duration;
+ bytes *= st->codec->channels * st->codec->sample_rate *
+ av_get_bytes_per_sample(st->codec->sample_fmt);
+ bytes /= 1000;
+ attr.tlength = FFMAX(s->buffer_size, av_clip64(bytes, 0, UINT32_MAX - 1));
+ av_log(s, AV_LOG_DEBUG,
+ "Buffer duration: %ums recalculated into %"PRId64" bytes buffer.\n",
+ s->buffer_duration, bytes);
+ av_log(s, AV_LOG_DEBUG, "Real buffer length is %u bytes\n", attr.tlength);
+ } else if (s->buffer_size)
+ attr.tlength = s->buffer_size;
+