diff --git a/libavutil/audioconvert.c b/libavutil/audioconvert.c
index 524f6f9e9e10a38d91a0ae70fd44ca1a8cf4d2eb..4a8794276e85d2aaa0038dff703b09e57057640d 100644
--- a/libavutil/audioconvert.c
+++ b/libavutil/audioconvert.c
@@ -131,3 +131,11 @@ int av_get_channel_layout_nb_channels(int64_t channel_layout)
         x &= x-1; // unset lowest set bit
     return count;
 }
+
+int av_get_default_channel_layout(int nb_channels) {
+    int i;
+    for (i = 0; channel_layout_map[i].name; i++)
+        if (nb_channels == channel_layout_map[i].nb_channels)
+            return channel_layout_map[i].layout;
+    return 0;
+}
diff --git a/libavutil/audioconvert.h b/libavutil/audioconvert.h
index 134c6107c9d1e75ebf54fcfd0b21681c195d76de..03965ccc7dbd10e892035e295580e35c90894c72 100644
--- a/libavutil/audioconvert.h
+++ b/libavutil/audioconvert.h
@@ -92,4 +92,9 @@ void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, int6
  */
 int av_get_channel_layout_nb_channels(int64_t channel_layout);
 
+/**
+ * Return default channel layout for a given number of channels.
+ */
+int av_get_default_channel_layout(int nb_channels);
+
 #endif /* AVUTIL_AUDIOCONVERT_H */