diff --git a/doc/APIchanges b/doc/APIchanges
index 355b22aa78b20b8b4bc1528565c1dbb7432f992e..b463749ebad0b54ffc884ca06847d1e2bf1f9a3e 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,10 @@ libavutil:     2012-10-22
 
 API changes, most recent first:
 
+2012-12-20 - xxxxxxx - lavfi 3.28.100 - avfilter.h
+  Add AVFilterLink.channels, avfilter_link_get_channels()
+  and avfilter_ref_get_channels().
+
 2012-12-15 - 2ada584d - lavc 54.80.100 - avcodec.h
   Add pkt_size field to AVFrame.
 
diff --git a/libavfilter/audio.c b/libavfilter/audio.c
index 565f2e264cc3a103d96e6f4de3e25b2852e80e3d..3564896534756cae6b932849ada2fcaf31bcc72b 100644
--- a/libavfilter/audio.c
+++ b/libavfilter/audio.c
@@ -27,6 +27,11 @@
 #include "avfilter.h"
 #include "internal.h"
 
+int avfilter_ref_get_channels(AVFilterBufferRef *ref)
+{
+    return ref->audio ? ref->audio->channels : 0;
+}
+
 AVFilterBufferRef *ff_null_get_audio_buffer(AVFilterLink *link, int perms,
                                             int nb_samples)
 {
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 5234a66201c60d65daad18e11bcd964d0ae359e3..3849c7b0b4e96eb211a5d477f85f10544d02fc0b 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -128,7 +128,7 @@ typedef struct AVFilterBufferRefAudioProps {
     uint64_t channel_layout;    ///< channel layout of audio buffer
     int nb_samples;             ///< number of audio samples per channel
     int sample_rate;            ///< audio buffer sample rate
-    int channels;               ///< number of channels
+    int channels;               ///< number of channels (do not access directly)
 } AVFilterBufferRefAudioProps;
 
 /**
@@ -233,6 +233,11 @@ void avfilter_unref_buffer(AVFilterBufferRef *ref);
  */
 void avfilter_unref_bufferp(AVFilterBufferRef **ref);
 
+/**
+ * Get the number of channels of a buffer reference.
+ */
+int avfilter_ref_get_channels(AVFilterBufferRef *ref);
+
 #if FF_API_AVFILTERPAD_PUBLIC
 /**
  * A filter pad used for either input or output.
diff --git a/libavfilter/version.h b/libavfilter/version.h
index ee6525f549dd622d4013feea78d9cc2003102237..d8061de8119a8016b29698c1ad3abebd359cbd8c 100644
--- a/libavfilter/version.h
+++ b/libavfilter/version.h
@@ -29,8 +29,8 @@
 #include "libavutil/avutil.h"
 
 #define LIBAVFILTER_VERSION_MAJOR  3
-#define LIBAVFILTER_VERSION_MINOR  28
-#define LIBAVFILTER_VERSION_MICRO 102
+#define LIBAVFILTER_VERSION_MINOR  29
+#define LIBAVFILTER_VERSION_MICRO 100
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
                                                LIBAVFILTER_VERSION_MINOR, \