[Bug 690197] alsasrc: gets stuck in infinite loop if usb audio device is disconnected while being used

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Dec 17 12:55:14 PST 2012


https://bugzilla.gnome.org/show_bug.cgi?id=690197
  GStreamer | gst-plugins-base | git

Tim-Philipp Müller <t.i.m> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|HEAD                        |1.1.1
            Summary|pipeline alsasrc device=<>  |alsasrc: gets stuck in
                   |! alsasink leads to         |infinite loop if usb audio
                   |infinite loop               |device is disconnected
                   |                            |while being used

--- Comment #7 from Tim-Philipp Müller <t.i.m at zen.co.uk> 2012-12-17 20:55:07 UTC ---
commit df6031f7c656489f665d01fb629315cf50f09536
Author: Tim-Philipp Müller <tim at centricular.net>
Date:   Mon Dec 17 20:32:52 2012 +0000

    alsasrc: return negative value on read error

    Otherwise baseaudiosrc won't go into the error code path.

    https://bugzilla.gnome.org/show_bug.cgi?id=690197

commit 68f366a8d37e5fb71106869b41911a749382143c
Author: Tim-Philipp Müller <tim at centricular.net>
Date:   Mon Dec 17 20:28:12 2012 +0000

    audiobasesrc: bail out if subclass posts an error

    Use new ringbuffer ERROR state to make all the various
    threads bail out correctly when the subclass posts an
    error. It's a bit iffy to communicate this properly
    between the different bits of code.

    https://bugzilla.gnome.org/show_bug.cgi?id=690197

commit 4f49c7a33ba32cf1b30c4023570b241c24babd1a
Author: Tim-Philipp Müller <tim at centricular.net>
Date:   Mon Dec 17 20:26:33 2012 +0000

    audioringbuffer: add GST_AUDIO_RING_BUFFER_STATE_ERROR state

    API: GST_AUDIO_RING_BUFFER_STATE_ERROR

    https://bugzilla.gnome.org/show_bug.cgi?id=690197


Not trivial to backport to 0.10 I'm afraid, since there's no
GstElementClass::post_message function there. You'd have to take the code from
the == MESSAGE ERROR block in post_message, and put it before/after the
GST_ELEMENT_ERROR call in device_disconnected: in alsasrc or so. Good luck!

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list