Comment 12 for bug 728197

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Hi RJ,

I don't like the idea to copy the file around just. This did not entirely solve the problem because we have a write back anyway.
Such a solution will likely introduce other issues.

A suitable solution to me is:
* use an external process for taglib (based on clementine tagreader)
* use an explicit file lock for all file operations (based on http://libqxt.bitbucket.org/doc/tip/qxtfilelock.html)

Advantages:
* a own process reduces the risk of corrupting the track by a Mixxx error elsewhere.
* A crash due to a corrupt file does not effect Mixxx itself. This was reported by a Clementine developer, can be found by Google and I might remember that we had a mixxx bug like that.
* File locks will solve the seek offset problem on XP entirely and with all cooperative processes on Linux and Mac OS
* Writing Tags is as fast as possible especially if there is no need to grow the tag region of the file.

So there is minimum rest risk if a user users uses a external tag writer writing a track while it is currently mmaped in Mixxx (playing) .

Currently the clementine-tagreader works in my trunk experimental. If I find time I will work on unit tests on that.

Regards,

Daniel