After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 649962 - [gapless] Playcount sometimes is counted twice when gapless playing is activated
[gapless] Playcount sometimes is counted twice when gapless playing is activated
Status: RESOLVED WONTFIX
Product: banshee
Classification: Other
Component: Playback
2.0.0
Other Linux
: Normal normal
: 1.x
Assigned To: Banshee Maintainers
Banshee Maintainers
gnome[unmaintained]
Depends on:
Blocks:
 
 
Reported: 2011-05-11 13:25 UTC by Freddy Neumann
Modified: 2020-03-17 09:20 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Freddy Neumann 2011-05-11 13:25:42 UTC
I have tested playing songs from music library with query "playcount=0 skipcount=0" and recognized that playcount after playing is set to 2 in some cases and set to 1 in most cases. This breaks calculating of Score.


Bashees has logged the double playcounts. 
-------------
[1 Warn  13:57:14.010] [Gapless] EOS signalled while waiting for next track.  This means that Banshee was too slow at calculating what track to play next.  If this happens frequently, please file a bug
-------------

Bunshee runs on an Asus Netbook, 2GB Ram, Ubuntu 10.04.
Comment 1 Freddy Neumann 2011-05-12 17:11:23 UTC
The error results from gapless playback with Playbin2 (gstreamer). The API requires that the about-to-finish callback doesn't return until the next uri has been set. On high CPU load the event handler OnEngineEventChange() in PlayerEngineService.cs failed in some cases. 
 
The EndOfStream event coming from the last played song receives *after* the new song has been started. At this time the incremented_last_played flag is set to false and the new song is incremented in database through a call by IncrementedLastPlayed() within OnEngineEventChange(). Because of length <= 0 the new song is handled as 100% completion...

---------
    public void IncrementLastPlayed ()
    {
        // If Length <= 0 assume 100% completion.
        IncrementLastPlayed (active_engine.Length <= 0
            ? 1.0
            : (double)active_engine.Position / active_engine.Length);
    }
---------


At the end of playing the same song is incremented a second time when the EndOfStream event occurs. That is OK.
Comment 2 Michael Martin-Smucker 2011-06-04 02:55:53 UTC
This sounds like it's related to Bug 621222 and Bug 619970.  This may actually be the root cause for one or both of those bugs.
Comment 3 André Klapper 2020-03-17 09:20:41 UTC
Banshee is not under active development anymore and had its last code changes more than three years ago. Its codebase has been archived.

Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect
reality. Please feel free to reopen this ticket (or rather transfer the project
to GNOME Gitlab, as GNOME Bugzilla is being shut down) if anyone takes the
responsibility for active development again.
See https://gitlab.gnome.org/Infrastructure/Infrastructure/issues/264 for more info.