如何解决多次打开CameraDshowApp.exe系统死机的问题(高分辨率camera)

   最近在调试CameraDshowApp.exe的时候遇到了一个问题,当camera的分辨率为800*600,640*480或其他分辨率更小时,多次打开CameraDshowApp.exe没有什么问题,当camera分辨率为1280*1024或更高时,第一次运行CameraDshowApp.exe没有问题,第二次打开系统就会死掉。很明显问题是出在系统内存上,但遗憾的是没有找到问题的根源在哪里,对DirectShow还是不熟啊!

   打开CameraDshowApp.exe时界面如下:

  

通过验证发现只要去掉选项:Video Encoder,File Mux,AudioCapture,Audio Encoder就能解决camera高分辨时多次打开CameraDshowApp.exe系统死机的问题。但是每次都要这样操作就太麻烦了,可以在程序里面完成,修改的文件为D:/WINCE600/PRIVATE/TEST/MULTIMEDIA/DIRECTX/DSHOW/CAMERA/CAMERAAPP/main.c 代码如下:

 

            hID = GetDlgItem(hDlg, IDC_FILEMUXCHECK);
            SendMessage(hID, BM_SETCHECK, BST_UNCHECKED, 0);

            hID = GetDlgItem(hDlg, IDC_AUDIOCAPTURE);
            SendMessage(hID, BM_SETCHECK, BST_UNCHECKED, 0);

            hID = GetDlgItem(hDlg, IDC_VIDEOENCODER);
            SendMessage(hID, BM_SETCHECK, BST_UNCHECKED, 0);

            hID = GetDlgItem(hDlg, IDC_AUDIOENCODER);
            SendMessage(hID, BM_SETCHECK, BST_UNCHECKED, 0);
  以上代码是在初始化时通过SendMessage向窗体控件CheckBox发送消息不选择上述四项;

           g_dwFilters = VIDEO_CAPTURE_FILTER | VIDEO_RENDERER | STILL_IMAGE_SINK ;

   设置默认的滤波器为渲染滤波器,捕获滤波器和拍照滤波器。

    通过这些代码也能发现问题就出在这里,默认的g_dwFilters还包括了Video Encoder,File Mux,AudioCapture,Audio Encoder对应的滤波器,当包括了这些滤波器时系统要分配更多的内存,或超过了CameraDshowApp.exe默认分配的内存。以至于camera输出高分辨图像时会出现异常,如果哪位知道问题的根源,或CameraDshowApp.exe中是如何分配内存的请告诉我,谢谢了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用内容,ubuntu22.04系统死机的原因可能与以下几个方面有关: 1. WIFI无线驱动问题:尝试关闭WIFI,但问题仍然存在,排除了WIFI驱动问题的可能性。 2. Firefox浏览器问题:每次打开Firefox必定导致系统卡死,后来不再使用Firefox,但偶尔仍然会出现系统卡死的情况。 3. 图形界面问题:在无操作的情况下,系统主要任务是图形界面,可能与图形界面有关。尝试将gdm图形界面更换为lightdm,但问题仍然存在。 4. 显卡驱动问题:考虑到电脑使用的是NVIDIA显卡,ubuntu自带的nouveau显卡驱动可能不兼容,导致系统死机。 为了解决ubuntu22.04系统死机问题,可以尝试以下方法: 1. 更新显卡驱动:从NVIDIA官方网站下载最新的显卡驱动,并按照官方文档的指引进行安装。 2. 禁用nouveau驱动:在系统启动时,按下Ctrl+Alt+F3进入tty终端,登录后执行以下命令禁用nouveau驱动: ```shell sudo echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf sudo echo "options nouveau modeset=0" >> /etc/modprobe.d/blacklist.conf sudo update-initramfs -u ``` 3. 安装闭源驱动:尝试安装NVIDIA官方提供的闭源驱动,可以通过以下命令进行安装: ```shell sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt install nvidia-driver-<version> ``` 4. 检查硬件兼容性:确保电脑的硬件与ubuntu22.04系统兼容,特别是显卡和其他关键硬件。 5. 更新系统和软件:确保系统和软件都是最新版本,可以通过以下命令进行更新: ```shell sudo apt update sudo apt upgrade ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值