benrr101 / node-taglib-sharp

A node.js port of mono/taglib-sharp
GNU Lesser General Public License v2.1
42 stars 11 forks source link

Fix incorrect MP4/M4A udtaHeader size #108

Closed ion-dev closed 1 week ago

ion-dev commented 2 weeks ago

After updating M4A/MP4 tags, parsers can no longer read the tags (file systems, ID3 tag readers etc).

I discovered the issue related to incorrect udtaHeader.totalBoxSize.

This pull request fixes the issue by saving the current totalBoxSizebefore earlier on the sequence.

subframe7536 commented 2 weeks ago

Seems that this PR also fix #103

I merge it in my fork

benrr101 commented 1 week ago

Thank you for looking into this @ion-dev. I'm really sorry I haven't done much with this project in a while.

ion-dev commented 1 week ago

@benrr101 no worries! We're really grateful for the work you've done. I'm glad I was able to help.

Will you be doing do an NPM release with the fix?

benrr101 commented 1 week ago

@ion-dev I was hoping someone would ask so I could give an update. I meant to do a release back in March but got stuck - the updates to how VBR headers are processed caused integration test failures. Basically stuff where bitrates are off by one or the duration is off by tens of milliseconds. I'm not happy with how those headers are being used, so I'm going to put some serious effort into understanding and fixing it. Then I'll have a release out.

ion-dev commented 1 week ago

@ion-dev I was hoping someone would ask so I could give an update. I meant to do a release back in March but got stuck - the updates to how VBR headers are processed caused integration test failures. Basically stuff where bitrates are off by one or the duration is off by tens of milliseconds. I'm not happy with how those headers are being used, so I'm going to put some serious effort into understanding and fixing it. Then I'll have a release out.

Sounds good, if you need any help I'm happy to have a go! Otherwise, what's your ETA for getting the release out?

benrr101 commented 4 days ago

@ion-dev my hope is to have it out by the end of the week, but ... no guarantees. The good news is I've restructured the vbr header stuff enough that all the Xing headers (LAME, et al) are working correctly, and I have a full test suite for them now. Tonight I'm trying to hunt down an encoder for Fraunhofer VBR files so I can have a sample with a VBRI header. All in all, this is probably low stakes since probably like 90% of MP3s out there these days are encoded with LAME, but if I can properly test something, I want to.