| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Don't try to trim nil.
|
| |
|
|
|
|
|
|
|
| |
TDRC (‘Recording time’), TDRL (‘Release time’) and TDOR (‘Original
release time’) frames in id3v2.4 are time stamps, not years, so they
should go to info-date and info-originaldate fields instead of
info-year and info-originalyear.
|
| |
|
|
|
|
|
|
|
|
|
| |
- Remove id3v2 size checks agains emms-info-native--max-peek-size.
Decoded sizes do not guide memory reservation anymore so checks are in
that sense redundant. Trigger errors on zero-sized elements though,
because they are always wrong.
- Verify frame identifiers.
|
|
|
|
|
|
|
|
|
|
| |
- Allow zero-sized frames; in practice they mean start of padding.
- Do not try to read frame headers going over tag boundary. These
cases also mean start of padding in practice.
- Return nil from emms-info-native--decode-id3v2 in case of
errors *or* if there were no useful metadata.
|
|
|
|
|
|
|
| |
Instead of reading the whole tag and then parsing it, do reading and
parsing one frame at a time, and skip uninteresting frames.
This may conserve memory and give better performance in some cases.
|
|
|
|
|
| |
Extract "artistsort", "titlesort", "albumsort" and few more "year" and
"originalyear" frames.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Tag-level id3v2 unsynchronization is now supported. Frame-level
unsynchronization is still missing, and likely won’t be implemented at
all.
- Fix frame size decoding between different id3v2 versions.
- Use correct id3v2.2 sizes during decoding.
- Remove a terminating null byte from text strings only if there is
one.
|
|
|
|
| |
The value was wrong and not used anyway.
|
|
|
|
|
| |
Constructs are now ordered from generic to specific ("top-down") and
are thus, hopefully, easier to follow.
|
|
|
|
| |
Clean up block decoder and fix incorrect last-flag calculation.
|
|
|
|
|
|
| |
It seems that bindat specs cannot refer outside themselves, so use a
special variable ‘emms-info-native--opus-channel-count’ with dynamic
binding to keep track of channel count.
|
| |
|
| |
|
|
|
|
| |
These are only stylistic changes.
|
|
|
|
| |
These are only stylistic changes.
|
|
|
|
|
| |
Split long functions to smaller functions that are easier to
understand.
|
|
|
|
|
| |
Also adjust Ogg and FLAC decoders to return info fields in a unified
format.
|
|
This info method is a pure elisp implementation for Ogg Vorbis, Opus and
FLAC file formats.
|