repositories
/
deb_ffmpeg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Debian version 2.5.0~trusty1.1
[deb_ffmpeg.git]
/
ffmpeg
/
libavutil
/
intmath.h
diff --git
a/ffmpeg/libavutil/intmath.h
b/ffmpeg/libavutil/intmath.h
index 8f7a69eae12c9877ea15c07069d8bd723b649b5c..308c776bb7ec43734e845dd78a18121af0c16eb8 100644
(file)
--- a/
ffmpeg/libavutil/intmath.h
+++ b/
ffmpeg/libavutil/intmath.h
@@
-35,21
+35,29
@@
* @{
*/
* @{
*/
-#if HAVE_FAST_CLZ
&& AV_GCC_VERSION_AT_LEAST(3,4)
-
+#if HAVE_FAST_CLZ
+#if AV_GCC_VERSION_AT_LEAST(3,4)
#ifndef ff_log2
# define ff_log2(x) (31 - __builtin_clz((x)|1))
# ifndef ff_log2_16bit
# define ff_log2_16bit av_log2
# endif
#endif /* ff_log2 */
#ifndef ff_log2
# define ff_log2(x) (31 - __builtin_clz((x)|1))
# ifndef ff_log2_16bit
# define ff_log2_16bit av_log2
# endif
#endif /* ff_log2 */
-
+#elif defined( __INTEL_COMPILER )
+#ifndef ff_log2
+# define ff_log2(x) (_bit_scan_reverse(x|1))
+# ifndef ff_log2_16bit
+# define ff_log2_16bit av_log2
+# endif
+#endif /* ff_log2 */
+#endif
#endif /* AV_GCC_VERSION_AT_LEAST(3,4) */
extern const uint8_t ff_log2_tab[256];
#ifndef ff_log2
#define ff_log2 ff_log2_c
#endif /* AV_GCC_VERSION_AT_LEAST(3,4) */
extern const uint8_t ff_log2_tab[256];
#ifndef ff_log2
#define ff_log2 ff_log2_c
+#if !defined( _MSC_VER )
static av_always_inline av_const int ff_log2_c(unsigned int v)
{
int n = 0;
static av_always_inline av_const int ff_log2_c(unsigned int v)
{
int n = 0;
@@
-65,6
+73,15
@@
static av_always_inline av_const int ff_log2_c(unsigned int v)
return n;
}
return n;
}
+#else
+static av_always_inline av_const int ff_log2_c(unsigned int v)
+{
+ unsigned long n;
+ _BitScanReverse(&n, v|1);
+ return n;
+}
+#define ff_log2_16bit av_log2
+#endif
#endif
#ifndef ff_log2_16bit
#endif
#ifndef ff_log2_16bit
@@
-94,14
+111,21
@@
static av_always_inline av_const int ff_log2_16bit_c(unsigned int v)
* @{
*/
* @{
*/
-#if HAVE_FAST_CLZ && AV_GCC_VERSION_AT_LEAST(3,4)
+#if HAVE_FAST_CLZ
+#if AV_GCC_VERSION_AT_LEAST(3,4)
#ifndef ff_ctz
#define ff_ctz(v) __builtin_ctz(v)
#endif
#ifndef ff_ctz
#define ff_ctz(v) __builtin_ctz(v)
#endif
+#elif defined( __INTEL_COMPILER )
+#ifndef ff_ctz
+#define ff_ctz(v) _bit_scan_forward(v)
+#endif
+#endif
#endif
#ifndef ff_ctz
#define ff_ctz ff_ctz_c
#endif
#ifndef ff_ctz
#define ff_ctz ff_ctz_c
+#if !defined( _MSC_VER )
static av_always_inline av_const int ff_ctz_c(int v)
{
int c;
static av_always_inline av_const int ff_ctz_c(int v)
{
int c;
@@
-130,6
+154,14
@@
static av_always_inline av_const int ff_ctz_c(int v)
return c;
}
return c;
}
+#else
+static av_always_inline av_const int ff_ctz_c( int v )
+{
+ unsigned long c;
+ _BitScanForward(&c, v);
+ return c;
+}
+#endif
#endif
/**
#endif
/**