I had an original CD.
I extracted it in separated files per track (I get the timecode of each chapter).
Then I reassemble them into single flac file.
I muxed it into a chaptered MKA (with the eventual pb I explained here in French).
PROBLEM 1
The more important problem is that Foobar2000 crashes at the end of the last track (defined by the last chapter) when output method is "DirectSound v1/2", and Windows crashes when output method is "Kernel"...
It chrashed at the end of the last track:
- when playing,
- when replaygaining,
- when transcoding...
I think I know where is the problem:
- my original flac file has 138278196 samples (read in Foobar2000 file properties).
- my mka file has 138281415 samples (3219 more than the flac).
- when I re-extract flac from mka, it has 138278196 samples...
So I think when foobar is reading the 3219 virtual samples, it crashes...
PROBLEM 2
There's another problem:
When I read one track properties (defined by chapters) in the mka, for example, I have 976080 samples, and when I convert it into flac separated file (with flac transport layer), it has 976079 samples, so 1 sample is missing...
Not very much, but after that the album is not lossless!
I think the problem come from round time chapters (read here in French).
- 1/44100 has infinite of numbers after point, so the precision of nanosecond is an approximation...
CODE
+----+ is a sample
| is a chapter
WHAT HAPPENS :
+----+----+----+----+----+----+----+----+----+ AUDIO STREAM
| | CHAPTERS STREAM
..track1..] [....track2....] [..track3.. after cut
WHAT WE WANT TO GET :
+----+----+----+----+----+----+----+----+----+ AUDIO STREAM
| | CHAPTERS STREAM
....track1....][...track2....][....track3..... after cut
| is a chapter
WHAT HAPPENS :
+----+----+----+----+----+----+----+----+----+ AUDIO STREAM
| | CHAPTERS STREAM
..track1..] [....track2....] [..track3.. after cut
WHAT WE WANT TO GET :
+----+----+----+----+----+----+----+----+----+ AUDIO STREAM
| | CHAPTERS STREAM
....track1....][...track2....][....track3..... after cut
So to resolve the problem, I think Foobar has to consider the approximation of nanosecond, considering the round is by default (6.1 --> 6 ; 6.9 --> 6, not 6.9 --> 7)
That would be great if these bugs can be fixed in futures versions
Thanks for your work
