写入二进制 mangle 数据

2023-12-30

在我的应用程序中,我记录来自 ASIO 驱动程序的音频数据:

void newData(void *buffer, int length)

其中 buffer 是缓冲区指针,length 是该缓冲区中的样本数。就我而言,我知道样本是 4 字节整数,并且缓冲区每次运行包含 1024 个样本。

现在,我以两种方式保存这些样本:小端二进制(稍后用作 WAV 文件)和文本文件。文本文件保存的文字很好,我得到了数字,它们对应于波形的样本。但二进制文件总会包含一些好的数据,而其余的只是被破坏了。

Original data (original sound and text saving): Original sound data

Mangled data (binary saving):

代码(我使用std::ofstream):

//binary saving
tempOut.write((char *)buffer, length * 4);

//text saving
int *intBuf = (int *)buffer;
for(int i = 0; i < length; i++){
    textOut << intBuf[i];
    textOut << '\n';
}

请注意,问题不在于同步,因为我首先保存二进制数据,然后保存文本数据。

数据如何被破坏:

Original    binary (LE) binary (BE) binary to dec
206016      C0240300    000324C0    206016
815616      00720C00    000C7200    815616
1804032     00871B00    001B8700    1804032
3131392     00C82F00    002FC800    3131392
4741440     40594800    00485940    4741440
6567552     80366400    00643680    6567552
8531264     402D8200    00822D40    8531264
10545664    00EAA000    00A0EA00    10545664
12517632    0001BF00    00BF0100    12517632
14353920    0006DB00    00DB0600    14353920
15958976    C083F300    00F383C0    15958976
17241600    00160701    01071600    17241600
18119296    807A1401    01147A80    18119296
18514048    80801A01    011A8080    18514048
18365760    403D1801    01183D40    18365760
17622016    00E40C01    010CE400    17622016
16253632    C002F800    00F802C0    16253632
14246784    8063D900    00D96380    14246784
11605504    0016B100    00B11600    11605504
8355840     00807F00    007F8000    8355840
4541376     C04B4500    00454BC0    4541376
228096      007B0300    00037B00    228096
-4501376    8050BBFF    FFBB5080    4290465920
-9549312    004A6EFF    FF6E4A00    4285417984
-14798400   C0311EFF    FF1E31C0    4280168896
-20126080   80E6CCFE    FECCE680    4274841216
-25391232   808F7CFE    FE7C8F80    4269576064
-30458624   003D2FFE    FE2F3D00    4264508672
-35178624   8037E7FD    FDE73780    4259788672
-39413760   0098A6FD    FDA69800    4255553536
-43025024   807D6FFD    FD6F7D80    4251942272
-45883392   00E043FD    FD43E000    4249083904
-47872704   408525FD    FD258540    4247094592
-48899072   00DC15FD    FD15DC00    4246068224
-48881280   802116FD    FD162180    4246086016
-47759616   003F27FD    FD273F00    4247207680
-45503488   00AC49FD    FD49AC00    4249463808
-42107648   007D7DFD    FD7D7D00    4252859648
-37589760   006DC2FD    FDC26D00    4257377536
-32005120   00A417FE    FE17A400    4262962176
-25429184   40FB7BFE    FE7BFB40    4269538112
-17961216   00EFEDFE    FEEDEF00    4277006080
-9736576    806E6BFF    FF6B6E80    4285230720
-909568     001FF2FF    FFF21F00    4294057728
8349120     C0657F00    007F65C0    8349120
17843584    80451001    01104580    17843584
27378816    80C4A101    01A1C480    27378816
36731904    007C3002    02307C00    36731904
45697792    004BB902    02B94B00    45697792
54044800    80A83803    0338A880    54044800
61575360    C090AB03    03AB90C0    61575360
68087552    00EF0E04    040EEF00    68087552
73396096    80EF5F04    045FEF80    73396096
77338368    00179C04    049C1700    77338368
79784320    8069C104    04C16980    79784320
80611328    0008CE04    04CE0800    80611328
79763520    4018C104    04C11840    79763520
77187328    00C99904    0499C900    77187328
72884352    80205804    04582080    72884352
66885120    0096FC03    03FC9600    66885120
59262720    00478803    03884700    59262720
50139648    0012FD02    02FD1200    50139648
39658752    00255D02    025D2500    39658752
28000256    0040AB01    01AB4000    28000256
15379520    40ACEA00    00EAAC40    15379520
2044416     00321F00    001F3200    2044416
-11740544   80DA4CFF    FF4CDA80    4283226752
-25707264   00BD77FE    FE77BD00    4269260032
-39540864   80A7A4FD    FDA4A780    4255426432
-52953600   00FED7FC    FCD7FE00    4242013696
-65651712   003C16FC    FC163C00    4229315584
-77331456   000464FB    FB640400    4217635840
-87716800   408CC5FA    FAC58C40    4207250496
-96567040   00813EFA    FA3E8100    4198400256
-103632000  80B3D2F9    F9D2B380    4191335296
-108724992  00FD84F9    F984FD00    4186242304
-111678336  80EC57F9    F957EC80    4183288960
-112379904  00384DF9    F94D3800    4182587392
-110761792  C0E865F9    F965E8C0    4184205504
-106792960  0078A2F9    F9A27800    4188174336
-100491840  C09D02FA    FA029DC0    4194475456
-91944960   000885FA    FA850800    4203022336
-81278912   40C827FB    FB27C840    4213688384
-68651520   0076E8FB    FBE87600    4226315776
-54296640   C07FC3FC    FCC37FC0    4240670656
-38472960   00F3B4FD    FDB4F300    4256494336
-21475776   404EB8FE    FEB84E40    4273491520
-3638272    007CC8FF    FFC87C00    4291329024
14684288    8010E000    00E01080    14684288
33120000    005FF901    01F95F00    33120000
51280320    C0790E03    030E79C0    51280320
68789504    00A51904    0419A500    68789504
85244544    80BA1405    0514BA80    85244544
100304768   8087FA05    05FA8780    100304768
113604800   C078C506    06C578C0    113604800
124833792   00D07007    0770D000    124833792
133720320   0069F807    07F86900    133720320
140022400   80925808    08589280    140022400
143561088   80918E08    088E9180    143561088
144198400   004B9808    08984B00    144198400
141871872   00CB7408    0874CB00    141871872
136572288   80ED2308    0823ED80    136572288
128333056   0035A607    07A63500    128333056
117298688   00D6FD06    06FDD600    117298688
103608960   80F22C06    062CF280    103608960
87533952    80A93705    0537A980    87533952
69342848    80162204    04221680    69342848
49372416    005DF102    02F15D00    49372416
28008640    C060AB01    01AB60C0    28008640
5674240     00955600    00569500    5674240
-17177472   80E4F9FE    FEF9E480    4277789824
-40097792   00289CFD    FD9C2800    4254869504
-62600192   00CC44FC    FC44CC00    4232367104
-84225024   00D4FAFA    FAFAD400    4210742272
-104489920  409CC5F9    F9C59C40    4190477376
-122963712  00B9ABF8    F8ABB900    4172003584
-139224384  C09AB3F7    F7B39AC0    4155742912
-152897792  00F7E2F6    F6E2F700    4142069504
-163660224  40BE3EF6    F63EBE40    4131307072
-171233280  0030CBF5    F5CB3000    4123734016
-175417088  00598BF5    F58B5900    4119550208
-176054784  009E81F5    F5819E00    4118912512
-173089536  00DDAEF5    F5AEDD00    4121877760
-166513152  003613F6    F6133600    4128454144
-156400000  8086ADF6    F6AD8680    4138567296
-142918272  803D7BF7    F77B3D80    4152049024
-126284736  400C79F8    F8790C40    4168682560
-106782720  00A0A2F9    F9A2A000    4188184576
-84789120   8038F2FA    FAF23880    4210178176
-60711040   809F61FC    FC619F80    4234256256
-35003200   C0E4E9FD    FDE9E4C0    4259964096
-8186112    001783FF    FF831700    4286781184
19211584    40252501    01252540    19211584
46627712    807BC702    02C77B80    46627712
73500480    40876104    04618740    73500480
99269120    00BAEA05    05EABA00    99269120
123365760   80695A07    075A6980    123365760
145304064   002AA908    08A92A00    145304064
164576000   003BCF09    09CF3B00    164576000
Here the mangling occurs:
180750080   0007C60D    0DC60700    231081728
193447488   0A40C687    87C6400A    2277916682
202362496   0B80CE0F    0FCE800B    265191435
207247040   0CC0565A    5A56C00C    1515634700
207959040   0C003465    6534000C    1697906700
204410560   0CC00E2F    2F0EC00C    789495820
196625792   0C8045B8    B845800C    3091562508
184697856   0B004402    0244000B    38010891
168819456   0B00FB0F    0FFB000B    268107787
149276544   0D0A80C7    C7800A0D    3347057165
126403200   E50880C2    C28008E5    3263170789
100631232   8807C082    82C00788    2193622920
72473600    FF0500DC    DC0005FF    3690989055
42428736    51044069    69400451    1765803089
11137280    870200F1    F1000287    4043309703
-20792320   A90000BC    BC0000A9    3154116777
-52715520   C2FE00A0    A000FEC2    2684419778
-83981184   DBFC808C    8C80FCDB    2357263579
-113911680  FEFA80D8    D880FAFE    3632331518
-141894144  35F900DE    DE00F935    3724605749
-167331840  8AF700B8    B800F78A    3087071114
-189665728  06F640EE    EE40F606    3997234694
-208386432  B1F48046    4680F4B1    1182856369
-223077888  94F3001A    1A00F394    436269972
-233389056  B4F200C4    C400F2B4    3288396468
-239046720  16F2C06F    6FC0F216    1874915862
-239889920  C0F10092    9200F1C0    2449535424
-235830720  B3F14082    8240F1B3    2185294259
-226899456  F1F100CA    CA00F1F1    3389059569
-213204992  79F200C0    C000F279    3221287545
-195002240  4AF38080    8080F34A    2155934538
-172597824  60F4C05D    5DC0F460    1572926560
-146384384  B6F5005A    5A00F5B6    1510012342
-116876032  46F7009D    9D00F746    2634086214
-84644736   08F9806C    6C80F908    1820391688
-50310400   F4FA0053    5300FAF4    1392573172

您可以看到波浪是如何表示的,正值和负值交替,直到某个点。然后就变成垃圾了。


您忘记以二进制模式打开二进制数据的输出文件。因此每一个字节0x0A发送到文件接收的输出(在 Windows 系统中)0x0D 0x0A.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

写入二进制 mangle 数据 的相关文章

随机推荐

  • Google Cloud-Builder如何构建除master之外的所有分支

    我希望能够构建所有不是主分支的分支 但是当我尝试时 master UI 正确显示所有非主分支 但保存会返回 HTTP 400 错误 error code 400 message trigger template branch name is
  • 接口范例性能(动态绑定与泛型编程)

    虽然动态绑定和模板的核心本质上是不同的东西 但它们可以用来实现相同的功能 代码示例 仅供参考 A 动态绑定 namespace DB interface class CustomCode public virtual void operat
  • 我应该将 Java 中的静态嵌套类重构为单独的类吗?

    我继承了包含静态嵌套类的代码 public class Foo Foo fields and functions private static class SGroup private static Map
  • 有 PHP 代码混淆器吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 ServerValue.TIMESTAMP 转换为日期

    我已放置一个按钮将当前日期和时间保存到 My Firebase Database private void saveTime DatabaseReference rootRef FirebaseDatabase getInstance ge
  • 在Windows 7上用Python快速获取屏幕上某些像素的颜色

    我需要获取屏幕上或活动窗口中某些像素的颜色 我需要这样做quickly 我尝试过使用 win32gui 和 ctypes windll 但它们太慢了 这些程序中的每一个都获取 100 像素的颜色 import win32gui import
  • 当按钮位于列表中时,ListView 长按不起作用

    我有一个带有自定义列表适配器的 ListView 它有 OnItemClickListener 和 OnItemLongClickListner 它们曾经工作得很好 之后 我必须在列表项的布局中放置一个按钮 并且项目单击和长按侦听器停止工作
  • JSF 2 中的范围

    我有一个 CRUD 应用程序 数据在哪里获取 显示 编辑 存储回数据库 此外 页面之间存在顺序访问 第二页需要输入在第一页上输入的信息 依此类推 最佳范围是什么以及为什么 何时使用哪个范围 每个范围的生命周期是什么 另外 我找不到任何关于范
  • 如何以及为何设置 C# 构建机器? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在与一个小型 4 人 开发团队合作开发一个 C 项目 我建议设置一台构建机器来进行项目的夜间构建和测试 因为我知道这是一件好事 问
  • C# HttpWebRequest 显示 404,但可以在浏览器中访问网站

    我正在尝试使用 c 从网站下载 xml 文件 但在某些网址上收到 404 错误 这是有线的 因为它们仍然可以在浏览器中工作 其他网址仍然可以正常工作 HttpWebRequest request HttpWebRequest WebRequ
  • 未安装应用程序时,我的应用程序不会显示智能应用横幅

    我正在使用元标记在 iphone ipad 设备的应用程序横幅中显示我的应用程序 ios 当我使用 Iphone 进行测试时 如果安装了该应用程序 横幅将非常有效 如果未安装 则横幅不会显示 我还对 Facebook 等其他应用程序进行了相
  • 如何使用 Swift 在 iOS 中同时录制和播放音频?

    在 Objective C 中 同时录制和播放音频相当简单 互联网上有大量的示例代码 但我想在 Swift 中使用 Audio Unit Core Audio 同时录制和播放音频 关于使用 Swift 的帮助和示例代码非常少 我找不到任何可
  • Parboiled2 导致“加载类文件‘Prepender.class’时检测到缺少或无效的依赖项”

    因此 过去几周我一直在尝试使用 parboiled2 这可能是我一生中遇到过的最难添加到构建的依赖项 我当前的错误是编译sbt assembly error error missing or invalid dependency detec
  • 在 SQL Server 2005 中的视图上创建全文索引

    我在 SQL Server 2005 中的视图上创建全文索引时遇到问题 查看文档我没有发现问题 我收到的错误消息是 Id 不是强制执行全文搜索键的有效索引 全文搜索键必须是唯一的 不可为空的 不脱机的单列索引 是未在非确定性或不精确的非持久
  • 将浮点数显示为至少有 1 位小数的字符串

    我想将浮点数显示为字符串 同时确保至少显示一位小数 如果有更多小数 我希望显示这些 例如 1 应显示为 1 0 1 2345 应显示为 1 2345 有人可以帮我处理格式字符串吗 使用 ToString 0 并使用您想要的小数位数
  • 确定列表中当前指向的项目

    我正在处理列表 我已经能够确定列表中项目的第一个和最后一个位置 我在用getPostion并通过显示项目名称Label 我的表单中的三个按钮 ShowFirstItem ShowNextItem 不工作 和ShowLastItem在标签中显
  • Math.sqrt() 的更快替代方案

    有没有其他方法可以使用Math sqrt 获得未知值的平方根 例如 var random Math random 999 1 1 var sqrt Math sqrt random 我听说使用Math sqrt 获取数字的平方根是一个非常慢
  • 使用 Spring boot Rest 转换为 JSON 时,Java LocalDateTime 被转换为整数数组 [重复]

    这个问题在这里已经有答案了 我的代码如下 Data Document collection models public class Model Field value modelDt private LocalDateTime modelD
  • C++ 结构体排序错误

    我正在尝试对 C 中的自定义结构向量进行排序 struct Book public int H W V i 用一个简单的函子 class CompareHeight public int operator Book lhs Book rhs
  • 写入二进制 mangle 数据

    在我的应用程序中 我记录来自 ASIO 驱动程序的音频数据 void newData void buffer int length 其中 buffer 是缓冲区指针 length 是该缓冲区中的样本数 就我而言 我知道样本是 4 字节整数