AskaEth
39465ea1ef
feat(ncm): 新写入的缓存文件嵌入歌曲元数据(FLAC/MP3,commit 前流式重写,失败降级裸流)
用户需求:保留元数据分离的同时把歌曲元数据嵌进缓存文件(否则外部播放器读不到任何信息)。
- 接入点 player_manager:下载完整(dl_rc==OK)→ stream_src_finish(读端先自然收尾)→
ncm_tag_embed_file(.tmp, 实际扩展名, {name/art_name/album_name}) → dispose join 之后才
commit。tag 重写是同目录 .tag.tmp + rename 换 inode,解码端全程持旧 fd,播放/seek/
.part 续传字节语义零改动。
- 容器按实际 magic 分支(ncm_tag.c);峰值内存 64KB;失败只记 WARN、commit 裸流,
播放主链路不受影响(用户红线)。
- 元数据分离体系不动:<cache_dir>/meta/<id>.bin 旁路照旧写读;LRU 只 stat 文件,
无 size/etag 索引需回填(重写后 stat 自然一致)。
- test_ncm_core 新增 test_cache_tag:writer 写裸流 → 嵌入 ID3v2.3 / VORBIS_COMMENT →
读回 → ncm_cache_scan(hires 名 + 320k mp3 体 → 实际档 EXHIGH,名称来自文件内 tag)
→ ncm_cache_remove → ncm_cache_clear。
- REPORT §38:设计/内存估算/验证/诚实遗留(本机缺 vendor 与交叉工具链,未跑整链与真机)。
2026-11-04 20:49:25 +08:00
..
2026-11-04 20:49:25 +08:00
2026-11-04 20:02:28 +08:00
2026-11-04 20:49:25 +08:00
2026-08-31 06:03:36 +08:00
2026-11-04 20:49:25 +08:00
2026-09-01 14:14:38 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-08-31 06:03:36 +08:00
2026-08-31 06:03:36 +08:00
2026-11-04 20:49:25 +08:00
2026-08-31 06:03:36 +08:00
2026-08-31 06:03:36 +08:00
2026-08-31 06:03:36 +08:00
2026-08-31 06:03:36 +08:00
2026-08-31 06:03:36 +08:00
2026-09-02 03:43:42 +08:00
2026-11-04 20:49:25 +08:00
2026-11-04 20:02:28 +08:00
2026-11-04 20:49:25 +08:00
2026-11-04 20:49:25 +08:00
2026-08-31 06:03:36 +08:00
2026-08-31 08:06:41 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-08-31 06:03:36 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 23:42:46 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-11-04 20:49:25 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-03 12:16:01 +08:00
2026-09-01 14:14:38 +08:00
2026-09-03 12:16:01 +08:00