#include "pulsesrc.h"
#include "pulseutil.h"
-#ifdef __TIZEN__
-#ifdef PCM_DUMP_ENABLE
+#if defined(__TIZEN__) && defined(PCM_DUMP_ENABLE)
#include <vconf.h>
#endif
-#endif
GST_DEBUG_CATEGORY_EXTERN (pulse_debug);
#define GST_CAT_DEFAULT pulse_debug
PROP_LAST
};
-#ifdef __TIZEN__
-#ifdef PCM_DUMP_ENABLE
+#if defined(__TIZEN__) && defined(PCM_DUMP_ENABLE)
#define GST_PULSESRC_DUMP_VCONF_KEY "memory/private/sound/pcm_dump"
#define GST_PULSESRC_DUMP_OUTPUT_PATH_PREFIX "/tmp/dump_pulsesrc_out"
#define GST_PULSESRC_DUMP_OUTPUT_FLAG 0x00200000U
#endif
-#endif
static void gst_pulsesrc_destroy_stream (GstPulseSrc * pulsesrc);
static void gst_pulsesrc_destroy_context (GstPulseSrc * pulsesrc);
static GstClockTime gst_pulsesrc_get_time (GstClock * clock, GstPulseSrc * src);
-static GstStaticPadTemplate pad_template = GST_STATIC_PAD_TEMPLATE ("src",
- GST_PAD_SRC,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS (_PULSE_CAPS_PCM)
- );
-
#define gst_pulsesrc_parent_class parent_class
G_DEFINE_TYPE_WITH_CODE (GstPulseSrc, gst_pulsesrc, GST_TYPE_AUDIO_SRC,
G_IMPLEMENT_INTERFACE (GST_TYPE_STREAM_VOLUME, NULL));
GstAudioSrcClass *gstaudiosrc_class = GST_AUDIO_SRC_CLASS (klass);
GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass);
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
+ GstCaps *caps;
gchar *clientname;
gobject_class->finalize = gst_pulsesrc_finalize;
"PulseAudio Audio Source",
"Source/Audio",
"Captures audio from a PulseAudio server", "Lennart Poettering");
- gst_element_class_add_static_pad_template (gstelement_class, &pad_template);
+
+ caps = gst_pulse_fix_pcm_caps (gst_caps_from_string (_PULSE_CAPS_PCM));
+ gst_element_class_add_pad_template (gstelement_class,
+ gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, caps));
+ gst_caps_unref (caps);
/**
* GstPulseSrc:volume:
#endif /* __TIZEN__ */
}
-#ifdef __TIZEN__
-#ifdef PCM_DUMP_ENABLE
+#if defined(__TIZEN__) && defined(PCM_DUMP_ENABLE)
static GstPadProbeReturn
gst_pulsesrc_pad_dump_probe (GstPad *pad, GstPadProbeInfo * info, gpointer data)
{
return GST_PAD_PROBE_OK;
}
#endif
-#endif
static void
gst_pulsesrc_init (GstPulseSrc * pulsesrc)
{
-#ifdef __TIZEN__
-#ifdef PCM_DUMP_ENABLE
+#if defined(__TIZEN__) && defined(PCM_DUMP_ENABLE)
GstPad *srcpad = NULL;
int vconf_dump = 0;
#endif
-#endif
pulsesrc->server = NULL;
pulsesrc->device = NULL;
pulsesrc->client_name = gst_pulse_client_name ();
if (!pulsesrc->mainloop)
goto no_mainloop;
- if (!pulsesrc->source_output_idx)
+ if (pulsesrc->source_output_idx == PA_INVALID_INDEX)
goto no_index;
pa_threaded_mainloop_lock (pulsesrc->mainloop);
if (!pulsesrc->mainloop)
goto no_mainloop;
- if (!pulsesrc->source_output_idx)
+ if (pulsesrc->source_output_idx == PA_INVALID_INDEX)
goto no_index;
pa_threaded_mainloop_lock (pulsesrc->mainloop);
if (!pulsesrc->mainloop)
goto no_mainloop;
- if (!pulsesrc->source_output_idx)
+ if (pulsesrc->source_output_idx == PA_INVALID_INDEX)
goto no_index;
pa_threaded_mainloop_lock (pulsesrc->mainloop);
pa_threaded_mainloop_lock (pulsesrc->mainloop);
gst_pulsesrc_destroy_context (pulsesrc);
pa_threaded_mainloop_unlock (pulsesrc->mainloop);
-#ifdef __TIZEN__
-#ifdef PCM_DUMP_ENABLE
+#if defined(__TIZEN__) && defined(PCM_DUMP_ENABLE)
if (pulsesrc->dump_fd_output) {
fclose(pulsesrc->dump_fd_output);
pulsesrc->dump_fd_output = NULL;
}
#endif
-#endif
return TRUE;
}
gst_pulsesrc_set_stream_volume (pulsesrc, pulsesrc->volume);
pulsesrc->volume_set = FALSE;
}
-#ifdef __TIZEN__
-#ifdef PCM_DUMP_ENABLE
+#if defined(__TIZEN__) && defined(PCM_DUMP_ENABLE)
if (pulsesrc->need_dump_output) {
char *suffix , *dump_path;
GDateTime *time = NULL;
g_free(dump_path);
g_date_time_unref(time);
}
-#endif /* PCM_DUMP_ENABLE */
#endif
/* get the actual buffering properties now */