QUOTE(smack @ Feb 16 2005, 11:39 AM)
The first case (no samples) is easily detected while inspecting the frame's "side info". The other cases (samples decode to silence) are more difficult to detect, in fact the most reliable way would be to decode the frame and inspect the output.
What exactly "no samples" means? For example, the LAME filler, is it somehow defined as
0 used samples in this frame, or as
samples with volume 0?
Ideally I'd want to tell apart a muted framed from a 0/empty one. And without actual decoding, because:
1) This wouldn't require a decoder :), and is faster.
2) I suppose one decoder may decode a frame as 0, while another may produce some low values. Or perhaps not? Is there an absolute zero despite rounding?
The Xing header has the first 32-bytes after the header all 0 (for mp3). Is that a special case, or something legit? On the other hand, "normal" perfectly silent frames do have some bytes set, and even, the first byte after the header is changing (private_bits perhaps?).
Can you explain what needs to be checked in the SI part? Is it something that can be easily applied also to versions/layers other than MPEG 1 Layer 3?
~sheh