[FFmpeg-devel] [PATCHv3] all: fix enum definition for large values

Ganesh Ajjanagadde gajjanagadde at gmail.com
Fri Oct 30 19:11:38 CET 2015


ISO C restricts enumerator values to the range of int. Thus (for instance) 0x80000000
unfortunately does not work, and throws a warning with -Wpedantic on
clang 3.7.

This fixes it by using alternative expressions that result in identical
values but do not have this issue.

Tested with FATE.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
---
 libavcodec/dca_syncwords.h | 26 ++++++++++++--------------
 libavformat/cinedec.c      | 10 +++++-----
 libavformat/mov_chan.c     |  2 +-
 3 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/libavcodec/dca_syncwords.h b/libavcodec/dca_syncwords.h
index 3466b6b..6981cb8 100644
--- a/libavcodec/dca_syncwords.h
+++ b/libavcodec/dca_syncwords.h
@@ -19,19 +19,17 @@
 #ifndef AVCODEC_DCA_SYNCWORDS_H
 #define AVCODEC_DCA_SYNCWORDS_H
 
-enum DCASyncwords {
-    DCA_SYNCWORD_CORE_BE        = 0x7FFE8001U,
-    DCA_SYNCWORD_CORE_LE        = 0xFE7F0180U,
-    DCA_SYNCWORD_CORE_14B_BE    = 0x1FFFE800U,
-    DCA_SYNCWORD_CORE_14B_LE    = 0xFF1F00E8U,
-    DCA_SYNCWORD_XCH            = 0x5A5A5A5AU,
-    DCA_SYNCWORD_XXCH           = 0x47004A03U,
-    DCA_SYNCWORD_X96            = 0x1D95F262U,
-    DCA_SYNCWORD_XBR            = 0x655E315EU,
-    DCA_SYNCWORD_LBR            = 0x0A801921U,
-    DCA_SYNCWORD_XLL            = 0x41A29547U,
-    DCA_SYNCWORD_SUBSTREAM      = 0x64582025U,
-    DCA_SYNCWORD_SUBSTREAM_CORE = 0x02B09261U,
-};
+#define    DCA_SYNCWORD_CORE_BE              0x7FFE8001U
+#define    DCA_SYNCWORD_CORE_LE              0xFE7F0180U
+#define    DCA_SYNCWORD_CORE_14B_BE          0x1FFFE800U
+#define    DCA_SYNCWORD_CORE_14B_LE          0xFF1F00E8U
+#define    DCA_SYNCWORD_XCH                  0x5A5A5A5AU
+#define    DCA_SYNCWORD_XXCH                 0x47004A03U
+#define    DCA_SYNCWORD_X96                  0x1D95F262U
+#define    DCA_SYNCWORD_XBR                  0x655E315EU
+#define    DCA_SYNCWORD_LBR                  0x0A801921U
+#define    DCA_SYNCWORD_XLL                  0x41A29547U
+#define    DCA_SYNCWORD_SUBSTREAM            0x64582025U
+#define    DCA_SYNCWORD_SUBSTREAM_CORE       0x02B09261U
 
 #endif /* AVCODEC_DCA_SYNCWORDS_H */
diff --git a/libavformat/cinedec.c b/libavformat/cinedec.c
index 632f46c..3184084 100644
--- a/libavformat/cinedec.c
+++ b/libavformat/cinedec.c
@@ -49,13 +49,13 @@ enum {
     CFA_VRIV6     = 2,  /**< BGGR/GRBG */
     CFA_BAYER     = 3,  /**< GB/RG */
     CFA_BAYERFLIP = 4,  /**< RG/GB */
-
-    CFA_TLGRAY    = 0x80000000,
-    CFA_TRGRAY    = 0x40000000,
-    CFA_BLGRAY    = 0x20000000,
-    CFA_BRGRAY    = 0x10000000
 };
 
+#define CFA_TLGRAY  0x80000000U
+#define CFA_TRGRAY  0x40000000U
+#define CFA_BLGRAY  0x20000000U
+#define CFA_BRGRAY  0x10000000U
+
 static int cine_read_probe(AVProbeData *p)
 {
     int HeaderSize;
diff --git a/libavformat/mov_chan.c b/libavformat/mov_chan.c
index a2fa8d6..cba07c5 100644
--- a/libavformat/mov_chan.c
+++ b/libavformat/mov_chan.c
@@ -45,7 +45,7 @@
  *            do not specify a particular ordering of those channels."
  */
 enum MovChannelLayoutTag {
-    MOV_CH_LAYOUT_UNKNOWN               = 0xFFFF0000,
+#define MOV_CH_LAYOUT_UNKNOWN             0xFFFF0000
     MOV_CH_LAYOUT_USE_DESCRIPTIONS      = (  0 << 16) | 0,
     MOV_CH_LAYOUT_USE_BITMAP            = (  1 << 16) | 0,
     MOV_CH_LAYOUT_DISCRETEINORDER       = (147 << 16) | 0,
-- 
2.6.2



More information about the ffmpeg-devel mailing list