mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-21 22:15:40 +00:00
a4c400cc69
M4A files store the iTunSMPB value behind a 16-byte binary 'data' atom header. The previous parser took bytes directly after the ASCII key, landing in the binary header and producing a corrupted parts array (total_valid=348 instead of ~13M samples), which caused take_duration to exhaust the source in ~8ms — silent no-playback. Fix: search for the " 00000000 " sentinel within 128 bytes of the key to locate the actual value string, falling back to the old offset for ID3v2/MP3 files where no binary header exists. Also patches symphonia-format-isomp4 (local crate under patches/) to: - Tolerate SL descriptor predefined=0x01 (older iTunes M4A) - Convert descriptor.unwrap() panic to a proper decode error - Gracefully skip malformed trak atoms (e.g. MJPEG cover-art streams) instead of failing the entire probe Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
60 lines
1.4 KiB
TOML
60 lines
1.4 KiB
TOML
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
|
|
#
|
|
# When uploading crates to the registry Cargo will automatically
|
|
# "normalize" Cargo.toml files for maximal compatibility
|
|
# with all versions of Cargo and also rewrite `path` dependencies
|
|
# to registry (e.g., crates.io) dependencies.
|
|
#
|
|
# If you are reading this file be aware that the original Cargo.toml
|
|
# will likely look very different (and much more reasonable).
|
|
# See Cargo.toml.orig for the original contents.
|
|
|
|
[package]
|
|
edition = "2018"
|
|
rust-version = "1.53"
|
|
name = "symphonia-format-isomp4"
|
|
version = "0.5.5"
|
|
authors = ["Philip Deljanov <philip.deljanov@gmail.com>"]
|
|
build = false
|
|
autolib = false
|
|
autobins = false
|
|
autoexamples = false
|
|
autotests = false
|
|
autobenches = false
|
|
description = "Pure Rust ISO/MP4 demuxer (a part of project Symphonia)."
|
|
homepage = "https://github.com/pdeljanov/Symphonia"
|
|
readme = "README.md"
|
|
keywords = [
|
|
"audio",
|
|
"media",
|
|
"demuxer",
|
|
"mp4",
|
|
"iso",
|
|
]
|
|
categories = [
|
|
"multimedia",
|
|
"multimedia::audio",
|
|
"multimedia::encoding",
|
|
]
|
|
license = "MPL-2.0"
|
|
repository = "https://github.com/pdeljanov/Symphonia"
|
|
|
|
[lib]
|
|
name = "symphonia_format_isomp4"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies.encoding_rs]
|
|
version = "0.8.17"
|
|
|
|
[dependencies.log]
|
|
version = "0.4"
|
|
|
|
[dependencies.symphonia-core]
|
|
version = "0.5.5"
|
|
|
|
[dependencies.symphonia-metadata]
|
|
version = "0.5.5"
|
|
|
|
[dependencies.symphonia-utils-xiph]
|
|
version = "0.5.5"
|