multiple problems with the unified engine

Bug #402966 reported by kirillkh
38
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Exaile
Confirmed
Low
Unassigned

Bug Description

I'm seeing two problems with the unified engine. I couldn't reproduce them during a minute-long testing of the normal engine.

1. In alpha3, I get unpredictable playback behavior, when double-clicking a track. It works fine the first time after the player is launched, but the problems start, when I attempt to double-click another song after that. It may play it, may play one of the following files, and may not play at all. Sometimes it continues to play the previous file simultaneously. The following is a console log of alpha3 doing that dance. I've also encountered the 2nd problem below in alpha3 several times.

INFO : Playing file:///asdf/censored1.mp3

(exaile.py:13203): GStreamer-WARNING **: Element Stream0 is not in bin pipeline0

(exaile.py:13203): GStreamer-WARNING **: Name Stream1 is not unique in bin pipeline0, not adding
Traceback (most recent call last):
  File "/usr/lib/exaile/xl/player/engine_unified.py", line 85, in _on_drained
    self.play(tr, user=False)
INFO : Playing file:///asdf/censored2.mp3
  File "/usr/lib/exaile/xl/player/engine_unified.py", line 159, in play
    if not self.link_stream(self.streams[next], track):
  File "/usr/lib/exaile/xl/player/engine_unified.py", line 258, in link_stream
    self.pipe.add(stream)
gst.AddError: Could not add element 'Stream1'

(exaile.py:13203): GStreamer-WARNING **: Element Stream1 is not in bin pipeline0
Traceback (most recent call last):
  File "/usr/lib/exaile/xl/event.py", line 401, in emit
    event.data, *cb.args, **cb.kwargs)
  File "/usr/lib/exaile/xl/player/_base.py", line 53, in _on_track_end
    track['playcount'] = i + 1
TypeError: 'NoneType' object does not support item assignment
INFO : Playing file:///asdf/censored3.mp3

2. In the current bzr version (22.07.2009), the first double-click also works fine, but the second double-click brings up an error dialog with a single OK button. When I click that OK button, exaile hangs and can only be killed with -9. The error messages in that dialog encountered are: "No URI specified to play from" and "Internal data flow error". The console contains the following text:

INFO : Playing file:///asdf/censored1.mp3
INFO : Playing file:///asdf/censored2.mp3

(exaile.py:13256): GStreamer-WARNING **: Element Stream0 is not in bin pipeline0
INFO : Playing file:///asdf/censored3.mp3

(exaile.py:13256): GStreamer-WARNING **: Element Stream1 is not in bin pipeline0

(exaile.py:13256): GStreamer-WARNING **: Element Stream0 is not in bin pipeline0
INFO : Playing file:///censored4.mp3

Which is followed by multiple attemps to play consequent files, interspersed with messages:
    (exaile.py:13256): GStreamer-WARNING **: Element Stream0 is not in bin pipeline0
and
    (exaile.py:13256): GStreamer-WARNING **: Element Stream1 is not in bin pipeline0

In the end, it gets to the first song in the playlist and starts playing it.

Revision history for this message
kirillkh (kirillkh) wrote :

The bzr revision is 2157.

Revision history for this message
reacocard (reacocard) wrote :

the first error should already be fixed in trunk. the second one is the major outstanding issue with unified at the moment, and the main reason that its still marked as unstable. I know why the bug happens, its just a tricky bug I haven't had time to fix fully yet.

Changed in exaile:
assignee: nobody → Aren Olson (reacocard)
importance: Undecided → High
milestone: none → 0.3.1
status: New → Confirmed
Revision history for this message
Nikola Kotur (kotnik) wrote :

I am confirming similar problem in latest trunk (revision 2572).

Here's output from exaile --debug:

DEBUG : Attmepting to play "'Symphony No. 5 in C minor ("Fate"), Op. 67: Allegro' by 'Boston Symphony Orchestra / Seiji Ozawa' from 'The Best of Beethoven'" (xl.player.engine_unified)
INFO : Playing file:///home/kotnik/Audio/Music%20Collection/The%20Best%20of%20Beethoven%20-%20Telarc%20-%20FLAC/04%20-Boston%20Symphony%20Orchestra%20-%20Symphony%20No.%205%20in%20C%20minor%20('Fate'),%20Op.%2067%3B%20Allegro.flac (xl.player.engine_unified)
DEBUG : Setting state on Stream0 <enum GST_STATE_NULL of type GstState> (xl.player.engine_unified)
DEBUG : Setting state on Stream1 <enum GST_STATE_PLAYING of type GstState> (xl.player.engine_unified)
INFO : Attempting to find covers for 'Symphony No. 5 in C minor ("Fate"), Op. 67: Allegro' by 'Boston Symphony Orchestra / Seiji Ozawa' from 'The Best of Beethoven' (xl.cover)
DEBUG : Searching for 1 tracks related to 'Symphony No. 5 in C minor ("Fate"), Op. 67: Allegro' by 'Boston Symphony Orchestra / Seiji Ozawa' from 'The Best of Beethoven' (xl.dynamic)
Traceback (most recent call last):
  File "/usr/local/lib/exaile/xl/event.py", line 440, in emit
    event.data, *cb.args, **cb.kwargs)
  File "/usr/local/lib/exaile/xlgui/main.py", line 1000, in on_playback_start
    self.osd.show(self.player.current)
  File "/usr/local/lib/exaile/xlgui/osd.py", line 224, in show
    self.title.set_markup(text)
TypeError: GtkLabel.set_markup() argument 1 must be string without null bytes, not unicode
DEBUG : Event callback exception caught!
Traceback (most recent call last):
  File "/usr/local/lib/exaile/xl/event.py", line 440, in emit
    event.data, *cb.args, **cb.kwargs)
  File "/usr/local/lib/exaile/xlgui/main.py", line 1000, in on_playback_start
    self.osd.show(self.player.current)
  File "/usr/local/lib/exaile/xlgui/osd.py", line 224, in show
    self.title.set_markup(text)
TypeError: GtkLabel.set_markup() argument 1 must be string without null bytes, not unicode
 (xl.event)

Again, this only happens with unified sound engine.

Revision history for this message
Nikola Kotur (kotnik) wrote :

And also, this shows up in the --debug log:

(exaile.py:16319): GStreamer-WARNING **: Element Stream1 is not in bin pipeline0
DEBUG : Failed to remove stream /GstBin:Stream1 (AudioStream) (xl.player.engine_unified)
INFO : Playing file:///home/kotnik/Audio/Music%20Collection/The%20Best%20of%20Beethoven%20-%20Telarc%20-%20FLAC/07%20-John%20O'Conor%20-%20Piano%20Sonata%20No.%201%20in%20F%20minor,%20Op.%202-1%3B%20Prestissimo.flac (xl.player.engine_unified)
['', '']
['', '']
Traceback (most recent call last):
  File "/usr/local/lib/exaile/xl/player/engine_unified.py", line 113, in on_message
    if not self.current['__length']:
TypeError: 'NoneType' object is unsubscriptable
DEBUG : Attmepting to play "'Christus am Ölberge (Christ on the Mount of Olives), oratorio, Op. 85: Hallelujah' by 'Atlanta Symphony Orchestra / Robert Shaw / Atlanta Symphony Chorus' from 'The Best of Beethoven'" (xl.player.engine_unified)
Traceback (most recent call last):
  File "/usr/local/lib/exaile/xl/player/engine_unified.py", line 113, in on_message
    if not self.current['__length']:
TypeError: 'NoneType' object is unsubscriptable
Traceback (most recent call last):
  File "/usr/local/lib/exaile/xl/player/engine_unified.py", line 113, in on_message
DEBUG : Stream0 drained (xl.player.engine_unified)
    if not self.current['__length']:
TypeError: 'NoneType' object is unsubscriptable

(exaile.py:16319): GStreamer-WARNING **: Element Stream0 is not in bin pipeline0
DEBUG : Failed to remove stream /GstBin:Stream0 (AudioStream) (xl.player.engine_unified)
Traceback (most recent call last):
  File "/usr/local/lib/exaile/xl/player/engine_unified.py", line 113, in on_message
    if not self.current['__length']:
TypeError: 'NoneType' object is unsubscriptable

Revision history for this message
reacocard (reacocard) wrote :

please don't add more data on this. I know its broken, I know why its broken, I just don't know how to fix it yet. fixing superficial issues when the main issue is unadressed is pointless.

reacocard (reacocard)
Changed in exaile:
milestone: 0.3.1 → 0.3.2
reacocard (reacocard)
Changed in exaile:
importance: High → Low
milestone: 0.3.2 → none
assignee: Aren Olson (reacocard) → nobody
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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