[FFmpeg-devel] [PATCH 1/2] avcodec/vda_h264: use multichar literal portably

Ganesh Ajjanagadde gajjanagadde at gmail.com
Sat Sep 19 00:16:18 CEST 2015


Multichar literals are implementation defined, and thus trigger -Wmultichar:
http://fate.ffmpeg.org/log.cgi?time=20150918202532&log=compile&slot=x86_64-darwin-gcc-5.
http://www.zipcon.net/~swhite/docs/computers/languages/c_multi-char_const.html
gives a good summary of how to deal with them; in particular this patch
results in behavior identical to that generated by GCC (which I assume is correct this case).

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
---
 libavcodec/vda_h264.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/vda_h264.c b/libavcodec/vda_h264.c
index 8c526c0..3279afa 100644
--- a/libavcodec/vda_h264.c
+++ b/libavcodec/vda_h264.c
@@ -339,7 +339,9 @@ int ff_vda_default_init(AVCodecContext *avctx)
     CFMutableDictionaryRef buffer_attributes;
     CFMutableDictionaryRef io_surface_properties;
     CFNumberRef cv_pix_fmt;
-    int32_t fmt = 'avc1', pix_fmt = vda_ctx->cv_pix_fmt_type;
+#define LE_CHR(a,b,c,d) ( ((a)<<24) | ((b)<<16) | ((c)<<8) | (d) )
+    int32_t fmt = LE_CHR( 'a', 'v', 'c', '1');
+    int32_t pix_fmt = vda_ctx->cv_pix_fmt_type;
 
     // kCVPixelFormatType_420YpCbCr8Planar;
 
-- 
2.5.2



More information about the ffmpeg-devel mailing list