aboutsummaryrefslogtreecommitdiffstats
path: root/src/audio_format.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/audio_format.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/audio_format.c b/src/audio_format.c
index 799e0dd89..458ec3b13 100644
--- a/src/audio_format.c
+++ b/src/audio_format.c
@@ -28,6 +28,25 @@
#define REVERSE_ENDIAN_SUFFIX "_be"
#endif
+void
+audio_format_mask_apply(struct audio_format *af,
+ const struct audio_format *mask)
+{
+ assert(audio_format_valid(af));
+ assert(audio_format_mask_valid(mask));
+
+ if (mask->sample_rate != 0)
+ af->sample_rate = mask->sample_rate;
+
+ if (mask->format != SAMPLE_FORMAT_UNDEFINED)
+ af->format = mask->format;
+
+ if (mask->channels != 0)
+ af->channels = mask->channels;
+
+ assert(audio_format_valid(af));
+}
+
const char *
sample_format_to_string(enum sample_format format)
{