【问题标题】:Is there a size constraint to consider to make sure that the LAME tag is valid?是否需要考虑尺寸限制以确保 LAME 标签有效?
【发布时间】:2019-08-27 00:47:23
【问题描述】:

我想操作 MP3 Xing/Info/LAME 标签。

我发现some documentation有各种定义,但并没有真正提到一条信息:如何确定标签确实有效?

我问是因为我创建了 VBR 和 CBR 音频文件,并且 LAME 标记似乎出现在所有具有音频样本数据未使用空间的帧中。但在大多数情况下,可用空间对于完整的标签来说太小了。

那么,标签是否总是被认为是有效的,但我们必须注意大小并忽略缓冲区末尾之后的任何字段?或者我应该确保整个标签(208 字节?)都存在,如果没有完全忽略标签?

现有的 MP3 播放器对此做了什么?

【问题讨论】:

    标签: mp3 lame


    【解决方案1】:

    我实际上注意到我链接到的文档中存在一些差异,并认为我最好直接在 LAME 中搜索,看看它是如何在那里完成的。

    果然,文档在很多方面都完全关闭了。但是,我发现有趣的是 LAME 实现不会检查缓冲区是否足够大。至少GetVbrTag() 函数本身只验证输入数据是第三层帧。所以框架可能比标签所需的小(我认为可以。)可能是该函数仅在它实际按预期工作的情况下被调用。

    无论如何,在编写代码时,它假定所有预期的数据都存在。它读取增加buf 指针并读取数据,直到全部完成。

    来源:如果您有 LAME 项目源代码,请参阅第 362 行的libmp3lame/VbrTag.c(在 LAME 的 3.100 版中)了解我正在谈论的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 2019-09-09
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多