相信大家在移植ffmpeg代码到vc中都会遇到很多汇编指令,是VC不支持的。那是因为AT&T汇编和intel汇编格式不兼容引起的。
今天给大家介绍一下libavutil\x86\internal.h 中emms_c函数的移植吧。
函数原型:
static av_always_inline void emms_c(void)
{
if(av_get_cpu_flags() & AV_CPU_FLAG_MMX)
__asm__ volatile ("emms" ::: "memory");
}
因为VC asm提供了emms,直接调用就可以了。因此修改为:
static av_always_inline void emms_c(void)
{
if(av_get_cpu_flags() & AV_CPU_FLAG_MMX)
__asm emms;
}
版权所有,未经允许不得转载.