写了个东西来 tolerate 一些 edge case……
https://github.com/Web-Media-Foundation/infrastructure/commit/40872ddf559f9994b1fed2e63a2e0f0063561a50
Leader: 有个活,你要出一份课程文档,把两本书放在一起,做一个课程
我:啥时候要?
Leader: 今天
我:两本书?
Leader: 今天
我:量子波动速读,ON!
https://code.videolan.org/videolan/vlc/-/blob/master/modules/codec/vorbis.c
等一下,老大,你们的实现我更看不懂了,咋整的??
Symphonia 的实现不是按照 RFC 做的说实话我有点没看懂,但是可能还是得看看他们是怎么实现的,为什么解码这个文件没有问题……
https://github.com/pdeljanov/Symphonia
首先,Spotify 的 OGG 文件前面多了一个 packet,我怀疑是用来打指纹的,后面处理文件的时候得全都抹掉。
其次,它的 setup packet 不是标准实现,按照 spec 处理到倒数第二段的时候报错了……
制式仪刀: https://jandan.net/t/5709283
OO: 486 XX: 8
蛋友16fe925667136: 某天你在路上走着,遇到被一群黑衣人追杀的店员,擦身而过之际,他轻声道"就放在那里,保护好那东西"
OO: 199, XX: 1
当你瞌睡你会入眠: 下面是不是绑着一个黑帮老大和一个卷款跑路的拳击手?
OO: 101, XX: 1
蛋友16fedcec86f4c: @当你瞌睡你会入眠 上厕所千万别把枪放外边!
OO: 21, XX: 1
秦_唐: 请问汁男招募是这里嘛?你用不太流利的语言说到。
店员热情的点头,然后脚下的地板就打开了
“片场往这边走~”
OO: 6, XX: 1
https://fxtwitter.com/xianbao_qian/status/1808127903810703839?s=46
Читать полностью…原理上来讲 ogg/vorbis 应该不是一个流媒体格式,只要丢了第一个 packet 和 第三个 packet,整个文件就都不可读了……
Читать полностью…没戏看 symphonia 的实现,但是绝对有猫腻,他们的实现比 lewton 的短很多……
https://github.com/pdeljanov/Symphonia/blob/master/symphonia-codec-vorbis/src/lib.rs
Spotify 这个文件的 Floor Type 是 Type 1 而不是 Type 0,是不是跟这个东西有关……
Читать полностью…https://github.com/Web-Media-Foundation/infrastructure/blob/master/packages/ogg-polyfill/src/OggVorbisPage.ts
实现完了 Vorbis 的解码前端(只带解编码元信息,不带解成 PCM 的部分),八百多行