mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-22 00:06:36 +00:00
ext/alsa/gstalsa.c: disable some of the debugging code for now. Writing debugging to a buffer is broken in current al...
Original commit message from CVS: * ext/alsa/gstalsa.c: (gst_alsa_open_audio), (gst_alsa_sw_params_dump), (gst_alsa_hw_params_dump), (gst_alsa_close_audio): disable some of the debugging code for now. Writing debugging to a buffer is broken in current alsalib releases.
This commit is contained in:
parent
ddd5cad689
commit
f4bbdba991
2 changed files with 24 additions and 1 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2004-07-15 Benjamin Otte <otte@gnome.org>
|
||||||
|
|
||||||
|
* ext/alsa/gstalsa.c: (gst_alsa_open_audio),
|
||||||
|
(gst_alsa_sw_params_dump), (gst_alsa_hw_params_dump),
|
||||||
|
(gst_alsa_close_audio):
|
||||||
|
disable some of the debugging code for now. Writing debugging to a
|
||||||
|
buffer is broken in current alsalib releases.
|
||||||
|
|
||||||
2004-07-12 Benjamin Otte <otte@gnome.org>
|
2004-07-12 Benjamin Otte <otte@gnome.org>
|
||||||
|
|
||||||
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_buffer):
|
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_buffer):
|
||||||
|
|
|
@ -31,9 +31,13 @@
|
||||||
#include "gstalsaclock.h"
|
#include "gstalsaclock.h"
|
||||||
#include "gstalsamixer.h"
|
#include "gstalsamixer.h"
|
||||||
|
|
||||||
|
/* all this ifdef'ed stuff causes segfaults because of alsa bug 389, see
|
||||||
|
* https://bugtrack.alsa-project.org/alsa-bug/bug_view_page.php?bug_id=0000389
|
||||||
|
*/
|
||||||
|
#ifdef ALSA_BUG_389_FIXED
|
||||||
#define ALSA_DEBUG_FLUSH(this) G_STMT_START{ \
|
#define ALSA_DEBUG_FLUSH(this) G_STMT_START{ \
|
||||||
gchar *__str; \
|
gchar *__str; \
|
||||||
ssize_t __size; \
|
size_t __size; \
|
||||||
__size = snd_output_buffer_string (this->out, &__str); \
|
__size = snd_output_buffer_string (this->out, &__str); \
|
||||||
if (__size > 0) { \
|
if (__size > 0) { \
|
||||||
GST_DEBUG_OBJECT (this, "%*s", __size, __str); \
|
GST_DEBUG_OBJECT (this, "%*s", __size, __str); \
|
||||||
|
@ -41,6 +45,7 @@
|
||||||
GST_ERROR_OBJECT (this, "error flushing output buffer"); \
|
GST_ERROR_OBJECT (this, "error flushing output buffer"); \
|
||||||
} \
|
} \
|
||||||
}G_STMT_END
|
}G_STMT_END
|
||||||
|
#endif
|
||||||
|
|
||||||
/* GObject functions */
|
/* GObject functions */
|
||||||
static void gst_alsa_class_init (gpointer g_class, gpointer class_data);
|
static void gst_alsa_class_init (gpointer g_class, gpointer class_data);
|
||||||
|
@ -1299,8 +1304,10 @@ gst_alsa_open_audio (GstAlsa * this)
|
||||||
|
|
||||||
GST_INFO ("Opening alsa device \"%s\"...", this->device);
|
GST_INFO ("Opening alsa device \"%s\"...", this->device);
|
||||||
|
|
||||||
|
#ifdef ALSA_BUG_389_FIXED
|
||||||
ERROR_CHECK (snd_output_buffer_open (&this->out),
|
ERROR_CHECK (snd_output_buffer_open (&this->out),
|
||||||
"error opening log output: %s");
|
"error opening log output: %s");
|
||||||
|
#endif
|
||||||
|
|
||||||
if ((ret = snd_pcm_open (&this->handle, this->device,
|
if ((ret = snd_pcm_open (&this->handle, this->device,
|
||||||
GST_ALSA_GET_CLASS (this)->stream, SND_PCM_NONBLOCK)) < 0) {
|
GST_ALSA_GET_CLASS (this)->stream, SND_PCM_NONBLOCK)) < 0) {
|
||||||
|
@ -1345,15 +1352,19 @@ gst_alsa_open_audio (GstAlsa * this)
|
||||||
void
|
void
|
||||||
gst_alsa_sw_params_dump (GstAlsa * this, snd_pcm_sw_params_t * sw_params)
|
gst_alsa_sw_params_dump (GstAlsa * this, snd_pcm_sw_params_t * sw_params)
|
||||||
{
|
{
|
||||||
|
#ifdef ALSA_BUG_389_FIXED
|
||||||
snd_pcm_sw_params_dump (sw_params, this->out);
|
snd_pcm_sw_params_dump (sw_params, this->out);
|
||||||
ALSA_DEBUG_FLUSH (this);
|
ALSA_DEBUG_FLUSH (this);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gst_alsa_hw_params_dump (GstAlsa * this, snd_pcm_hw_params_t * hw_params)
|
gst_alsa_hw_params_dump (GstAlsa * this, snd_pcm_hw_params_t * hw_params)
|
||||||
{
|
{
|
||||||
|
#ifdef ALSA_BUG_389_FIXED
|
||||||
snd_pcm_hw_params_dump (hw_params, this->out);
|
snd_pcm_hw_params_dump (hw_params, this->out);
|
||||||
ALSA_DEBUG_FLUSH (this);
|
ALSA_DEBUG_FLUSH (this);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if someone finds an easy way to merge this with _set_hw_params, go ahead */
|
/* if someone finds an easy way to merge this with _set_hw_params, go ahead */
|
||||||
|
@ -1611,7 +1622,9 @@ gst_alsa_stop_audio (GstAlsa * this)
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_alsa_close_audio (GstAlsa * this)
|
gst_alsa_close_audio (GstAlsa * this)
|
||||||
{
|
{
|
||||||
|
#ifdef ALSA_BUG_389_FIXED
|
||||||
gint err;
|
gint err;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* if there's no pads, we never open. So we don't close either. */
|
/* if there's no pads, we never open. So we don't close either. */
|
||||||
if (!gst_element_get_pad_list (GST_ELEMENT (this)))
|
if (!gst_element_get_pad_list (GST_ELEMENT (this)))
|
||||||
|
@ -1620,11 +1633,13 @@ gst_alsa_close_audio (GstAlsa * this)
|
||||||
g_return_val_if_fail (this != NULL, FALSE);
|
g_return_val_if_fail (this != NULL, FALSE);
|
||||||
g_return_val_if_fail (this->handle != NULL, FALSE);
|
g_return_val_if_fail (this->handle != NULL, FALSE);
|
||||||
|
|
||||||
|
#ifdef ALSA_BUG_389_FIXED
|
||||||
ALSA_DEBUG_FLUSH (this);
|
ALSA_DEBUG_FLUSH (this);
|
||||||
err = snd_output_close (this->out);
|
err = snd_output_close (this->out);
|
||||||
if (err != 0)
|
if (err != 0)
|
||||||
GST_ERROR_OBJECT (this, "failed to close debugging output: %s",
|
GST_ERROR_OBJECT (this, "failed to close debugging output: %s",
|
||||||
snd_strerror (err));
|
snd_strerror (err));
|
||||||
|
#endif
|
||||||
ERROR_CHECK (snd_pcm_close (this->handle), "Error closing device: %s");
|
ERROR_CHECK (snd_pcm_close (this->handle), "Error closing device: %s");
|
||||||
|
|
||||||
this->handle = NULL;
|
this->handle = NULL;
|
||||||
|
|
Loading…
Reference in a new issue