| Summary: | Handing phonon a mp3 url that doesn't exist does not result in stateChanged() called with an ErrorState | ||
|---|---|---|---|
| Product: | [Frameworks and Libraries] Phonon | Reporter: | Leo Franchi <lfranchi> |
| Component: | general | Assignee: | Harald Sitter <sitter> |
| Status: | CONFIRMED --- | ||
| Severity: | normal | CC: | casian, cfeck, martin.sandsmark, myriam, romain.perier |
| Priority: | NOR | ||
| Version First Reported In: | 4.6-git | ||
| Target Milestone: | 4.5.1 | ||
| Platform: | Compiled Sources | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
patch for kde-runtime
patch for phonon-vlc to prevent hanging patch for demo player error message patch for phonon (try to stop playback on stream error) |
||
|
Description
Leo Franchi
2011-11-03 22:56:41 UTC
This bug is probably the cause for knotify4 not closing Phonon players. It waits for the signal to know when the sound is either finished, or couldn't play. I investigated this today and I came up with a possible solution. Tested with the demo player and phonon-vlc only, so I don't know if it works in all cases and I don't know if it breaks something else (it should not, though). There's a patch for kde-runtime/phonon, one for phonon, one for phonon-vlc and one for the demo player. I'll attach them for review and additional testing. I will also try to do more tests tommorow. KIOMediaStream wasn't aware of 404 error pages, and was treating them like data for the stream. The KIO Transfer Job doesn't return an error, it only indicates that the data is actually an error page. After fixing this I found that phonon-vlc was hanging and waiting to read data from the "stream", because of probably bad timing for a wait condition. Put additional checks there. But after that, it was still trying to read from the broken stream about 10 times or something, before finally giving up. And it was also transitioning through Playing state, which was stupid. Put a stop() call when Phonon encountered a stream error to prevent this from happening. The transition to an error state doesn't show up in the debug logs, because it doesn't get through the backend. But it reaches the application. Also put an error message for the demo player when it encounters an error state, so there's some feedback from the error. Created attachment 65240 [details]
patch for kde-runtime
Created attachment 65241 [details]
patch for phonon-vlc to prevent hanging
Created attachment 65242 [details]
patch for demo player error message
Created attachment 65243 [details]
patch for phonon (try to stop playback on stream error)
Thank you for the bug report. As this report hasn't seen any changes in 5 years or more, we ask if you can please confirm that the issue still persists. If this bug is no longer persisting or relevant please change the status to resolved. |