8000 support for matroska files by sandsmark · Pull Request #967 · taglib/taglib · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

support for matroska files #967

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

sandsmark
Copy link

No description provided.

@ufleisch
Copy link
Contributor

First I ran the test suite, it crashes in TestFileRef::testUnsupported(), constructs File with d=0, which is then dereferenced in the destructor.

To test interoperability with other tools, I generated tags with HandBrake, the tags are all shown in MKVToolNix (Title, ARTIST, DIRECTOR, DATE_RELEASED, SUMMARY, GENRE, DESCRIPTION, SYNOPSIS, ENCODER). When I open the mkv file with examples/tagreader, it only shows ARTIST, GENRE. Writing with examples/tagwriter and reading back with examples/tagreader, the fields set are displayed except album. With MKVToolNix and HandBrake, again only ARTIST, GENRE seem to be "interoperable". But MKVToolNix now shows in another tag, three times COMMENT, DATE_RELEASE, PART_NUMBER, TITLE, and in yet another tag again three times TITLE. The Tags section also shows an element "EBML void" with size 280. After setting new values with tagwriter, two more "EBML void" elements are shown, (size 404 and size 530). Deleting tags using empty values with tagwriter does not work, it just creates even more "EBML void" elements.

This all reminds me of my experience more than two years ago with the Matroska code in Taglib2 (probably, it is the same code). The positive thing is that this time, I did not manage to destroy my MKV file when modifying it with TagLib (or MKVToolNix has become more tolerant).

One part of the problem is the implementation which seems to be unfinished and incomplete. It is not easy to integrate because Matroska-Tags are a bit different. They use different target types - to use the same element at different levels (e.g. track, album), and nested tags - to use elements in a different context (e.g. original, sort). Then there can be multiple such element trees.

All this would have to be mapped correctly into the model used by TagLib, but it supports just a few elements correctly and hides all the rest. It also seems to generate duplicate information and is not able to delete elements - they are just set to a void type. I would at least expect that a file can be reverted to its original state when tags are added and later removed, just as a simple test, that nothing is corrupted.

@ufleisch ufleisch added the needswork Must be improved label Jan 12, 2021
@whyman
Copy link
whyman commented Oct 17, 2021

Any chance of progressing this?

@scotchi scotchi mentioned this pull request Dec 27, 2021
@NDDN85
Copy link
NDDN85 commented Feb 14, 2022

gh pr checkout 967

@neheb
Copy link
Contributor
neheb commented Nov 27, 2022

@whyman exiv2 can be used for gerbera I think.

@ufleisch ufleisch mentioned this pull request Feb 4, 2023
@sbooth sbooth mentioned this pull request Sep 23, 2023
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needswork Must be improved
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
0