GStreamer plug-in installation success/failure issues

Bug #1123410 reported by Michael Schwendt on 2013-02-12
18
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SoundConverter
Undecided
Unassigned

Bug Description

If gstreamer.py install_plugin_cb() fails during reading of tags, because plug-in cannot be found or user aborts the search, the task is still added to the converter TaskQueue. That is because install_plugin_cb() calls done(), which in turn emits an idle callback of finished(), which in turn calls a hook method, such as found_tag_hook for tags_read(), which then adds the file to the converter.add() queue.

As a result, subsequent conversion attempts end up duplicated/conflicting tasks similar to bug #1121297.

Suggested solution: gstreamer.py install_plugin_cb() should end the task differently, so finished() isn't called and e.g. self.error is set accordingly. Or finished() checks self.error if set properly.

Michael Schwendt (mschwendt) wrote :

Removed the patch, because although it worked during normal operation, it didn't prevent successful GStreamer plugin installation from calling TagReader finished() a second time. That lead to bug 1128340 (closed duplicate as to continue here):

  Traceback (most recent call last):
    File "/usr/lib/soundconverter/python/soundconverter/gstreamer.py", line 467, in finished
      dontdelete.remove(self)
  ValueError: list.remove(x): x not in list

The second callback to TagReader finished() in install_plugin_cb() happens due to TagReader and Decoder and others overriding the "finished" method instead of calling Pipeline.finished(). As they replay the pipeline, they don't want to emit the final "finished" yet.

I'll attach a different patch.

Michael Schwendt (mschwendt) wrote :

Combined fixes for GStreamer plug-in installation SUCCESS and FAILURE. Also closes bug 1128332.

summary: - GStreamer plug-in installation failed adds task to converter queue
+ GStreamer plug-in installation success/failure issues
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers