diff --git a/NEWS b/NEWS index cfc6c72c0..1b57dd4c1 100644 --- a/NEWS +++ b/NEWS @@ -54,11 +54,14 @@ ver 0.20 (not yet released) * update - apply .mpdignore matches to subdirectories -ver 0.19.19 (not yet released) +ver 0.19.19 (2016/08/23) * decoder + - ffmpeg: bug fix for FFmpeg 3.1 support - wildmidi: support libWildMidi 0.4 * output - pulse: support 32 bit, 24 bit and floating point playback +* support non-x86 NetBSD +* fix clang 3.9 warnings ver 0.19.18 (2016/08/05) * decoder diff --git a/src/Compiler.h b/src/Compiler.h index 0365ef436..957aca551 100644 --- a/src/Compiler.h +++ b/src/Compiler.h @@ -28,12 +28,18 @@ #define GCC_VERSION 0 #endif +#ifdef __clang__ +# define CLANG_VERSION GCC_MAKE_VERSION(__clang_major__, __clang_minor__, __clang_patchlevel__) +#elif defined(__GNUC__) +# define CLANG_VERSION 0 +#endif + /** * Are we building with the specified version of gcc (not clang or any * other compiler) or newer? */ #define GCC_CHECK_VERSION(major, minor) \ - (defined(__GNUC__) && !defined(__clang__) && \ + (CLANG_VERSION == 0 && \ GCC_VERSION >= GCC_MAKE_VERSION(major, minor, 0)) /** @@ -41,18 +47,17 @@ * gcc version? */ #define CLANG_OR_GCC_VERSION(major, minor) \ - (defined(__clang__) || GCC_CHECK_VERSION(major, minor)) + (CLANG_VERSION > 0 || GCC_CHECK_VERSION(major, minor)) /** * Are we building with gcc (not clang or any other compiler) and a * version older than the specified one? */ #define GCC_OLDER_THAN(major, minor) \ - (defined(__GNUC__) && !defined(__clang__) && \ + (GCC_VERSION > 0 && CLANG_VERSION == 0 && \ GCC_VERSION < GCC_MAKE_VERSION(major, minor, 0)) #ifdef __clang__ -# define CLANG_VERSION GCC_MAKE_VERSION(__clang_major__, __clang_minor__, __clang_patchlevel__) # if __clang_major__ < 3 # error Sorry, your clang version is too old. You need at least version 3.1. # endif @@ -68,8 +73,7 @@ * Are we building with the specified version of clang or newer? */ #define CLANG_CHECK_VERSION(major, minor) \ - (defined(__clang__) && \ - CLANG_VERSION >= GCC_MAKE_VERSION(major, minor, 0)) + (CLANG_VERSION >= GCC_MAKE_VERSION(major, minor, 0)) #if CLANG_OR_GCC_VERSION(4,0) diff --git a/src/decoder/plugins/FfmpegDecoderPlugin.cxx b/src/decoder/plugins/FfmpegDecoderPlugin.cxx index 10c60b92a..662ba2af9 100644 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx @@ -653,6 +653,10 @@ FfmpegDecode(Decoder &decoder, InputStream &input, AtScopeExit(&codec_context) { avcodec_free_context(&codec_context); }; + +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(57, 25, 0) /* FFmpeg 3.1 */ + avcodec_parameters_to_context(codec_context, av_stream.codecpar); +#endif #endif const SampleFormat sample_format = diff --git a/src/system/ByteOrder.hxx b/src/system/ByteOrder.hxx index babc503a9..0a12de84c 100644 --- a/src/system/ByteOrder.hxx +++ b/src/system/ByteOrder.hxx @@ -42,7 +42,7 @@ /* well-known big-endian */ # define IS_LITTLE_ENDIAN false # define IS_BIG_ENDIAN true -#elif defined(__APPLE__) +#elif defined(__APPLE__) || defined(__NetBSD__) /* compile-time check for MacOS */ # include # if BYTE_ORDER == LITTLE_ENDIAN