On 23.08.2015 05:11, James Almer wrote:
>> ffmpeg | branch: master | Andreas Cadhalpun <Andreas.Cadhalpun at
>> googlemail.com> | Sat Aug 8 10:41:33 2015 +0200|
>> [095347ffe4c73143dbeb7b05cde8891fd1289389] | committer: Andreas Cadhalpun
>>
>> disable deprecation warnings in deprecated code
>>
>> Reviewed-by: wm4 <nfxjfg at googlemail.com>
>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
>>
>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=095347ffe4c73143dbeb7b05cde8891fd1289389
>> ---
>>
>> libavcodec/mpeg12dec.c | 5 ++++-
>> libavcodec/options_table.h | 3 +++
>> libavcodec/pthread_frame.c | 9 ++++++++-
>> libavcodec/resample.c | 2 ++
>> libavfilter/audio.c | 2 ++
>> libavfilter/avcodec.c | 2 ++
>> libavutil/frame.c | 2 ++
>
> The changes to libavcodec/options_table.h, which is included by
> doc/print_options.c, seems to have broken
> linking doc/print_options.exe (host application) on msvc.
That's caused by some strange hack in libavutil/internal.h:
#if HAVE_LIBC_MSVCRT
#include <crtversion.h>
#if defined(_VC_CRT_MAJOR_VERSION) && _VC_CRT_MAJOR_VERSION < 14
#pragma comment(linker, "/include:" EXTERN_PREFIX "avpriv_strtod")
#pragma comment(linker, "/include:" EXTERN_PREFIX "avpriv_snprintf")
#endif
So instead of including that, one can copy the definition of the
FF_{DIS,EN}ABLE_DEPRECATION_WARNINGS macros, see attached patch.
Alternatively one could just revert the changes to libavcodec/options_table.h
and ignore the warnings in that file.
Best regards,
Andreas
>From c082552af369981de34faa7c86b90c2e2792f083 Mon Sep 17 00:00:00 2001
From: Andreas Cadhalpun <[email protected]>
Date: Sun, 23 Aug 2015 10:35:57 +0200
Subject: [PATCH] options_table: fix compatibility with MSVC
Instead of including libavutil/internal.h duplicate the definitions
of FF_{DIS,EN}ABLE_DEPRECATION_WARNINGS.
Signed-off-by: Andreas Cadhalpun <[email protected]>
---
libavcodec/options_table.h | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index d4711ed..85193d0 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -26,11 +26,27 @@
#include <limits.h>
#include <stdint.h>
-#include "libavutil/internal.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "version.h"
+// Including libavutil/internal.h breaks compilation with MSVC due to linking avpriv_strtod/avpriv_snprintf.
+#if HAVE_PRAGMA_DEPRECATED
+# if defined(__ICL) || defined (__INTEL_COMPILER)
+# define FF_DISABLE_DEPRECATION_WARNINGS __pragma(warning(push)) __pragma(warning(disable:1478))
+# define FF_ENABLE_DEPRECATION_WARNINGS __pragma(warning(pop))
+# elif defined(_MSC_VER)
+# define FF_DISABLE_DEPRECATION_WARNINGS __pragma(warning(push)) __pragma(warning(disable:4996))
+# define FF_ENABLE_DEPRECATION_WARNINGS __pragma(warning(pop))
+# else
+# define FF_DISABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
+# define FF_ENABLE_DEPRECATION_WARNINGS _Pragma("GCC diagnostic warning \"-Wdeprecated-declarations\"")
+# endif
+#else
+# define FF_DISABLE_DEPRECATION_WARNINGS
+# define FF_ENABLE_DEPRECATION_WARNINGS
+#endif
+
#define OFFSET(x) offsetof(AVCodecContext,x)
#define DEFAULT 0 //should be NAN but it does not work as it is not a constant in glibc as required by ANSI/ISO C
//these names are too long to be readable
--
2.5.0
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel