History

libavfilter: src_buffer, use only aresample, not aconvert.

Michael Niedermayer committed 14 years ago

Commit 664f0aa1 parent 13fdb351 file · +9 −25Browse files

Showing the changes to libavfilter/src_buffer.c (1 of 1 file). Show all

Unified · Split

libavfilter/src_buffer.c+9−25
@@ -215,19 +215,25 @@ static int check_format_change_audio(AVFilterContext *ctx, · 214 unmodified lines
215215 int ret, logged = 0;
216216
217217 link = ctx->outputs[0];
218− if (samplesref->audio->sample_rate != link->sample_rate) {
218+ if (samplesref->audio->sample_rate != link->sample_rate ||
219+ samplesref->format != link->format ||
220+ samplesref->audio->channel_layout != link->channel_layout) {
219221
220222 log_input_change(ctx, link, samplesref);
221223 logged = 1;
222224
223− abuffer->sample_rate = samplesref->audio->sample_rate;
225+ abuffer->sample_rate = samplesref->audio->sample_rate;
226+ abuffer->sample_format = samplesref->format;
227+ abuffer->channel_layout = samplesref->audio->channel_layout;
224228
225229 if (!abuffer->aresample) {
226230 ret = insert_filter(abuffer, link, &abuffer->aresample, "aresample");
227231 if (ret < 0) return ret;
228232 } else {
229233 link = abuffer->aresample->outputs[0];
230− if (samplesref->audio->sample_rate == link->sample_rate)
234+ if (samplesref->audio->sample_rate == link->sample_rate &&
235+ samplesref->format == link->format &&
236+ samplesref->audio->channel_layout == link->channel_layout)
231237 remove_filter(&abuffer->aresample);
232238 else
233239 if ((ret = reconfigure_filter(abuffer, abuffer->aresample)) < 0)
@@ -235,28 +241,6 @@ static int check_format_change_audio(AVFilterContext *ctx, · 1 unmodified line
235241 }
236242 }
237243
238− link = ctx->outputs[0];
239− if (samplesref->format != link->format ||
240− samplesref->audio->channel_layout != link->channel_layout) {
241−
242− if (!logged) log_input_change(ctx, link, samplesref);
243−
244− abuffer->sample_format = samplesref->format;
245− abuffer->channel_layout = samplesref->audio->channel_layout;
246−
247− if (!abuffer->aconvert) {
248− ret = insert_filter(abuffer, link, &abuffer->aconvert, "aconvert");
249− if (ret < 0) return ret;
250− } else {
251− link = abuffer->aconvert->outputs[0];
252− if (samplesref->format == link->format &&
253− samplesref->audio->channel_layout == link->channel_layout)
254− remove_filter(&abuffer->aconvert);
255− else
256− if ((ret = reconfigure_filter(abuffer, abuffer->aconvert)) < 0)
257− return ret;
258− }
259− }
260244
261245 return 0;
262246 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t