$(GST_CFLAGS)
gnunet_helper_audio_playback_SOURCES = \
- gnunet_gst_test.c gnunet_gst.c
+ gnunet-helper-audio-playback-gst.c
gnunet_helper_audio_playback_LDADD = \
$(top_builddir)/src/util/libgnunetutil.la \
$(GST_LIBS) \
/**
* Tokenizer for the data we get from stdin
*/
-struct GNUNET_SERVER_MessageStreamTokenizer *stdin_mst;
+struct GNUNET_MessageStreamTokenizer *stdin_mst;
/**
* Main pipeline.
static void
sink_child_added (GstChildProxy *child_proxy,
- GObject *object,
+ GObject *object,
gchar *name,
gpointer user_data)
{
if (GST_IS_AUDIO_BASE_SRC (object))
g_object_set (object,
- "buffer-time", (gint64) BUFFER_TIME,
+ "buffer-time", (gint64) BUFFER_TIME,
"latency-time", (gint64) LATENCY_TIME,
NULL);
}
static void
-ogg_pad_added (GstElement *element,
+ogg_pad_added (GstElement *element,
GstPad *pad,
gpointer data)
{
static gboolean
bus_call (GstBus *bus, GstMessage *msg, gpointer data)
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Bus message\n");
switch (GST_MESSAGE_TYPE (msg))
{
{
gchar *debug;
GError *error;
-
+
gst_message_parse_error (msg, &error, &debug);
g_free (debug);
-
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Error: %s\n",
+
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Error: %s\n",
error->message);
g_error_free (error);
-
+
quit ();
break;
}
switch (flow)
{
case GST_FLOW_OK:
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Fed %u bytes to the pipeline\n",
(unsigned int) b_len);
break;
break;
case GST_FLOW_EOS:
/* end of stream */
- GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"EOS\n");
break;
default:
*/
static int
stdin_receiver (void *cls,
- void *client,
const struct GNUNET_MessageHeader *msg)
{
struct AudioMessage *audio;
uint64_t toff;
typedef void (*SignalHandlerPointer) (int);
-
+
SignalHandlerPointer inthandler, termhandler;
#ifdef DEBUG_READ_PURE_OGG
int read_pure_ogg = getenv ("GNUNET_READ_PURE_OGG") ? 1 : 0;
#endif
- inthandler = signal (SIGINT,
+ inthandler = signal (SIGINT,
&signalhandler);
- termhandler = signal (SIGTERM,
+ termhandler = signal (SIGTERM,
&signalhandler);
-
+
#ifdef WINDOWS
setmode (0, _O_BINARY);
#endif
-
+
/* Initialisation */
gst_init (&argc, &argv);
GNUNET_log_setup ("gnunet-helper-audio-playback-gst",
"WARNING",
NULL));
-
+
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Audio sink starts\n");
-
- stdin_mst = GNUNET_SERVER_mst_create (&stdin_receiver,
- NULL);
-
+
+ stdin_mst = GNUNET_MST_create (&stdin_receiver,
+ NULL);
+
/* Create gstreamer elements */
pipeline = gst_pipeline_new ("audio-player");
source = gst_element_factory_make ("appsrc", "audio-input");
return -1;
}
- g_signal_connect (sink,
+ g_signal_connect (sink,
"child-added",
- G_CALLBACK (sink_child_added),
+ G_CALLBACK (sink_child_added),
NULL);
- g_signal_connect (demuxer,
+ g_signal_connect (demuxer,
"pad-added",
- G_CALLBACK (ogg_pad_added),
+ G_CALLBACK (ogg_pad_added),
decoder);
/* Keep a reference to it, we operate on it */
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Received %d bytes of audio data (total: %llu)\n",
(int) ret,
- toff);
+ (unsigned long long) toff);
if (0 == ret)
break;
#ifdef DEBUG_READ_PURE_OGG
}
else
#endif
- GNUNET_SERVER_mst_receive (stdin_mst, NULL,
- readbuf, ret,
- GNUNET_NO, GNUNET_NO);
+ GNUNET_MST_from_buffer (stdin_mst,
+ readbuf,
+ ret,
+ GNUNET_NO,
+ GNUNET_NO);
}
- GNUNET_SERVER_mst_destroy (stdin_mst);
+ GNUNET_MST_destroy (stdin_mst);
signal (SIGINT, inthandler);
signal (SIGINT, termhandler);
- GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Returned, stopping playback\n");
quit ();
- GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Deleting pipeline\n");
gst_object_unref (GST_OBJECT (source));
source = NULL;
{
if (-1 == ret)
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Failed to write %u bytes at offset %u (total %u) in phase %d: %s\n",
- (unsigned int) to_send - offset, (unsigned int) offset,
- (unsigned int) (to_send + offset), phase, strerror (errno));
+ "Failed to write %u bytes at offset %u (total %u) in phase %d: %s\n",
+ (unsigned int) (to_send - offset),
+ (unsigned int) offset,
+ (unsigned int) (to_send + offset),
+ phase,
+ strerror (errno));
abort_send = 1;
break;
}
*/
static struct GNUNET_CONFIGURATION_Handle *cfg;
+
void
dump_buffer(unsigned n, const unsigned char* buf)
{
/***
* load gnunet configuration
*/
- void
+void
gg_load_configuration(GNUNET_gstData * d)
{
char *audiobackend_string;
cfg = GNUNET_CONFIGURATION_create();
GNUNET_CONFIGURATION_load(cfg, "mediahelper.conf");
- char *section = "MEDIAHELPER";
-
GNUNET_CONFIGURATION_get_value_string(cfg, "MEDIAHELPER", "JACK_PP_IN", &d->jack_pp_in);
GNUNET_CONFIGURATION_get_value_string(cfg, "MEDIAHELPER", "JACK_PP_OUT", &d->jack_pp_out);
// printf("abstring: %s \n", audiobackend_string);
- if ( audiobackend_string == "AUTO" )
+ if (0 == strcasecmp (audiobackend_string, "AUTO"))
{
d->audiobackend = AUTO;
- } else if ( audiobackend_string = "JACK" )
+ } else if (0 == strcasecmp (audiobackend_string, "JACK"))
{
d->audiobackend = JACK;
- } else if ( audiobackend_string = "ALSA" )
+ } else if (0 == strcasecmp (audiobackend_string, "ALSA"))
{
d->audiobackend = ALSA;
- } else if ( audiobackend_string = "FAKE" )
+ } else if (0 == strcasecmp (audiobackend_string, "FAKE"))
{
d->audiobackend = FAKE;
- } else if ( audiobackend_string = "TEST" )
+ } else if (0 == strcasecmp (audiobackend_string, "TEST"))
{
d->audiobackend = TEST;
} else
extern GstFlowReturn
on_appsink_new_sample (GstElement * element, GNUNET_gstData * d)
{
- static unsigned long long toff;
-
//size of message including gnunet header
size_t msg_size;
GstCaps *s_caps;
char *caps_str;
*/
- (d->audio_message)->header.size = htons ((uint16_t) msg_size);
if (gst_app_sink_is_eos(GST_APP_SINK(element)))
return GST_FLOW_OK;
// copy the data into audio_message
GNUNET_memcpy (((char *) &(d->audio_message)[1]), map.data, len);
-/*
- toff += msg_size;
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Sending %u bytes of audio data (total: %llu)\n",
- (unsigned int) msg_size,
- toff);
-*/
+ (d->audio_message)->header.size = htons ((uint16_t) msg_size);
if (d->pure_ogg)
// write the audio_message without the gnunet headers
write_data ((const char *) &(d->audio_message)[1], len);
g_object_set (object, "buffer-time", (gint64) BUFFER_TIME, "latency-time", (gint64) LATENCY_TIME, NULL);
}
+
GstElement *
get_pipeline(GstElement *element)
{
GstPipeline *p;
- p = gst_object_get_parent(element);
+ p = GST_PIPELINE (gst_object_get_parent(GST_OBJECT (element)));
- return p;
+ return GST_ELEMENT (p);
}
static void
gst_object_unref (sinkpad);
}
+
int
gnunet_read (GNUNET_gstData * d)
{
else
{
//#endif
- GNUNET_SERVER_mst_receive (d->stdin_mst, NULL,
- readbuf, ret,
- GNUNET_NO, GNUNET_NO);
+ GNUNET_MST_from_buffer (d->stdin_mst,
+ readbuf,
+ ret,
+ GNUNET_NO,
+ GNUNET_NO);
}
+ return 0;
}
/**
*/
static int
stdin_receiver (void *cls,
- void *client,
const struct GNUNET_MessageHeader *msg)
{
struct AudioMessage *audio;
size_t b_len;
+
printf("stdin receiver \n ");
- dump_buffer(sizeof(msg), msg);
+ dump_buffer (sizeof(msg),
+ (const unsigned char *) msg);
switch (ntohs (msg->type))
{
//d->audio_message.header.type = htons (GNUNET_MESSAGE_TYPE_CONVERSATION_AUDIO);
- d->stdin_mst = GNUNET_SERVER_mst_create (&stdin_receiver, d);
+ d->stdin_mst = GNUNET_MST_create (&stdin_receiver, d);
if ( d->stdin_mst == NULL)
printf("stdin_mst = NULL");
{
GstBin *bin;
GstPad *srcpad, *sinkpad, *srcghostpad, *sinkghostpad;
- GstCaps *caps, *rtpcaps;
+ GstCaps *rtpcaps;
GstElement *encoder, *muxer, *decoder, *demuxer, *jitterbuffer, *rtpcapsfilter;
if ( d->usertp == TRUE )
return bin;
}
- extern GstBin *
+
+
+extern GstBin *
get_audiobin(GNUNET_gstData *d , int type)
{
GstBin *bin;
// things
struct AudioMessage *audio_message;
- struct GNUNET_SERVER_MessageStreamTokenizer *stdin_mst;
+ struct GNUNET_MessageStreamTokenizer *stdin_mst;
GstElement *appsrc;
GstElement *appsink;
//settings
Boston, MA 02110-1301, USA.
*/
/**
- * @file conversation/gnunet_gst.c
+ * @file conversation/gnunet_gst_test.c
* @brief FIXME
* @author Hark
*/
main (int argc, char *argv[])
{
struct GNUNET_gstData *gst;
- GstBus *bus;
- GstMessage *msg;
+ // GstBus *bus;
GstElement *gnunetsrc, *gnunetsink, *source, *sink, *encoder, *decoder;
}
g_print ("Returned, stopping playback\n");
- gst_object_unref (bus);
+ // gst_object_unref (bus);
gst_element_set_state (GST_ELEMENT(gst->pipeline), GST_STATE_NULL);
gst_object_unref (gst->pipeline);