at-wat/ebml-go

Support Matroska

at-wat opened this issue · 10 comments

  • Plan A
    • Move Matroska part of current webm package to mkv package
    • Add wrapper for webm having the compatible interface with the current package over mkv package
  • Plan B ✔️
    • Move Matroska part of current webm package to mkvcore package #95
    • Add wrapper for webm over mkvcore #95
    • Add wrapper for mkv over mkvcore as mkv is the most general ebml based format, it can't have wrapper and helpers over mkvcore

TODO

Hi @at-wat , What's the state about this?

@notedit Matroska is pretty flexible and has huge amount of the tags. I'm not aggressively expanding mkv support at now, but adding tags and features when needed.
Feature requests and/or PRs are very welcomed.

All ebml tags excepting deprecated ones are added by #136, so I suppose this package can handle full Matroska format now.

Hello,

I tried to unmarshal test1.mkv, test4.mkv, test5.mkv and test6.mkv from https://github.com/Matroska-Org/matroska-test-files#test-files. I receive io.ErrUnexpectedEOF for 1, 5 and 6. Test 4 is a special one and it gives me unmarshalling element 0x20a0a0a0a: unknown element because it contains some garbage (0b00001010, 0x0a).

I didn't know there is a test data repository.
I'll dig into the errors.

It seems be a bug in Block Unlacer.

test1.mkv, test2.mkv, test3.mkv, test5.mkv, test6.mkv, test8.mkv will be supported by #140 and #142.

test4.mkv seems having garbage data 0A0A0A... which I think it's not explicitly defined in the specifications.
Same question was posted to the official mailing list, but not answered: https://lists.matroska.org/pipermail/matroska-devel/2015-December/004918.html

test4.mkv is not playable in a lot of media players (GNOME Videos (totem), MPC-BE, Windows Media Player). Windows 10 Movies and TV app and vlc seem support it.

Looks good. test4 is strange to me as well. I checked libebml and it seemed to simply skip invalid data until it finds a valid id.

The official test files can be parsed by this package now.
Damaged mkv (test7.mkv) is currently not supported and will be tracked by the new issue #146.