您的位置:首页 > 其它

在vs2008下使用ffmpeg(2):readtime的问题

2008-12-11 20:19 330 查看

快乐虾 http://blog.csdn.net/lights_joy/ lights@hb165.com

本文适用于
ffmpeg-checkout-20081210
vs2008
Windows XP


欢迎转载,但请保留作者信息





在libavutil/common.h(330)文件中定义了一个readtime函数:
static inline uint64_t read_time(void)
{
uint32_t a, d;
__asm__ volatile("rdtsc/n/t"
: "=a" (a), "=d" (d));
return ((uint64_t)d << 32) + a;
}
因为它使用的是gcc语法的嵌入汇编,故此需要进行修改。
Vs2008提供了一个叫__rdtsc()的函数,MSDN这样解释:
Generates the rdtsc instruction, which returns the processor time stamp. The processor time stamp records the number of clock cycles since the last reset.
unsigned __int64 __rdtsc();
它的返回值:
A 64-bit unsigned integer representing a tick count.
因此这个函数可以修改为:
#include <intrin.h>
#pragma intrinsic(__rdtsc)
static inline uint64_t read_time(void)
{
return __rdtsc();
}




参考资料

在vs2008下使用ffmpeg(1):inttypes.h的问题(2008-12-11)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: