[Gstreamer-bugs] [Bug 142501] New: - Esd lock with threaded gstreamer.

bugzilla-daemon at bugzilla.gnome.org bugzilla-daemon at bugzilla.gnome.org
Thu May 13 14:17:27 PDT 2004


http://bugzilla.gnome.org/show_bug.cgi?id=142501
GStreamer | gstreamer (core) | Ver: HEAD CVS

           Summary: Esd lock with threaded gstreamer.
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-maint at bugzilla.gnome.org
        ReportedBy: nshmyrev at yandex.ru
         QAContact: gstreamer-maint at bugzilla.gnome.org


How to reproduce:

1. Start any esd based application (xmms or xine)

2. Start the test
./test somefile.wav

3. After end of somefile playing, the other esd applications will lock until the
test exit or interrupt.

Why I think, that something strange with gstreamer - because I can't reproduce
problem with non-threaded gst play, for example, gst-launch.


test.c:

#include <stdlib.h>
#include <gst/gst.h>


int
main (int argc, char *argv[])
{
  GstElement *filesrc, *sink, *spider;
  GstElement *thread;

  gst_init (&argc, &argv);

  if (argc != 2) {
    g_print ("usage: %s <filename>\n", argv[0]);
    exit (-1);
  }

  /* create a new thread to hold the elements */
  thread = gst_thread_new ("thread");
  g_assert (thread != NULL);

  /* create a disk reader */
  filesrc = gst_element_factory_make ("filesrc", "disk_source");
  g_assert (filesrc != NULL);
  g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);

  sink = gst_element_factory_make ("esdsink", "play_audio");
  g_assert (sink != NULL);

  spider = gst_element_factory_make ("spider", "spider");
  g_assert (spider != NULL);

  gst_bin_add_many(GST_BIN(thread),filesrc, spider, sink, NULL);
  gst_element_link_many(filesrc, spider, sink, NULL);

  /* make it ready */
  gst_element_set_state (GST_ELEMENT (thread), GST_STATE_READY);
  /* start playing */
  gst_element_set_state (GST_ELEMENT (thread), GST_STATE_PLAYING);

  gst_main ();

  gst_object_unref (GST_OBJECT (thread));

  exit (0);
}

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
You are the QA contact for the bug, or are watching the QA contact.




More information about the Gstreamer-bugs mailing list