feat(cache): implement Id3v2Handler for MP3 metadata synthesis
- Implement all 8 FormatHandler trait methods - Use lofty 0.24 for ID3v2.4 tag creation/parsing - Map all 36 AudioMeta fields to ID3v2 frames - Handle ID3v2 header parsing for audio_start - Detect ID3v1 tags at EOF for audio_end - Add 13 comprehensive unit tests - Fix test-utils AudioMeta construction with ..Default::default() - All tests pass, LSP diagnostics clean
This commit is contained in:
@@ -132,6 +132,30 @@ pub struct AudioMeta {
|
||||
pub bitrate: Option<u32>,
|
||||
pub sample_rate: Option<u32>,
|
||||
pub format: AudioFormat,
|
||||
pub track_total: Option<u32>,
|
||||
pub disc_total: Option<u32>,
|
||||
pub date: Option<String>,
|
||||
pub composer: Option<String>,
|
||||
pub comment: Option<String>,
|
||||
pub lyrics: Option<String>,
|
||||
pub copyright: Option<String>,
|
||||
pub compilation: Option<bool>,
|
||||
pub artist_sort: Option<String>,
|
||||
pub album_artist_sort: Option<String>,
|
||||
pub album_sort: Option<String>,
|
||||
pub title_sort: Option<String>,
|
||||
pub mb_recording_id: Option<String>,
|
||||
pub mb_album_id: Option<String>,
|
||||
pub mb_artist_id: Option<String>,
|
||||
pub mb_album_artist_id: Option<String>,
|
||||
pub mb_release_group_id: Option<String>,
|
||||
pub replaygain_track_gain: Option<f32>,
|
||||
pub replaygain_track_peak: Option<f32>,
|
||||
pub replaygain_album_gain: Option<f32>,
|
||||
pub replaygain_album_peak: Option<f32>,
|
||||
pub channels: Option<u32>,
|
||||
pub bits_per_sample: Option<u32>,
|
||||
pub encoder: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
|
||||
Reference in New Issue
Block a user