filter_plugin: allow open() to force an input format
Make the audio_format argument non-const. Allow the open() method to modify it, to indicate that it wants a different input audio format than the one specified. Check that condition in chain_filter_open(), and fail.
This commit is contained in:
@@ -74,18 +74,23 @@ filter_free(struct filter *filter)
|
||||
}
|
||||
|
||||
const struct audio_format *
|
||||
filter_open(struct filter *filter, const struct audio_format *audio_format,
|
||||
filter_open(struct filter *filter, struct audio_format *audio_format,
|
||||
GError **error_r)
|
||||
{
|
||||
const struct audio_format *out_audio_format;
|
||||
|
||||
assert(filter != NULL);
|
||||
assert(audio_format != NULL);
|
||||
assert(audio_format_valid(audio_format));
|
||||
assert(error_r == NULL || *error_r == NULL);
|
||||
|
||||
audio_format = filter->plugin->open(filter, audio_format, error_r);
|
||||
assert(audio_format == NULL || audio_format_valid(audio_format));
|
||||
out_audio_format = filter->plugin->open(filter, audio_format, error_r);
|
||||
|
||||
return audio_format;
|
||||
assert(out_audio_format == NULL || audio_format_valid(audio_format));
|
||||
assert(out_audio_format == NULL ||
|
||||
audio_format_valid(out_audio_format));
|
||||
|
||||
return out_audio_format;
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user