aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'info-native'Petteri Hintsanen2021-02-281-207/+377
|\
| * Fix byte compilationPetteri Hintsanen2021-02-271-147/+149
| | | | | | | | | | | | | | - Add requires to load seq-... and string-trim-right functions during compilation. - Reorder code to fix warnings about free and undeclared variables.
| * Match id3v1 genres in id3v2.4 framePetteri Hintsanen2021-02-261-5/+6
| | | | | | | | v2.4 does not enclose genre references in parentheses.
| * Add support for id3v1 genresPetteri Hintsanen2021-02-241-1/+141
| |
| * Decode id3v2 user-defined text framesPetteri Hintsanen2021-02-241-59/+86
| | | | | | | | | | Frames are assumed to be key/value pairs. If key is an info-field identifier, return the value for that info-field.
* | Merge branch 'info-native'Petteri Hintsanen2021-02-231-155/+193
|\|
| * Fix id3v2 frame id to info-field mappingPetteri Hintsanen2021-02-231-16/+24
| | | | | | | | | | Use TDRC for info-date. Also add some more well-known tags so that id3v2 can provide the same info-fields than Vorbis.
| * Replace curved quotes with ASCII quotesPetteri Hintsanen2021-02-231-46/+46
| |
| * Fix whitespace trimmingPetteri Hintsanen2021-02-231-6/+7
| | | | | | | | Don't try to trim nil.
| * Trim trailing whitespace from all info-fieldsPetteri Hintsanen2021-02-211-6/+5
| |
| * Put some id3v2.4 frame data to info-date instead of info-yearPetteri Hintsanen2021-02-211-3/+3
| | | | | | | | | | | | | | 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.
| * Trim trailing whitespace from id3v2 stringsPetteri Hintsanen2021-02-211-5/+7
| |
| * Improve id3v2 validity checksPetteri Hintsanen2021-02-211-40/+48
| | | | | | | | | | | | | | | | | | - 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.
| * Improve id3v2 error handlingPetteri Hintsanen2021-02-191-41/+51
| | | | | | | | | | | | | | | | | | | | - 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.
| * Read and parse id3v2 frames individuallyPetteri Hintsanen2021-02-181-62/+72
| | | | | | | | | | | | | | 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.
* | Merge branch 'info-native'Petteri Hintsanen2021-02-171-237/+509
|\|
| * Add mappings for more id3v2 text framesPetteri Hintsanen2021-02-161-0/+6
| | | | | | | | | | Extract "artistsort", "titlesort", "albumsort" and few more "year" and "originalyear" frames.
| * Fix id3v2 bugsPetteri Hintsanen2021-02-151-50/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | - 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.
| * Remove emms-info-native return valuePetteri Hintsanen2021-02-111-8/+3
| | | | | | | | The value was wrong and not used anyway.
| * Reorder functions and constantsPetteri Hintsanen2021-02-101-77/+73
| | | | | | | | | | Constructs are now ordered from generic to specific ("top-down") and are thus, hopefully, easier to follow.
| * Simplify FLAC codePetteri Hintsanen2021-02-101-66/+42
| | | | | | | | Clean up block decoder and fix incorrect last-flag calculation.
| * Fix Opus channel mapping decodingPetteri Hintsanen2021-02-101-4/+13
| | | | | | | | | | | | 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.
| * Use lexical bindingPetteri Hintsanen2021-02-101-1/+1
| |
| * Fix typos in CommentaryPetteri Hintsanen2021-02-101-4/+4
| |
| * Clean up Opus codePetteri Hintsanen2021-02-101-11/+8
| | | | | | | | These are only stylistic changes.
| * Clean up Vorbis codePetteri Hintsanen2021-02-101-22/+19
| | | | | | | | These are only stylistic changes.
| * Simplify Ogg-related codePetteri Hintsanen2021-02-101-64/+89
| | | | | | | | | | Split long functions to smaller functions that are easier to understand.
| * Add id3v2 (MP3) support to emms-info-nativePetteri Hintsanen2021-02-101-68/+287
| | | | | | | | | | Also adjust Ogg and FLAC decoders to return info fields in a unified format.
* | * emms-tag-editor.el: lexical compatibility workYoni Rabkin2021-01-201-3/+2
| | | | | | | | | | Remove free lexical variables and the add-to-list, which really should only be used for user configuration work.
* | * emms-tag-editor.el: Add emms-tag-editor-pipeYoni Rabkin2021-01-131-3/+93
| | | | | | | | Patch by Feng Shu <tumashu@163.com>
* | Merge branch 'info-native'Petteri Hintsanen2021-01-122-1/+492
|\|
| * Add native Emacs Lisp info methodPetteri Hintsanen2020-12-242-1/+492
| | | | | | | | | | This info method is a pure elisp implementation for Ogg Vorbis, Opus and FLAC file formats.
* | * doc/developer-release.txt: remove duplicateYoni Rabkin2021-01-111-2/+0
| |
* | * doc/emms.texinfo: update copyright yearsYoni Rabkin2021-01-101-1/+1
| |
* | Merge remote-tracking branch 'origin/docs'Yoni Rabkin2021-01-103-99/+210
|\ \
| * | * doc/emms.texinfo: update manualYoni Rabkin2021-01-102-79/+137
| | |
| * | * doc/emms.texinfo: setup examplesYoni Rabkin2021-01-081-0/+14
| | |
| * | * doc/emms.texinfo: add setup exampleYoni Rabkin2021-01-071-0/+42
| | |
| * | * doc/emms.texinfo: update quickstartYoni Rabkin2021-01-071-19/+20
| | |
| * | * doc/developer-release.txt:Yoni Rabkin2021-01-071-9/+5
| | |
* | | * emms-tag-editor.el: remove hard-coding of program nameYoni Rabkin2021-01-081-1/+6
|/ /
* | * Makefile: version bumpYoni Rabkin2020-12-301-1/+1
| |
* | * README: update the README for ELPA package displayYoni Rabkin2020-12-303-5/+19
|/
* * doc/developer-release.txt: better incantationYoni Rabkin2020-11-091-1/+1
|
* * doc/developer-release.txt: correct arcane incantationYoni Rabkin2020-11-091-1/+1
|
* * emms-tag-editor.el:Yoni Rabkin2020-11-051-1/+5
|
* * emms-tag-editor.el: Bug fixes for the tag editor.Yoni Rabkin2020-11-053-11/+20
| | | | Patches by Feng Shu <tumashu@163.com>.
* * Makefile: keep the info fileYoni Rabkin2020-11-051-1/+0
|
* * emms-info-exiftool.el: read track numbers as stringsYoni Rabkin2020-11-053-1/+6
| | | | From: Feng Shu <tumashu@163.com>: tracknumber and year should be string.
* * doc/developer-release.txt: update push commandYoni Rabkin2020-11-051-14/+14
| | | | | | | | | | | Update push command according to Stefan Monnier's advice: > + - from the "elpa" branch in Savannah push to elpa.git: > + "git push elpa elpa:refs/heads/externals/emms" AFAIK the use of "refs/heads/externals/emms" is necessary when creating this branch (i.e. for the initial push) but for updates, you can use the more concise and friendly "externals/emms".