WINCE的混音器

wince5.0中es1371声卡单层驱动源码分析      刚刚进入公司就要做WINCE驱动,实话是我从来没有接触过着东西。只好硬着头皮学习,不管学得怎么样我努力,还是记录下自己的一点心得,今天闲来分析下wince5.0自带的声卡驱动。源代码在%_WINCEROOT%/PUBLIC/Common/OAK/DRIVER/WAVEDEV下面。其中UNDEFINED是单层驱动,我就先学习这个。先看看wavmain.cpp,wavmain.cpp的第 阅读详情

在CE音频设备中,混音器是有不同类型的,下面介绍一下:

1、软件混音器

Waveapi模块有软件混音器,有时也称为内核混音器。它能混合多个不同采样率的PCM,在CE 4.2中被加入。

软件混音器在启动时,为音频设备创建一个线程。这个线程负责接受应用的音频buffer,把它们放到混合的buffer中,再传给音频设备。这个过程中,软件混音器的工作有:

1、  把所有数据转换成16位的双声道格式

音频驱动需要支持16位的双声道驱动。如果硬件只支持单声道,而又想使用软件混音器。那么就要把双声道数据转换成单声道。应用把单声道数据放到堆中,软件混音器会把它复制成2个通道的音频数据,在驱动中再合并成一个声道输出。这不太合理,但是性能影响不大。

软件混音器只支持8、16位或者单、双声道的PCM格式数据。软件混音器不能处理压缩的数据,不能处理多通道PCM数据。如要用软件混音器播放这些数据,必须转换成它能够识别的格式。这通常在DShow或者ACM层已经做好。如果软件混音器发现数据不能识别,它会退出流程,通过waveOutOpen直接传递给设备驱动。这时,就要依赖驱动决定怎样处理。

2、  采样率转换,把所有数据和采样率,转换成它要的格式

采样率转换现在是5点FIR,质量和效率都不大好。软件混音器要进行采样率转换前,必须要知道音频设备的需求。

3、  提供每个流的gain控制

当应用程序调用waveOutSetVolume,传入一个句柄。软件混音器会处理这个调用,因此驱动是不关心这部分的。

4、  支持waveOutSetRate功能

2、WaveDev2的混音器

WaveDev2有自己的混音器来混合PCM流。这个混音器提供和软件混音器一样的基本功能,那为何还要提供一个新的混音器呢:

1、  WaveDev2开发时候,还没有waveapi的软件混音器

2、  WaveDev2混音器提供部分手机的特殊调用

3、  WaveDev2混音器有更好的算法,在驱动IST线程中运行,而不是独立的线程。这些能提高性能、电池寿命和响应速度。

WaveDev2的样例驱动也提供输入混音功能,但不是真正的混音。它让一个硬件输入流,转换采样率,再分离成多个输入流。

WaveDev2和内核混音器另一个区别是,内核混音器是私有代码,不能被OEM修改。WaveDev2的是OEM驱动一部分,可以被修改。

3、 Mixer函数

当2个混音器通过wave函数接收PCM音频流,这里调用mixer函数有些不一样。

Mixer函数属于上层函数,和Wave、ACM、TAPI等相似。作用是把底层的、音频相关的控制,暴露给应用层。Mixer函数包括mixerOpen、mixerClose等,MSDN描述:

http://msdn2.microsoft.com/en-us/library/ms705739.aspx,

所有mixer函数通过IOCTL_MIX_MESSAGE来控制的,音频驱动可以在此IoControl加入相应的代码,来实现mixer函数。

http://blogs.msdn.com/medmedia/archive/2007/01/12/what-do-you-mean-by-mixer.aspx

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/lweiqi/archive/2009/05/01/4139652.aspx

英伟达(NVIDIA) 显卡型号、计算能力(CC)、CUDA版本、PyTorch版本 对照表 本文全面梳理NVIDIA显卡型号与其计算能力(CC)的对应关系,并详解各代CUDA版本对不同架构的支持与弃用情况,帮助用户判断硬件兼容性。同时,结合PyTorch官方发布版本,整理其支持的CUDA版本清单,指导开发者合理选择深度学习环境配置。涵盖从Jetson嵌入式设备到H100、Blackwell等最新旗舰显卡,是一份实用的AI开发环境搭建参考指南。 阅读详情

相关推荐

基于Apache SeaTunnel构建CDC数据同步管道

Apache SeaTunnel是一个数据集成开发平台,其发展经历了几个重要阶段:ETL时代(90年代):面向结构化数据库的数据同步,用于构建数据仓库。MPP和分布式技术流行:使用技术如Hive进行数据仓库的构建。此阶段主要使用mapreduce程序进行数据搬运和转换。数据湖技术流行:重视数据集成,强调先同步数据至数据湖仓储,再进行业务面向的转换和设计。CDC,即变更数据捕获,是一种捕获数据库变更事件(如插入、更新、删除)的技术。

weixin_54625990的博客 2172

GoldWave教程分享:混音怎么处理

GoldWave混音怎么处理?之前一朋友听说我现在在研究关于这方面的文章,就迫不及待的想让我试试。她偏爱唱歌,也想学,现在在初试阶段,想问问,如何将自己清唱的歌,加入伴奏呢?这还不简单,打开软件,直接给她演示了一篇GoldWave混音处理。 我们先来认识一下“混音”如图: 或者在菜单栏的‘编辑’下拉选项中也可以找到这个功能。 首先我们要选择一个音乐打开伴奏和录音: 先选中“录音”文件窗口右...

qq_43131106的博客 3641

ANSYS APDL实战:手把手教你搞定电磁-热耦合分析(附完整命令流)

本文通过一个工业感应加热线圈的实战案例,手把手教你使用ANSYS APDL完成电磁-热耦合分析。内容涵盖从几何建模、材料定义、网格划分到加载求解及后处理的完整流程,重点讲解了使用PLANE13单元进行双向耦合场分析的方法与命令流调试技巧,助力工程师快速掌握这一核心仿真能力。

weixin_29284201的博客 419

WINCE 音频驱动之二:驱动模型

      音频驱动采用Wavedev2模式来实现,这是单层的驱动模式,平台相关的都在hwctxt.h和hwctxt.cpp中,此外还加入了midi支持、software mixer支持、S/PDIF接口、gain class接口、forcespeaker接口等等。                                                            (1)

zhandoushi的专栏 2871

1.4 《SST通用技术规范》整体框架与核心条款解读

本小节以**GB/T《电力电子变压器通用技术要求》**(固态变压器SST核心通用规范)为核心依据,结合电力电子变压器技术特性与工程应用边界,系统解析规范的整体章节框架、层级逻辑与强制性/推荐性核心条款,明确规范与传统工频变压器标准的差异,为SST拓扑设计、性能验证、出厂检验与工程落地提供标准化依据。全文以标准原文、期刊文献数据与试验规范为支撑,无主观推演与感性表述。

技术工作者 1679

保姆级教程:用AdGuard DNS代理实现全设备广告过滤(含Win/Mac/安卓/iOS配置)

本文提供了一份详尽的AdGuard DNS代理配置指南,帮助用户在全设备(Win/Mac/安卓/iOS)上实现广告过滤。通过系统级DNS设置,AdGuard能有效拦截广告、跟踪器和恶意网站,提升隐私保护和浏览效率。教程涵盖原理说明、各平台配置步骤及高级优化技巧,适合不同技术水平的用户。

weixin_42656416的博客 817

WINCE声音驱动模型概述

1.1 WINCE的声音模型标准的WINDOWS CE下的声音处理模型。1)  声音应用在使用WAVE接口函数的时候被COREDLL模块分了类:如果是简单的PCM数据,则直接进入ADM模块,进行SoftWare Mixer或者连Mixer也省了,直接调用Driver放音;如果是压缩模式的数据则进入ACM模块进行解压处理后(比如:GSM/G7XX等等…)再次进入ADM模块。 此外,如果D

luixing67的专栏 2151

STM32 SYSTICK定时器及延时函数详解

STM32 SYSTICK及延时函数详解 SysTick定时器 SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心

w1050321758的博客 2366

wince 来电防火墙静音实现的几种办法

 1.mixer驱动 优点:直接控制音量,静音实现没有时间限制,可以随时恢复 缺点:有一部分手机根本没有实现mixer这一层驱动 源码: 已丢失 2:注册表: 有2个地方可以改: 这个是改响铃方式,可以修改为振动,响一次,声音逐渐加大等等 a是没反应,script是正常响铃,其他的请查msdn,这个可以改掉为每个联系人定制的音乐改掉声音 HKEY_Current_UserControlPanelS

NOI Study 643

飞牛fnNAS个人小账本导入微信账单

本文介绍了将微信支付账单导入ezBookkeeping个人记账系统的详细方法。首先通过微信申请导出账单文件,接收后需进行Excel预处理:删除前导行、添加账户和分类列、整理金额格式等。在ezBookkeeping中需预先设置"微信"分类和账户。导入时需注意列映射关系,包括交易时间、账户名称等关键字段的对应设置。文章还提到处理交易标签、格式转换等细节问题,并建议避免使用"修改余额"功能。该方法同样适用于支付宝账单导入,解决了直接导入可能出现的格式不兼容问题。

dgnankai的专栏 482

【AI产品与商业航图】Flux.1 完全开源 AI 绘图模型:本地部署与 ComfyUI 实战指南

Flux.1是一个开源项目,用户可以自由使用和修改,完全免除使用费用。🖥️本地部署支持:与一些依赖云端计算的工具不同,Flux.1支持本地部署,确保用户可以离线使用并自主控制数据隐私。🔄兼容ComfyUI框架:Flux.1可以无缝集成到ComfyUI中,用户可以享受更加简便和直观的操作界面。🎨卓越的图像生成能力:Flux.1能够生成高质量、细腻的图像,支持多种风格与创作主题的切换。💾低硬件要求。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1736

CE的混音器

http://blog.youkuaiyun.com/lweiqi/article/details/4139652   在CE音频设备中,混音器是有不同类型的,下面介绍一下: 1、软件混音器 Waveapi模块有软件混音器,有时也称为内核混音器。它能混合多个不同采样率的PCM,在CE 4.2中被加入。   软件混音器在启动时,为音频设备创建一个线程。这个线程负责接受应用的音频buffer,把它

landishu的专栏 752

YOLOv11改进策略【损失函数篇】| arXiv2025 TeLU双曲正切指数线性单元 强梯度防消失 + 解析光滑稳训练,极速提升收敛与泛化

本文记录的是。TeLU(Hyperbolic Tangent Exponential Linear Unit)通过。本文利用TeLU激活函数,以x⋅tanhex统一实现正区间强梯度加速收敛与负区间持续梯度避免死神经元,全程保持解析光滑与极低计算开销,,显著提升深度网络在分类、检测、分割、时序任务中的收敛速度、精度与泛化鲁棒性。

Limiiiing的博客 224

WINCE Driver 心得总结

作者;SUKHOI27SMK 转自:http://blog.youkuaiyun.com/sukhoi27smk/article/details/8570106 目录(?)[+] 一. Windows CE的驱动程序的区分 1.从加载以及接口方式来区分 可以分为本机设备驱动(Built-In Driver)、可加载驱动(Loadable Drive

老瓦的笔记本 987

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

WINCE 音频驱动之一:分类

      CE目前有3种音频模式:MDD/PDD、WaveDev2和UAM。这些模式的存在是有历史原因的,下面具体说明一下。首先,这3个模式是使用同一套WaveAPI的驱动接口,在系统中以驱动形式存在,都会导出WAV_Open、WAV_Close等接口。通过IoControl带入IOCTL_WAV_MESSAGE,与waveapi的子系统配合使用。对下都是控制硬件,它们不同之处在于内部的设计。

zhandoushi的专栏 1808

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WinCE音频驱动

音频驱动有3种模式:1.MDD/PDD模式.2.Wavedev2模式.3.UAM模式 它们相同的地方很明显:它们公开相同的接口,因为是流驱动!都是透过流接口与上层的waveapi.dll交互.接着,细说它们的差异:     第一种MDD/PDD模式是最早被提供的模式,也是其他驱动常见分层模式.如果我们使用CE提供的MDD(wavemdd.lib)我们会受到一些限制: Only supp

hubinbin595959的专栏 551

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TLV320AIC3x音频编解码器在WinCE 5.0上的驱动开发与移植实战

音频编解码器(Codec)是嵌入式音频系统的核心,负责数字与模拟信号的转换。其驱动开发涉及对硬件接口(如SPI/I2C、I2S)和操作系统内核的深入理解,是实现高质量音频功能的基础。在嵌入式领域,稳定可靠的驱动是保障音频子系统性能与兼容性的关键,尤其在资源受限的经典操作系统(如Windows CE)上,驱动开发更具挑战。本文以TLV320AIC3x系列Codec为例,结合**SPI/I2C**总线通信和**I2S**音频接口的配置原理,深入剖析了在WinCE 5.0平台上的驱动架构设计、寄存器配置、时钟管理

weixin_34416754的博客 472

详解Wavedev2模式的音频驱动

WinCE 音频驱动 一、WinCE目前有3种音频模式:MDD/PDD、WaveDev2和UAM。 这些模式的存在是有历史原因的,下面具体说明一下。首先,这3个模式是使用同一套WaveAPI的驱动接口,在系统中以驱动形式存在,都会导出WAV_Open、WAV_Close等接口。通过IoControl带入IOCTL_WAV_MESSAGE,与waveapi的子系统配合使用。对下都

sunxiao061015的专栏 2373

计算机硬件音频,浅析计算机硬件基础 第9章(音频和视频设备).ppt

浅析计算机硬件基础 第9章(音频和视频设备)* * * * * * * * * * * * * * * * * * * * * * * * * * * * * 第9章 音频与视频设备 音频适配器 音频数字化变换,音频编码,音频混合器,音频接口 音频设备 音箱系统 显示适配器 显示系统构成,2D和3D显示适配器,显示扫描原理,显示适配器技术指标,显示接口 显示器 CRT显示器,LCD显示器 * 9....

weixin_29205373的博客 397

wince5 支持3串口

原文:http://blog.chinaunix.net/uid-14142730-id-307811.html     wince5 支持3串口 目前采用真正的5.0,目前是有2个串口,一个作为debug,一个作为ir,目前我想把他们都用做普通的串口。 第一步:把debug串口改为普通的串口。 看我上一篇wince的调试串口作为普通串口使用 http://blog.c

zmq5411的专栏 809

WINCE5重新安装

WINCE5重新安装 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://bluefish.blog.51cto.com/214870/474671 由于以前用的试用版的,现在项目的版本准备正式发布,所以需要来安装正式版的wince。卸载-安装。折腾吧! 最后一个盘了,咋还出了个对话框呢,”The se

aristolto的专栏 1088

Wave Driver介绍-8(软件混音器)

http://blog.youkuaiyun.com/daydayupfromnowon/article/details/6011018   注:嵌入式系统上,大部分的Audio Codec都不支持硬件混音操作,因此需要软件混音器 Software Mixer(CE4.2上首次使用): Waveapi模块有软件混音器,有时也称为内核混音器。它能混合多个不同采样率的PCM,在CE 4.2中被加入。软

landishu的专栏 861
上一篇: WinCE音频驱动
下一篇: 显示驱动相关 -- DrvEscape和ExtEscape
alien75
博客等级 码龄25年 195粉丝 116原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值