mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.54k stars 1.28k forks source link

Deck/Spinny Coverart is randomly not read #11131

Closed JoergAtGithub closed 1 year ago

JoergAtGithub commented 1 year ago

Bug Description

If I load a track into a deck, the CoveArt is sometimes displayed, and sometimes not. This doesn't depend on the track, it can be reproduced for any track after some retries. This doesn't happen with 2.3, only with Main.

In the --developer output I see in cases without loaded coverart:

info [Thread (pooled)] MetadataSourceTagLib - No track metadata or cover art found in file "C:/Users/Joerg.WORLDWARTWEB/Music/Der Dritte Raum - Hale Bopp (original mix).mp3" with type 3
debug [Thread (pooled)] SoundSourceProxy - SoundSourceProvider "MAD: MPEG Audio Decoder" created a SoundSource for file "file:///C:/Users/Joerg.WORLDWARTWEB/Music/Der Dritte Raum - Hale Bopp (original mix).mp3" of type "mp3"
debug [AnalyzerThread 0 #1] AnalyzerThread - Dequeued next track 140
debug [Thread (pooled)] SoundSourceProxy - SoundSourceProvider "MAD: MPEG Audio Decoder" created a SoundSource for file "file:///C:/Users/Joerg.WORLDWARTWEB/Music/Der Dritte Raum - Hale Bopp (original mix).mp3" of type "mp3"
warning [Thread (pooled)] TagLib - Cannot read audio properties from inaccessible/unreadable/invalid file:
debug [AnalyzerThread 0 #1] AnalyzerThread - Analyzing QFileInfo(C:\Users\Joerg.WORLDWARTWEB\Music\Der Dritte Raum - Hale Bopp (original mix).mp3)
info [Thread (pooled)] MetadataSourceTagLib - No track metadata or cover art found in file "C:/Users/Joerg.WORLDWARTWEB/Music/Der Dritte Raum - Hale Bopp (original mix).mp3" with type 3
warning [Thread (pooled)] TagLib - Cannot read audio properties from inaccessible/unreadable/invalid file:
info [Thread (pooled)] MetadataSourceTagLib - No track metadata or cover art found in file "C:/Users/Joerg.WORLDWARTWEB/Music/Der Dritte Raum - Hale Bopp (original mix).mp3" with type 3

Version

2.4

OS

Windows7 & Windows11

JoergAtGithub commented 1 year ago

I noticed, that after switching the Skin or the Color scheme the cover art is always drawn correct for all decks.

JoergAtGithub commented 1 year ago

Note, that the Library Coverart is always shown - this bug affects only the Deck/Spinny Coverart

ronso0 commented 1 year ago

Can you play the track if there's no cover?

JoergAtGithub commented 1 year ago

Yes, everything works, just the Coverart image in the Deck/Spinny is randomly ~50% missing

JoergAtGithub commented 1 year ago

This still occurs with any 2.4 build for me, while 2.3.5 work flawless. Occurs on two laptops with Win7 and Win11.

ronso0 commented 1 year ago

Do you see any related warnings when loading a track? Is the default cover shown? I mean the one set by the skin, not the global default. This is the Tango default image

JoergAtGithub commented 1 year ago

1.) The only messages about cover art are these, which I posted in the descriptions. But I'm not sure if these are related here.

2.) The default cover is shown if no CoverArt is displayed

3.) When I switch skins in the preferences, the CoverArt appears for all decks where a track is loaded => The bug only happens at loading tracks into a deck. No difference if I do this by double-click, drag and drop or controller mapping.

Any idea how to debug this?

ronso0 commented 1 year ago

Maybe an issue in CoverInfoGuesser().guessAndSetCoverInfoForTrack()? Or check what happens in CoverArtCache::requestTrackCover() when you load a track?

JoergAtGithub commented 1 year ago

CoverInfoGuesser().guessAndSetCoverInfoForTrack() is not executed when I load a track into a deck.

If I set a breakpoint in Line 70 of https://github.com/mixxxdj/mixxx/blob/3de29630a80513127f8d3c0e5eb006922d240d08/src/library/coverartcache.cpp#L64-L74 it fails always. I guess this is some kind of race condition.

JoergAtGithub commented 1 year ago

CoverArtCache::requestTrackCover is always executed, the breakpoint always triggers, for cases where the CoverArt is loaded and for the cases, where it does not. I've difficulties to debug this further. The CoverArtCache code is difficult to understand - and it's very hot code - very often executed by the library code. Breakpoints are only usable with additional conditions. But I wonder if the root cause might be in the Spinny widget code instead.

ronso0 commented 1 year ago

I think you could inspect the cover data in slotCoverFound.

JoergAtGithub commented 1 year ago

I'm a step further. The following function is executed three times, when a track is loaded into a deck. The first two times pixmap is alway NULL and it returns early. The third call differs in failure case, when the Coverart is not loaded, pixmap is NULL as well. https://github.com/mixxxdj/mixxx/blob/4a51c393eb8820a5728f4b2b53dce8ef203d2b8c/src/widget/wspinnybase.cpp#L377-L386

JoergAtGithub commented 1 year ago

In case of not displayed CoverArt, WSpinnyBase::slotCoverFound is called with an empty pixmap.

m0dB commented 1 year ago

I'd like to reproduce this but on macOS I've never seen this happen. Are there any specific steps to make this more likely to occur?

JoergAtGithub commented 1 year ago

This occurs on Windows most of the times (roughly 90% of the track loads the CoverArt in the spinnies is missing). I don't need to do anything special. The other way around I can say, what always work to display the CoverArt: If I switch the skin in the preferences while tracks are loaded into the decks, all decks will show the CoverArt after the skin change - until I load a new track to the deck, than the problem occurs again.

m0dB commented 1 year ago

I don't think this will make a difference, but just in case, can you check with the old spinny implementation by returned a new WSpinny instead of a new WSpinnyGLSL in LegacySkinParser::parseSpinny ?

m0dB commented 1 year ago

As running this in the debugger is tricky, you could add some more logging in the CoverArtCache and WSpinnyBase code to see where the difference between successful and null pixmaps occurs exactly.

Btw, while looking at the code, this std::move seems very strange to me.

271         emit coverFound(
272                 res.pRequestor,
273                 std::move(res.coverArt),
274                 pixmap,
275                 res.requestedCacheKey,
276                 res.coverInfoUpdated);
Swiftb0y commented 1 year ago

Btw, while looking at the code, this std::move seems very strange to me.

Good catch, but since the signal parameters just take/pass lvalue refs, I'm pretty sure it doesn't do anything.

JoergAtGithub commented 1 year ago

Btw, while looking at the code, this std::move seems very strange to me.

Good catch, but since the signal parameters just take/pass lvalue refs, I'm pretty sure it doesn't do anything.

Yes, I tried to change this already, but it doesn't fix this bug.

m0dB commented 1 year ago

Could you add a lot of logging in all the functions involved and share the logs of a cover does and a cover that doesn't load?

JoergAtGithub commented 1 year ago

I added a debug statement after each emit coverFound. See the log below.

Only the last loaded track showed the CoverArt in the Spinny.txt

JoergAtGithub commented 1 year ago

Maybe related test fails are in the Qt6 CI builds: https://github.com/mixxxdj/mixxx/actions/runs/6021023487/job/16343828636

``` 146/764 Test #146: CoverArtCacheTest.loadCoverFromFileRelative ................................................***Failed 0.21 sec Note: Google Test filter = CoverArtCacheTest.loadCoverFromFileRelative [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from CoverArtCacheTest [ RUN ] CoverArtCacheTest.loadCoverFromFileRelative info [0x251a6b67f20] DbConnection - Available drivers for database connections: QList("QSQLITE") info [0x251a6b67f20] DbConnectionPool - Cloned thread-local database connection "MIXXX-1" QSqlDatabase(driver="QSQLITE", database="file:///C:/Users/runneradmin/AppData/Local/Temp/mixxx-test-OzeokI/mixxxdb.sqlite?mode=memory&cache=shared", host="", port=-1, user="mixxx", open=true) info [0x251a6b67f20] SoundSourceSndFile - Disabling OGG decoding for "libsndfile-1.2.0" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "aac" info [0x251a6b67f20] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "aiff" info [0x251a6b67f20] SoundSourceProxy - 3 (default) : "libsndfile" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "caf" info [0x251a6b67f20] SoundSourceProxy - 2 (lower) : "libsndfile" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "flac" info [0x251a6b67f20] SoundSourceProxy - 4 (higher) : "Xiph.org libFLAC" info [0x251a6b67f20] SoundSourceProxy - 2 (lower) : "libsndfile" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "it" info [0x251a6b67f20] SoundSourceProxy - 3 (default) : "MODPlug" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "m4a" info [0x251a6b67f20] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "mod" info [0x251a6b67f20] SoundSourceProxy - 3 (default) : "MODPlug" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "mp3" info [0x251a6b67f20] SoundSourceProxy - 3 (default) : "MAD: MPEG Audio Decoder" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "mp4" info [0x251a6b67f20] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "ogg" info [0x251a6b67f20] SoundSourceProxy - 4 (higher) : "Xiph.org OggVorbis" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "okt" info [0x251a6b67f20] SoundSourceProxy - 3 (default) : "MODPlug" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "opus" info [0x251a6b67f20] SoundSourceProxy - 4 (higher) : "Xiph.org libopusfile" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "s3m" info [0x251a6b67f20] SoundSourceProxy - 3 (default) : "MODPlug" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "stm" info [0x251a6b67f20] SoundSourceProxy - 3 (default) : "MODPlug" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "wav" info [0x251a6b67f20] SoundSourceProxy - 3 (default) : "libsndfile" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "wv" info [0x251a6b67f20] SoundSourceProxy - 4 (higher) : "WavPack" info [0x251a6b67f20] SoundSourceProxy - SoundSource providers for file type "xm" info [0x251a6b67f20] SoundSourceProxy - 3 (default) : "MODPlug" info [0x251a6b67f20] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.version" info [0x251a6b67f20] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.last_used_version" info [0x251a6b67f20] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.version" info [0x251a6b67f20] SchemaManager - Upgrading database schema from version 0 to version 39 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 1 : "The base schema for the Mixxx SQLITE database." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 1 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 2 : "Add a header_parsed integer column to the library to indicate when a\n track's tags have been parsed." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 2 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 3 : "Change the location column to be a an integer. Change comment to be\n varchar(256) and album/artist/title to be varchar(64)." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 3 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 4 : "Add file type column." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 4 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 5 : "Add needs_verification column to library hashes table." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 5 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 6 : "Added a ReplayGain Column." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 6 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 7 : "Add timesplayed and rating column. Reset header state." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 7 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 8 : "Added iTunes tables" info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 8 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 9 : "Tables for Traktor library feature" info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 9 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 10 : "Playlist and crate locks" info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 10 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 11 : "Tables for Rhythmbox library feature" info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 11 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 12 : "Add beats column to library table." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 12 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 13 : "Add position column to Rhythmbox, iTunes, and Traktor playlist tables." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 13 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 14 : "Add composer column to library table." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 14 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 15 : "Add datetime_added to playlists tracks." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 15 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 16 : "Add track analysis table." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 16 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 17 : "Add columns for BPM lock and a sub-version string for beats." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 17 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 18 : "Add keys column to library table." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 18 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 19 : "Add key_id column to library table for caching the global key. Default to\n INVALID." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 19 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 20 : "Crates in AutoDJ queue (for automated random-track selection)." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 20 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 21 : "Add grouping and album_artist column to library table." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 21 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 22 : "Add grouping and album_artist column to itunes_library table." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 22 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 23 : "Add directories table" info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 23 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 24 : "Add cover art support. Default source is UNKNOWN and default type is NONE." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 24 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 25 : "Add full replay gain support including peak amplitude. The default\n value for the peak amplitude is \"undefined\", represented by any\n negative value. The internal constant for \"undefined\" is -1.0." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 25 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 26 : "Add new column \"tracktotal\" column that stores the total number of\n tracks as a string. The total number of tracks will be reloaded\n from the corresponding file upon first access when encountering\n the default value." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 26 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 27 : "Add cue color support. Default color is #FF0000." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 27 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 28 : "Reset replay gain info for all FLAC files after fixing a decoding bug in version 2.1.0." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 28 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 29 : "This was used in the development of 2.3 to track whether cues were placed\n manually or automatically. However, this turned out to be unnecessary.\n This version is left as a placeholder so users who were using the master\n branch will have their database updated correctly for the subsequent\n schema change." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 29 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 30 : "This was used in the development of 2.3 for permanent Rekordbox\n library feature tables, which have since been replaced by\n dynamic temporary tables, similar to the Serato library\n feature." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 30 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 31 : "Add track color support." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 31 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 32 : "Convert the PredefinedColor ID to the actual RGB value." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 32 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 33 : "Add cover art image digest and (background) color" info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 33 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 34 : "Add indexes for tracks in playlists and crates" info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 34 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 35 : "Add last_played_at column to library table" info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 35 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 36 : "Populate last_played_at column in library table from play history" info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 36 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 37 : "Add source_synchronized_ms column to library table" info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 37 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 38 : "Fix 0/NULL issue after upgrade to schema version 37." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 38 info [0x251a6b67f20] SchemaManager - Upgrading database schema to version 39 : "Replace file type \"aif\" with \"aiff\"." info [0x251a6b67f20] SchemaManager - Upgraded database schema to version 39 info [0x251a6b67f20] GlobalTrackCache - Creating instance info [0x251a6b67f20] TrackCollection - Connecting database info [0x251a6b67f20] TrackCollectionManager - External collections are disabled in test mode info [0x251a6b67f20] TrackCollectionManager - Library scanner is disabled in test mode D:\a\mixxx\mixxx\src\test\coverartcache_test.cpp(43): error: Value of: img.isNull() Actual: true Expected: false info [0x251a6b67f20] TrackCollection - Disconnecting database info [0x251a6b67f20] GlobalTrackCache - Destroying instance [ FAILED ] CoverArtCacheTest.loadCoverFromFileRelative (30 ms) [----------] 1 test from CoverArtCacheTest (30 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (30 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] CoverArtCacheTest.loadCoverFromFileRelative 1 FAILED TEST Start 147: CoverArtCacheTest.loadCoverFromFileAbsolute 147/764 Test #147: CoverArtCacheTest.loadCoverFromFileAbsolute ................................................***Failed 0.22 sec Note: Google Test filter = CoverArtCacheTest.loadCoverFromFileAbsolute [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from CoverArtCacheTest [ RUN ] CoverArtCacheTest.loadCoverFromFileAbsolute info [0x29505be7b50] DbConnection - Available drivers for database connections: QList("QSQLITE") info [0x29505be7b50] DbConnectionPool - Cloned thread-local database connection "MIXXX-1" QSqlDatabase(driver="QSQLITE", database="file:///C:/Users/runneradmin/AppData/Local/Temp/mixxx-test-spriPr/mixxxdb.sqlite?mode=memory&cache=shared", host="", port=-1, user="mixxx", open=true) info [0x29505be7b50] SoundSourceSndFile - Disabling OGG decoding for "libsndfile-1.2.0" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "aac" info [0x29505be7b50] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "aiff" info [0x29505be7b50] SoundSourceProxy - 3 (default) : "libsndfile" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "caf" info [0x29505be7b50] SoundSourceProxy - 2 (lower) : "libsndfile" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "flac" info [0x29505be7b50] SoundSourceProxy - 4 (higher) : "Xiph.org libFLAC" info [0x29505be7b50] SoundSourceProxy - 2 (lower) : "libsndfile" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "it" info [0x29505be7b50] SoundSourceProxy - 3 (default) : "MODPlug" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "m4a" info [0x29505be7b50] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "mod" info [0x29505be7b50] SoundSourceProxy - 3 (default) : "MODPlug" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "mp3" info [0x29505be7b50] SoundSourceProxy - 3 (default) : "MAD: MPEG Audio Decoder" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "mp4" info [0x29505be7b50] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "ogg" info [0x29505be7b50] SoundSourceProxy - 4 (higher) : "Xiph.org OggVorbis" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "okt" info [0x29505be7b50] SoundSourceProxy - 3 (default) : "MODPlug" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "opus" info [0x29505be7b50] SoundSourceProxy - 4 (higher) : "Xiph.org libopusfile" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "s3m" info [0x29505be7b50] SoundSourceProxy - 3 (default) : "MODPlug" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "stm" info [0x29505be7b50] SoundSourceProxy - 3 (default) : "MODPlug" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "wav" info [0x29505be7b50] SoundSourceProxy - 3 (default) : "libsndfile" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "wv" info [0x29505be7b50] SoundSourceProxy - 4 (higher) : "WavPack" info [0x29505be7b50] SoundSourceProxy - SoundSource providers for file type "xm" info [0x29505be7b50] SoundSourceProxy - 3 (default) : "MODPlug" info [0x29505be7b50] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.version" info [0x29505be7b50] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.last_used_version" info [0x29505be7b50] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.version" info [0x29505be7b50] SchemaManager - Upgrading database schema from version 0 to version 39 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 1 : "The base schema for the Mixxx SQLITE database." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 1 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 2 : "Add a header_parsed integer column to the library to indicate when a\n track's tags have been parsed." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 2 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 3 : "Change the location column to be a an integer. Change comment to be\n varchar(256) and album/artist/title to be varchar(64)." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 3 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 4 : "Add file type column." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 4 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 5 : "Add needs_verification column to library hashes table." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 5 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 6 : "Added a ReplayGain Column." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 6 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 7 : "Add timesplayed and rating column. Reset header state." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 7 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 8 : "Added iTunes tables" info [0x29505be7b50] SchemaManager - Upgraded database schema to version 8 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 9 : "Tables for Traktor library feature" info [0x29505be7b50] SchemaManager - Upgraded database schema to version 9 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 10 : "Playlist and crate locks" info [0x29505be7b50] SchemaManager - Upgraded database schema to version 10 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 11 : "Tables for Rhythmbox library feature" info [0x29505be7b50] SchemaManager - Upgraded database schema to version 11 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 12 : "Add beats column to library table." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 12 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 13 : "Add position column to Rhythmbox, iTunes, and Traktor playlist tables." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 13 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 14 : "Add composer column to library table." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 14 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 15 : "Add datetime_added to playlists tracks." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 15 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 16 : "Add track analysis table." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 16 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 17 : "Add columns for BPM lock and a sub-version string for beats." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 17 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 18 : "Add keys column to library table." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 18 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 19 : "Add key_id column to library table for caching the global key. Default to\n INVALID." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 19 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 20 : "Crates in AutoDJ queue (for automated random-track selection)." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 20 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 21 : "Add grouping and album_artist column to library table." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 21 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 22 : "Add grouping and album_artist column to itunes_library table." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 22 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 23 : "Add directories table" info [0x29505be7b50] SchemaManager - Upgraded database schema to version 23 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 24 : "Add cover art support. Default source is UNKNOWN and default type is NONE." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 24 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 25 : "Add full replay gain support including peak amplitude. The default\n value for the peak amplitude is \"undefined\", represented by any\n negative value. The internal constant for \"undefined\" is -1.0." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 25 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 26 : "Add new column \"tracktotal\" column that stores the total number of\n tracks as a string. The total number of tracks will be reloaded\n from the corresponding file upon first access when encountering\n the default value." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 26 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 27 : "Add cue color support. Default color is #FF0000." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 27 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 28 : "Reset replay gain info for all FLAC files after fixing a decoding bug in version 2.1.0." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 28 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 29 : "This was used in the development of 2.3 to track whether cues were placed\n manually or automatically. However, this turned out to be unnecessary.\n This version is left as a placeholder so users who were using the master\n branch will have their database updated correctly for the subsequent\n schema change." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 29 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 30 : "This was used in the development of 2.3 for permanent Rekordbox\n library feature tables, which have since been replaced by\n dynamic temporary tables, similar to the Serato library\n feature." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 30 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 31 : "Add track color support." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 31 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 32 : "Convert the PredefinedColor ID to the actual RGB value." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 32 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 33 : "Add cover art image digest and (background) color" info [0x29505be7b50] SchemaManager - Upgraded database schema to version 33 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 34 : "Add indexes for tracks in playlists and crates" info [0x29505be7b50] SchemaManager - Upgraded database schema to version 34 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 35 : "Add last_played_at column to library table" info [0x29505be7b50] SchemaManager - Upgraded database schema to version 35 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 36 : "Populate last_played_at column in library table from play history" info [0x29505be7b50] SchemaManager - Upgraded database schema to version 36 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 37 : "Add source_synchronized_ms column to library table" info [0x29505be7b50] SchemaManager - Upgraded database schema to version 37 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 38 : "Fix 0/NULL issue after upgrade to schema version 37." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 38 info [0x29505be7b50] SchemaManager - Upgrading database schema to version 39 : "Replace file type \"aif\" with \"aiff\"." info [0x29505be7b50] SchemaManager - Upgraded database schema to version 39 info [0x29505be7b50] GlobalTrackCache - Creating instance info [0x29505be7b50] TrackCollection - Connecting database info [0x29505be7b50] TrackCollectionManager - External collections are disabled in test mode info [0x29505be7b50] TrackCollectionManager - Library scanner is disabled in test mode D:\a\mixxx\mixxx\src\test\coverartcache_test.cpp(43): error: Value of: img.isNull() Actual: true Expected: false info [0x29505be7b50] TrackCollection - Disconnecting database info [0x29505be7b50] GlobalTrackCache - Destroying instance [ FAILED ] CoverArtCacheTest.loadCoverFromFileAbsolute (30 ms) [----------] 1 test from CoverArtCacheTest (30 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (30 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] CoverArtCacheTest.loadCoverFromFileAbsolute 1 FAILED TEST Start 148: CoverArtUtilTest.extractEmbeddedCover 148/764 Test #148: CoverArtUtilTest.extractEmbeddedCover ......................................................***Failed 0.24 sec Note: Google Test filter = CoverArtUtilTest.extractEmbeddedCover [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from CoverArtUtilTest [ RUN ] CoverArtUtilTest.extractEmbeddedCover info [0x19ff9f0aa30] DbConnection - Available drivers for database connections: QList("QSQLITE") info [0x19ff9f0aa30] DbConnectionPool - Cloned thread-local database connection "MIXXX-1" QSqlDatabase(driver="QSQLITE", database="file:///C:/Users/runneradmin/AppData/Local/Temp/mixxx-test-XxDUTP/mixxxdb.sqlite?mode=memory&cache=shared", host="", port=-1, user="mixxx", open=true) info [0x19ff9f0aa30] SoundSourceSndFile - Disabling OGG decoding for "libsndfile-1.2.0" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "aac" info [0x19ff9f0aa30] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "aiff" info [0x19ff9f0aa30] SoundSourceProxy - 3 (default) : "libsndfile" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "caf" info [0x19ff9f0aa30] SoundSourceProxy - 2 (lower) : "libsndfile" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "flac" info [0x19ff9f0aa30] SoundSourceProxy - 4 (higher) : "Xiph.org libFLAC" info [0x19ff9f0aa30] SoundSourceProxy - 2 (lower) : "libsndfile" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "it" info [0x19ff9f0aa30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "m4a" info [0x19ff9f0aa30] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "mod" info [0x19ff9f0aa30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "mp3" info [0x19ff9f0aa30] SoundSourceProxy - 3 (default) : "MAD: MPEG Audio Decoder" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "mp4" info [0x19ff9f0aa30] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "ogg" info [0x19ff9f0aa30] SoundSourceProxy - 4 (higher) : "Xiph.org OggVorbis" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "okt" info [0x19ff9f0aa30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "opus" info [0x19ff9f0aa30] SoundSourceProxy - 4 (higher) : "Xiph.org libopusfile" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "s3m" info [0x19ff9f0aa30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "stm" info [0x19ff9f0aa30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "wav" info [0x19ff9f0aa30] SoundSourceProxy - 3 (default) : "libsndfile" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "wv" info [0x19ff9f0aa30] SoundSourceProxy - 4 (higher) : "WavPack" info [0x19ff9f0aa30] SoundSourceProxy - SoundSource providers for file type "xm" info [0x19ff9f0aa30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x19ff9f0aa30] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.version" info [0x19ff9f0aa30] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.last_used_version" info [0x19ff9f0aa30] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.version" info [0x19ff9f0aa30] SchemaManager - Upgrading database schema from version 0 to version 39 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 1 : "The base schema for the Mixxx SQLITE database." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 1 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 2 : "Add a header_parsed integer column to the library to indicate when a\n track's tags have been parsed." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 2 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 3 : "Change the location column to be a an integer. Change comment to be\n varchar(256) and album/artist/title to be varchar(64)." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 3 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 4 : "Add file type column." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 4 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 5 : "Add needs_verification column to library hashes table." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 5 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 6 : "Added a ReplayGain Column." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 6 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 7 : "Add timesplayed and rating column. Reset header state." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 7 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 8 : "Added iTunes tables" info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 8 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 9 : "Tables for Traktor library feature" info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 9 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 10 : "Playlist and crate locks" info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 10 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 11 : "Tables for Rhythmbox library feature" info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 11 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 12 : "Add beats column to library table." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 12 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 13 : "Add position column to Rhythmbox, iTunes, and Traktor playlist tables." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 13 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 14 : "Add composer column to library table." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 14 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 15 : "Add datetime_added to playlists tracks." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 15 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 16 : "Add track analysis table." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 16 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 17 : "Add columns for BPM lock and a sub-version string for beats." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 17 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 18 : "Add keys column to library table." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 18 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 19 : "Add key_id column to library table for caching the global key. Default to\n INVALID." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 19 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 20 : "Crates in AutoDJ queue (for automated random-track selection)." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 20 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 21 : "Add grouping and album_artist column to library table." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 21 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 22 : "Add grouping and album_artist column to itunes_library table." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 22 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 23 : "Add directories table" info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 23 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 24 : "Add cover art support. Default source is UNKNOWN and default type is NONE." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 24 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 25 : "Add full replay gain support including peak amplitude. The default\n value for the peak amplitude is \"undefined\", represented by any\n negative value. The internal constant for \"undefined\" is -1.0." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 25 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 26 : "Add new column \"tracktotal\" column that stores the total number of\n tracks as a string. The total number of tracks will be reloaded\n from the corresponding file upon first access when encountering\n the default value." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 26 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 27 : "Add cue color support. Default color is #FF0000." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 27 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 28 : "Reset replay gain info for all FLAC files after fixing a decoding bug in version 2.1.0." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 28 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 29 : "This was used in the development of 2.3 to track whether cues were placed\n manually or automatically. However, this turned out to be unnecessary.\n This version is left as a placeholder so users who were using the master\n branch will have their database updated correctly for the subsequent\n schema change." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 29 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 30 : "This was used in the development of 2.3 for permanent Rekordbox\n library feature tables, which have since been replaced by\n dynamic temporary tables, similar to the Serato library\n feature." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 30 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 31 : "Add track color support." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 31 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 32 : "Convert the PredefinedColor ID to the actual RGB value." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 32 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 33 : "Add cover art image digest and (background) color" info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 33 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 34 : "Add indexes for tracks in playlists and crates" info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 34 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 35 : "Add last_played_at column to library table" info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 35 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 36 : "Populate last_played_at column in library table from play history" info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 36 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 37 : "Add source_synchronized_ms column to library table" info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 37 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 38 : "Fix 0/NULL issue after upgrade to schema version 37." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 38 info [0x19ff9f0aa30] SchemaManager - Upgrading database schema to version 39 : "Replace file type \"aif\" with \"aiff\"." info [0x19ff9f0aa30] SchemaManager - Upgraded database schema to version 39 info [0x19ff9f0aa30] GlobalTrackCache - Creating instance info [0x19ff9f0aa30] TrackCollection - Connecting database info [0x19ff9f0aa30] TrackCollectionManager - External collections are disabled in test mode info [0x19ff9f0aa30] TrackCollectionManager - Library scanner is disabled in test mode warning [0x19ff9f0aa30] Using type "m4a" instead of "m4v" according to the detected MIME type QMimeType("audio/mp4") of file "D:/a/mixxx/mixxx/src/test/id3-test-data/cover-test.m4v" warning [0x19ff9f0aa30] Using type "m4a" instead of "m4v" according to the detected MIME type QMimeType("audio/mp4") of file "D:/a/mixxx/mixxx/src/test/id3-test-data/cover-test.m4v" warning [0x19ff9f0aa30] TagLib - Failed to load image from ID3v2 APIC frame of type 3 D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(23): error: Expected equality of these values: expectedImage Which is: 24-byte object actualImage Which is: 24-byte object info [0x19ff9f0aa30] TrackCollection - Disconnecting database info [0x19ff9f0aa30] GlobalTrackCache - Destroying instance [ FAILED ] CoverArtUtilTest.extractEmbeddedCover (58 ms) [----------] 1 test from CoverArtUtilTest (58 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (58 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] CoverArtUtilTest.extractEmbeddedCover 1 FAILED TEST Start 149: CoverArtUtilTest.searchImage 149/764 Test #149: CoverArtUtilTest.searchImage ...............................................................***Failed 0.25 sec Note: Google Test filter = CoverArtUtilTest.searchImage [==========] Running 1 test from 1 test suite. [----------] Global test environment set-up. [----------] 1 test from CoverArtUtilTest [ RUN ] CoverArtUtilTest.searchImage info [0x23f9ed3bc30] DbConnection - Available drivers for database connections: QList("QSQLITE") info [0x23f9ed3bc30] DbConnectionPool - Cloned thread-local database connection "MIXXX-1" QSqlDatabase(driver="QSQLITE", database="file:///C:/Users/runneradmin/AppData/Local/Temp/mixxx-test-rOCATG/mixxxdb.sqlite?mode=memory&cache=shared", host="", port=-1, user="mixxx", open=true) info [0x23f9ed3bc30] SoundSourceSndFile - Disabling OGG decoding for "libsndfile-1.2.0" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "aac" info [0x23f9ed3bc30] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "aiff" info [0x23f9ed3bc30] SoundSourceProxy - 3 (default) : "libsndfile" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "caf" info [0x23f9ed3bc30] SoundSourceProxy - 2 (lower) : "libsndfile" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "flac" info [0x23f9ed3bc30] SoundSourceProxy - 4 (higher) : "Xiph.org libFLAC" info [0x23f9ed3bc30] SoundSourceProxy - 2 (lower) : "libsndfile" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "it" info [0x23f9ed3bc30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "m4a" info [0x23f9ed3bc30] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "mod" info [0x23f9ed3bc30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "mp3" info [0x23f9ed3bc30] SoundSourceProxy - 3 (default) : "MAD: MPEG Audio Decoder" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "mp4" info [0x23f9ed3bc30] SoundSourceProxy - 4 (higher) : "Microsoft Media Foundation" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "ogg" info [0x23f9ed3bc30] SoundSourceProxy - 4 (higher) : "Xiph.org OggVorbis" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "okt" info [0x23f9ed3bc30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "opus" info [0x23f9ed3bc30] SoundSourceProxy - 4 (higher) : "Xiph.org libopusfile" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "s3m" info [0x23f9ed3bc30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "stm" info [0x23f9ed3bc30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "wav" info [0x23f9ed3bc30] SoundSourceProxy - 3 (default) : "libsndfile" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "wv" info [0x23f9ed3bc30] SoundSourceProxy - 4 (higher) : "WavPack" info [0x23f9ed3bc30] SoundSourceProxy - SoundSource providers for file type "xm" info [0x23f9ed3bc30] SoundSourceProxy - 3 (default) : "MODPlug" info [0x23f9ed3bc30] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.version" info [0x23f9ed3bc30] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.last_used_version" info [0x23f9ed3bc30] SettingsDAO - Failed to prepare query: Returning default value "" for "mixxx.schema.version" info [0x23f9ed3bc30] SchemaManager - Upgrading database schema from version 0 to version 39 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 1 : "The base schema for the Mixxx SQLITE database." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 1 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 2 : "Add a header_parsed integer column to the library to indicate when a\n track's tags have been parsed." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 2 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 3 : "Change the location column to be a an integer. Change comment to be\n varchar(256) and album/artist/title to be varchar(64)." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 3 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 4 : "Add file type column." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 4 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 5 : "Add needs_verification column to library hashes table." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 5 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 6 : "Added a ReplayGain Column." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 6 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 7 : "Add timesplayed and rating column. Reset header state." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 7 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 8 : "Added iTunes tables" info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 8 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 9 : "Tables for Traktor library feature" info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 9 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 10 : "Playlist and crate locks" info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 10 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 11 : "Tables for Rhythmbox library feature" info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 11 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 12 : "Add beats column to library table." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 12 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 13 : "Add position column to Rhythmbox, iTunes, and Traktor playlist tables." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 13 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 14 : "Add composer column to library table." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 14 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 15 : "Add datetime_added to playlists tracks." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 15 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 16 : "Add track analysis table." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 16 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 17 : "Add columns for BPM lock and a sub-version string for beats." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 17 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 18 : "Add keys column to library table." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 18 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 19 : "Add key_id column to library table for caching the global key. Default to\n INVALID." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 19 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 20 : "Crates in AutoDJ queue (for automated random-track selection)." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 20 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 21 : "Add grouping and album_artist column to library table." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 21 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 22 : "Add grouping and album_artist column to itunes_library table." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 22 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 23 : "Add directories table" info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 23 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 24 : "Add cover art support. Default source is UNKNOWN and default type is NONE." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 24 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 25 : "Add full replay gain support including peak amplitude. The default\n value for the peak amplitude is \"undefined\", represented by any\n negative value. The internal constant for \"undefined\" is -1.0." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 25 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 26 : "Add new column \"tracktotal\" column that stores the total number of\n tracks as a string. The total number of tracks will be reloaded\n from the corresponding file upon first access when encountering\n the default value." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 26 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 27 : "Add cue color support. Default color is #FF0000." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 27 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 28 : "Reset replay gain info for all FLAC files after fixing a decoding bug in version 2.1.0." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 28 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 29 : "This was used in the development of 2.3 to track whether cues were placed\n manually or automatically. However, this turned out to be unnecessary.\n This version is left as a placeholder so users who were using the master\n branch will have their database updated correctly for the subsequent\n schema change." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 29 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 30 : "This was used in the development of 2.3 for permanent Rekordbox\n library feature tables, which have since been replaced by\n dynamic temporary tables, similar to the Serato library\n feature." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 30 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 31 : "Add track color support." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 31 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 32 : "Convert the PredefinedColor ID to the actual RGB value." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 32 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 33 : "Add cover art image digest and (background) color" info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 33 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 34 : "Add indexes for tracks in playlists and crates" info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 34 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 35 : "Add last_played_at column to library table" info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 35 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 36 : "Populate last_played_at column in library table from play history" info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 36 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 37 : "Add source_synchronized_ms column to library table" info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 37 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 38 : "Fix 0/NULL issue after upgrade to schema version 37." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 38 info [0x23f9ed3bc30] SchemaManager - Upgrading database schema to version 39 : "Replace file type \"aif\" with \"aiff\"." info [0x23f9ed3bc30] SchemaManager - Upgraded database schema to version 39 info [0x23f9ed3bc30] GlobalTrackCache - Creating instance info [0x23f9ed3bc30] TrackCollection - Connecting database info [0x23f9ed3bc30] TrackCollectionManager - External collections are disabled in test mode info [0x23f9ed3bc30] TrackCollectionManager - Library scanner is disabled in test mode info [0x23f9ed3bc30] SoundSourceProxy - Parsing missing artist/title from file name: "D:/a/mixxx/mixxx/src/test/id3-test-data/cover-test-png.mp3" D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(169): error: Value of: img.save(cLoc_foo, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(177): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(183): error: Value of: img.scaled(1000,1000).save(cLoc_big1, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(186): error: Value of: img.scaled(900,900).save(cLoc_big2, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(189): error: Value of: img.scaled(800,800).save(cLoc_big3, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(196): error: Value of: img.scaled(500,500).save(cLoc_filename, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(200): error: Value of: img.scaled(500,500).save(cLoc_albumName, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(204): error: Value of: img.scaled(400,400).save(cLoc_cover, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(208): error: Value of: img.scaled(300,300).save(cLoc_front, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(212): error: Value of: img.scaled(100,100).save(cLoc_album, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(216): error: Value of: img.scaled(100,100).save(cLoc_folder, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(220): error: Value of: img.scaled(10,10).save(cLoc_other1, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(224): error: Value of: img.scaled(10,10).save(cLoc_other2, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(249): error: Expected equality of these values: QtPrivate::asString(expected2.coverLocation).toLocal8Bit().constData() Which is: "cover-test.jpg" QtPrivate::asString(res2.coverLocation).toLocal8Bit().constData() Which is: "" D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(251): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(249): error: Expected equality of these values: QtPrivate::asString(expected2.coverLocation).toLocal8Bit().constData() Which is: "album_name.jpg" QtPrivate::asString(res2.coverLocation).toLocal8Bit().constData() Which is: "" D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(251): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(249): error: Expected equality of these values: QtPrivate::asString(expected2.coverLocation).toLocal8Bit().constData() Which is: "cover.jpg" QtPrivate::asString(res2.coverLocation).toLocal8Bit().constData() Which is: "" D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(251): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(249): error: Expected equality of these values: QtPrivate::asString(expected2.coverLocation).toLocal8Bit().constData() Which is: "front.jpg" QtPrivate::asString(res2.coverLocation).toLocal8Bit().constData() Which is: "" D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(251): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(249): error: Expected equality of these values: QtPrivate::asString(expected2.coverLocation).toLocal8Bit().constData() Which is: "album.jpg" QtPrivate::asString(res2.coverLocation).toLocal8Bit().constData() Which is: "" D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(251): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(249): error: Expected equality of these values: QtPrivate::asString(expected2.coverLocation).toLocal8Bit().constData() Which is: "folder.jpg" QtPrivate::asString(res2.coverLocation).toLocal8Bit().constData() Which is: "" D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(251): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(249): error: Expected equality of these values: QtPrivate::asString(expected2.coverLocation).toLocal8Bit().constData() Which is: "other2.jpg" QtPrivate::asString(res2.coverLocation).toLocal8Bit().constData() Which is: "" D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(251): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(264): error: Value of: img.scaled(200,200).save(cLoc_coverJPG, "JPG") Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(267): error: Value of: img.scaled(400,400).save(cLoc_coverjpg, "jpg") Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(275): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(286): error: Value of: img.save(cLoc_albumName, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(292): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(296): error: Value of: img.save(cLoc_filename, format) Actual: false Expected: true D:\a\mixxx\mixxx\src\test\coverartutils_test.cpp(303): error: Expected equality of these values: expected2 Which is: 80-byte object res2 Which is: 80-byte object info [0x23f9ed3bc30] TrackCollection - Disconnecting database info [0x23f9ed3bc30] GlobalTrackCache - Destroying instance [ FAILED ] CoverArtUtilTest.searchImage (61 ms) [----------] 1 test from CoverArtUtilTest (61 ms total) [----------] Global test environment tear-down [==========] 1 test from 1 test suite ran. (61 ms total) [ PASSED ] 0 tests. [ FAILED ] 1 test, listed below: [ FAILED ] CoverArtUtilTest.searchImage 1 FAILED TEST ```
m0dB commented 1 year ago

Sorry for not getting back to you, @JoergAtGithub . I have been very busy. I will try to find some time to look into this this weekend.

In the meantime, maybe you already tried this, if not can you try if this also happens with the non-GLSL spinnies, by returned new WSpinny instead of WSpinnyGLSL in the legacyskinparser.cpp around line 1322 ?

JoergAtGithub commented 1 year ago

This bug occurs with all waveform types. To clarify, this bug was introduced long time before merging #10989, but doesn't affect any 2.3 build.

daschuer commented 1 year ago

Some takeaways:

So it looks like the file becomes invalid somehow.

Can you uncomment this and check if the file name is still valid? https://github.com/mixxxdj/mixxx/blob/50675965e79caa7abdda07107f1d06a719ecbe51/src/sources/metadatasourcetaglib.cpp#L98

uklotzde commented 1 year ago

Maybe the vcpkg build environment for Windows is broken somehow?

uklotzde commented 1 year ago

Wow, that's wild (Qt6, main + ...):

info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" with type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" with type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" with type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" with type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" with type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" with type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" with type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" with type 3
[New Thread 0x7fff1f1a86c0 (LWP 7456)]
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" with type 3
warning [AnalyzerThread 0 #1] SoundSourceFFmpeg - av_seek_frame() failed: Operation not permitted
warning [AnalyzerThread 0 #1] AudioSource - Failed to read sample frames: expected = [0 -> 1) , actual = [0 -> 0)
info [AnalyzerThread 0 #1] AudioSource - Shrinking readable frame index range: before = [0 -> 16816943) , after = [0 -> 0)
warning [AnalyzerThread 0 #1] AudioSource - Read test failed: expected = [0 -> 1) , actual = [0 -> 0)
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" with type 3
warning [AnalyzerThread 0 #1] SoundSourceProxy - Failed to read file "file:///home/uk/Music/1st/*****.mp3" with provider "FFmpeg"

All this happens while loading a single file into a deck. The cover art of the file is imported 9 times! The subsequent read failures reported by FFmpeg are really worrisome.

uklotzde commented 1 year ago

And the winner is: DlgCoverArtFullSize. Even though it should not be involved at all! With WSpinnyBase as a close follower. Which should also not be involved, because I don't have any spinnies with cover art enabled. The only expected request is the one from WCoverArt.

info [Main] DlgCoverArtFullSize: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] WCoverArt: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] DlgCoverArtFullSize: requestTrackCover "/home/uk/Music/1st/*****.mp3"
[New Thread 0x7fffd9a9d6c0 (LWP 11853)]
info [Main] WSpinnyBase: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
[New Thread 0x7fff1b86b6c0 (LWP 11854)]
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Main] DlgCoverArtFullSize: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] WSpinnyBase: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] DlgCoverArtFullSize: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] WSpinnyBase: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] DlgCoverArtFullSize: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] WSpinnyBase: requestTrackCover "/home/uk/Music/1st/*****.mp3"
uklotzde commented 1 year ago

Looks like there are some serious issues in the application's control flow.

JoergAtGithub commented 1 year ago

On Windows, the file access of Mixxx in general, is rather slow. I guess that this increases the likelyhood that the race condition results in a not loaded CoverArt.

uklotzde commented 1 year ago

The results from a Qt5 build don't look any better:

info [Main] MetadataSourceTagLib - Importing track metadata from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Main] WCoverArt: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
warning [CachingReaderWorker 1] SoundSourceFFmpeg - av_seek_frame() failed: Operation not permitted
warning [CachingReaderWorker 1] AudioSource - Failed to read sample frames: expected = [0 -> 1) , actual = [0 -> 0)
info [CachingReaderWorker 1] AudioSource - Shrinking readable frame index range: before = [0 -> 16816943) , after = [0 -> 0)
warning [CachingReaderWorker 1] AudioSource - Read test failed: expected = [0 -> 1) , actual = [0 -> 0)
warning [CachingReaderWorker 1] SoundSourceProxy - Failed to read file "file:///home/uk/Music/1st/*****.mp3" with provider "FFmpeg"
info [CachingReaderWorker 1] SoundSourceMp3 - Recoverable MP3 header decoding error: lost synchronization
info [CachingReaderWorker 1] SoundSourceMp3 - MP3 frame header | layer: 3 mode: 2 #channels: 2 #samples: 36 bitrate: 320000 samplerate: 44100 flags: "0x00c8"
info [Main] DlgCoverArtFullSize: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] WCoverArt: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] DlgCoverArtFullSize: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] WSpinnyBase: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] DlgCoverArtFullSize: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] WSpinnyBase: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Main] DlgCoverArtFullSize: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Main] WSpinnyBase: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] DlgCoverArtFullSize: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Main] WSpinnyBase: requestTrackCover "/home/uk/Music/1st/*****.mp3"
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
info [Thread (pooled)] MetadataSourceTagLib - Importing cover art from file "/home/uk/Music/1st/*****.mp3" of type 3
warning [AnalyzerThread 0 #1] SoundSourceFFmpeg - av_seek_frame() failed: Operation not permitted
warning [AnalyzerThread 0 #1] AudioSource - Failed to read sample frames: expected = [0 -> 1) , actual = [0 -> 0)
info [AnalyzerThread 0 #1] AudioSource - Shrinking readable frame index range: before = [0 -> 16816943) , after = [0 -> 0)
warning [AnalyzerThread 0 #1] AudioSource - Read test failed: expected = [0 -> 1) , actual = [0 -> 0)
warning [AnalyzerThread 0 #1] SoundSourceProxy - Failed to read file "file:///home/uk/Music/1st/*****.mp3" with provider "FFmpeg"

Things are seriously broken. Unfortunately no crashes yet, which could have helped to identify the root cause timely. Now someone has to start bisecting the repo.

ronso0 commented 1 year ago

@uklotzde If this is the log from loading a track to a deck, and you use Deere for example, I'm pretty sure all those requests are to be expected.

because I don't have any spinnies with cover art enabled

If you use Deere for example the spinnies are instantiated even if you disabled the in the skin settings. Same for DlgCoverArtFullsize which is created for both spinnies and WCoverArt and connected to CoverArtCache signals. All those widgets request a cover when a track is loaded to a player.

uklotzde commented 1 year ago

The failures of FFmpeg are unrelated and caused by a recent regression: #11923

uklotzde commented 1 year ago

Adding some conditionals in DlgCoverArtFullSize and WSpinnyBase fixes the excessive loading and everything still seems to work as expected. But I can't proove why, don't expect a PR.

daschuer commented 1 year ago

Thi fix can be found here: https://github.com/mixxxdj/mixxx/pull/12103