[FFmpeg-cvslog] Fix av_get_channel_layout_string() for positions >31

Mans Rullgard git at videolan.org
Sat Nov 26 01:17:42 CET 2011


ffmpeg | branch: master | Mans Rullgard <mans at mansr.com> | Fri Nov 25 14:58:50 2011 +0000| [019dd2365729d44d66a5b629102e1ecb919f4f67] | committer: Mans Rullgard

Fix av_get_channel_layout_string() for positions >31

A value shifted left by >31 needs to have a 64-bit type.
As there are no defined channels in this range, the fix
is purely theoretical at this point, although it does
avoid some invalid shifts triggering the overflow
checker.

Signed-off-by: Mans Rullgard <mans at mansr.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=019dd2365729d44d66a5b629102e1ecb919f4f67
---

 libavutil/audioconvert.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/libavutil/audioconvert.c b/libavutil/audioconvert.c
index 52656c7..e9f9e41 100644
--- a/libavutil/audioconvert.c
+++ b/libavutil/audioconvert.c
@@ -109,7 +109,7 @@ void av_get_channel_layout_string(char *buf, int buf_size,
         int i, ch;
         av_strlcat(buf, " (", buf_size);
         for (i = 0, ch = 0; i < 64; i++) {
-            if ((channel_layout & (1L << i))) {
+            if ((channel_layout & (UINT64_C(1) << i))) {
                 const char *name = get_channel_name(i);
                 if (name) {
                     if (ch > 0)



More information about the ffmpeg-cvslog mailing list