MSVC2017 编译WebRTC Release VP8编码崩溃的问题

article/2025/9/7 19:10:22

问题描述:

使用msvs2017编译webrtc。release版本使用VP8会出现奔溃,H264无问题。现象如下:

编译选项:

"--args=target_cpu=\"x86\" is_debug=false use_rtti=true is_clang = false "

原因:

MSVC编译器的bug

解决办法

解决方法一:

使用CLANG编译,编译选项如下,记得加不使用webrtc带的c++库,否则又是一通错误:

"--args=target_cpu=\"x86\" is_debug=false use_rtti=true is_clang=true use_lld=false use_custom_libcxx=false "

解决方法二:

依旧使用MSVC编译,这个是MSVC编译器的bug。

禁用这个选项,找到代码文件相关代码的函数,修改如下: libvpx\source\libvpx\vpx_dsp\x86\variance_avx2.c

#ifdef _MSC_VER
#pragma optimize("", off)
#endif
static INLINE void variance_final_from_16bit_sum_avx2(__m256i vsse,__m256i vsum,unsigned int *const sse,int *const sum) {// extract the low lane and add it to the high laneconst __m128i sum_reg_128 = _mm_add_epi16(_mm256_castsi256_si128(vsum),_mm256_extractf128_si256(vsum, 1));const __m128i sum_reg_64 =_mm_add_epi16(sum_reg_128, _mm_srli_si128(sum_reg_128, 8));const __m128i sum_int32 = _mm_cvtepi16_epi32(sum_reg_64);variance_final_from_32bit_sum_avx2(vsse, sum_int32, sse, sum);
}
#ifdef _MSC_VER
#pragma optimize("", on)
#endif


http://chatgpt.dhexx.cn/article/GxSDuI57.shtml

相关文章

音视频基础1:H264、H265、MPEG-4、VP8、VP9编码基础知识

这里写自定义目录标题 个人认知,程序员职业发展出路编码器发展史编码原理H264H265 个人认知,程序员职业发展出路 随着5G时代的到来,音视频成功走上风口,程序员如何发展,其实不管是入门级选手还是30岁,35岁…

音视频基础:H264、H265、MPEG-4、VP8、VP9编码基础知识

编码器发展史 Android中创建编码器 MediaCodec.createEncoderByType("video/av"); //创建H264编码器 MediaCodec.createEncoderByType("video/hevc"); //创建H265编码器为什么会有这么多种编码器?看看他们的发展史的。 ITU-T这个组织是专门…

webrtc代码走读九(vp8 rtp 报文解析)

一、wireshark解析VP8报文方法 首先webrtc里面默认开启了FEC和SRTP功能,导致wireshark无法正常解析VP8的报文。所以若想了解VP8的RTP报文格式,还需要先关闭FEC、SRTP。 1、关闭FEC。 internalencoderfactory.cc文件屏蔽kRedCodecName、kUlpfecCodecNa…

vp8 的下载

1. vp8 的下载 页面地址 https://github.com/webmproject/libvpx git 下载 git clone https://github.com/webmproject/libvpx.git2. 在 android 上面搭建的 vp8 环境 页面地址 https://github.com/cmeng-git/vpx-android git 下载 git clone https://github.com/cmeng-gi…

VP8视频格式初探

作者: 阮一峰日期: 2010年5月20日 昨天,Google发布了一个开源项目WebM。 这个项目的目的,是在文件格式方面,为制作和发布互联网视频提供了一个开源的解决方案。 WebM采用MKV作为封装格式,里面的音频编码用V…

深入了解 VP8

部分翻译:http://x264dev.multimedia.cx/?p377 译者:delectate 问题一:vp8到底怎么样? 难道他真的比x264拥有更高的压缩比率,是个优秀的编码器吗?他真的比h264优秀吗?似乎On2自己都羞于承认……

VP8的前途与使命

文 / 金尹 VP8是视频压缩解决方案厂商On2推出的视频压缩格式。今年年初,Google完成了对On2的收购,随即开放了VP8视频编码技术源代码并免费提供给开发者使用。但业界对此一直褒贬不一,本文作者从多个角度进行阐述,对VP8的前途与发展…

如何使用Win10剪切板

几乎所有接触电脑的人都会使用CtrlC和CtrlV,但是每次CtrlC只能复制一次,并且会覆盖之前已经复制的内容。如果需要多次复制不同内容,那就操作多次。如果需要切换页面进行复制,特别不方便。其实,Win10有内置剪切板&#…

windows剪切板的历史记录

windows剪切板的历史记录 最近遇到一件比较坑的事情。当然可能也是我本人粗心大意了吧。但是这种事情难免要发生。比如说你要移动一个比较重要的东西,然后按了ctrlx,但是之间因为别的事情耽搁了一下,而自己的重要的东西还放在剪切板里面&…

win10如何查看剪切板内容?

cv大法我们经常用,但如果复制了新的内容但又想粘贴使用上次复制的内容怎么办? 其实复制新的内容并没有覆盖掉之前复制的内容,可以使用CtrlV快捷键打开剪切板,在剪切板里可以找到以前复制过的内容。 注意:这里的剪切板…

windows 剪贴板监控

迅雷下载或者旋风下载都有一个很有意思的剪贴板监控功能,当你打开剪贴板监控时,如果你复制了一个下载的URL,这两个程序都会弹出来下载框来让你去下载,显得很智能,昨天发现灵格斯词霸也有个剪贴板取词功能。 上个月写了…

Win10清空剪切板内容的方法介绍

剪切板是用户最经常使用的系统功能,可以对想要操作的内容进行临时缓存,但是长时间对里面的内容不清理的话,就会造成系统卡顿。下面小编就给大家介绍一下Win10清空剪切板内容的方法。 操作过程: 1、在Win10桌面空白处点击鼠标右键&…

WIN10剪切板打不开无法调用win+v无法打开

1.确认设置——>剪切板设置——>剪切板打开 2.第一步打开之后仍然无法调用尝试第二步 管理员运行cmd——>输入以下命令 DISM /Online /Add-Capability /CapabilityName:Windows.Client.ShellComponents~~~~0.0.1.0 等待安装完毕——>winv调用成功!

Windows 远程桌面剪切板失效

环境: Windows Server 2019 Windows 10 问题描述: 从本机复制文本或图片,无法粘贴到远程主机,从远程主机无法复制文本或图片到当前本地主机,远程桌面剪切板失效 解决方案: 1.在远程主机打开任务管理器,找到rdpcli…

windows如何查看剪贴板历史

改论文的时候,总是因为复制粘贴后找不到上一个复制而烦恼,每次都要alttab来回切换 甚是烦恼,无意间找到访问粘贴板的快捷键分享一下。 WinV 第一步,打开开始菜单栏点击设置 第二步、选择系统设置 第三步、下拉选择剪贴板 第四步…

windows如何修改复制粘贴与剪切快捷键?

背景介绍 在用惯了Mac OS后,发现其复制粘贴的默认快捷键确实好用windows上我们都值是ctrl c / v / x 来实现但是大家在日常使用过程中不觉得ctrl 这几个键手指头按的很费劲吗?究其根本原因还是离的有点远了而我更喜欢用简谱上类似Mac OS 的的位置 Alt …

Windows10剪贴板的使用

在windows10操作系统中,有一个非常好用的软件——剪贴板。使用快捷键(winv)可打开剪贴板。 在剪贴板中历史记录可最多存放25条,容量限制大小为每项4MB,共25个复制条目,先进先出。(2018年10月更…

如何清空windows的系统剪贴板

有的时候我们需要模拟清空系统剪贴板的场景可以如下操作: windows11系统为例子: windows菜单,选择 设置 打开设置面板 搜索 剪贴板 点击清除即可

windows 清空剪切板

清空剪切板有多重方法: 一、方法最快捷 windows徽标键r启动运行,输入cmd打开命令窗口:输入“dir | clip”(不包括引号),回车即可。 Windowsr,输入 cmd /c "echo off | clip" ,Ente…

Windows10如何查看剪切板

一、Ctrlr,输入clipbrd,回车 二、找不到clipbrd.exe 1、网上搜索下载clipbrd.exe,资源很多的。下载之后解压 2、将 clipbrd.exe 复制到 C:\Windows\System32 三、重复第一步 .