Playback of M4A files on Windows through SoundSourceMediaFoundation plugin is broken

Bug #1490580 reported by Uwe Klotz
48
This bug affects 9 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Critical
Unassigned

Bug Description

[master]

The tests for sample accurate seeking of M4A files in SoundSourceProxyTest have been disabled on Windows, because the SoundSourceMediaFoundation plugin fails to perform accurate seek operations.

Furthermore reading of sample data sometimes seems to result in more samples than have actually been requested. This is dangerous, because it might write data outside the bounds of the buffer that is allocated by the caller!

*TODO*
* Determine the exact length of the audio stream in frames/samples and set by invoking setFrameCount(). Currently this is an approximate value calculated from the duration.
* Fix seeking and decoding in SoundSourceMediaFoundation
* Remove #ifndef __WINDOWS__ // TODO(XXX) from soundproxy_test.cpp and re-add ".m4a" to availableFileNameSuffixes
* No more violations of DEBUG_ASSERTs in the caller's code, e.g. AnalyserQueue

description: updated
description: updated
description: updated
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

I neither have the time to fix this issue nor do I have a native Windows dev. environment (only a slow VM). But I'm happy support anyone who is willing to take responsibility for this task.

For an example on how to do the buffering of decoded sample data in the "leftover" buffer please have a look at SoundSourceFLAC and SoundSourceM4A.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Maked as "Confirmed" since there are many bug reports about the SoundSourceMediaFoundation that is still broken.

Changed in mixxx:
status: New → Confirmed
Revision history for this message
rimorob (boris-1) wrote :

I'm not sure that I'm following what's going on here. If the bug is in a 3rd party plug-in, is that the only plug-in that can decode m4a?

Is there a work-around? What's the best alternative format to convert to, without using a lot more disk space?

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Sorry, no workaround. The Mixxx plugin needs to be fixed.

If someone is able to give me instructions for a working Windows development environment I might be able to fix it. But my time is limited ;)

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

 > What's the best alternative format to convert to, without using a lot more disk space?

Ogg Vobis.
It is somehow similar to m4a in terms of quality vs. files size.
But be aware that the re-encoding always suffer the short comings of both codecs.

To avoid that you may re-encode your file to the lossless FLAC format which unfortunately blows up the file size.

In any case, keep the original m4a files.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :
Changed in mixxx:
status: Confirmed → In Progress
assignee: nobody → Uwe Klotz (uklotzde)
Changed in mixxx:
status: In Progress → Fix Committed
RJ Skerry-Ryan (rryan)
Changed in mixxx:
milestone: none → 2.1.0
Be (be.ing)
Changed in mixxx:
importance: Undecided → Critical
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/8210

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.