相信大家在移植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; }
版权所有,未经允许不得转载.