Bonjour,

J'essaie d'écrire une application utilisant giostreamsink (un plugin de Gstreamer) afin d'écrire un flux audio dans un bout de mémoire partagée et de pouvoir lire ce flux dans une application externe à Gstreamer.
J'ai lu les cours disponibles sur le site de Gstreamer visant à enseigner l'écriture d'applications et de plugins Gstreamer mais je bloque sur un point.

Dans un premier temps, je voudrais simplement essayer de compiler le bout de code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
#include <gst/gst.h>
#include <gio/gio.h>
 
int main(int arg, char * argv)
{
	GstElement *sink;
	GMemoryOuputStream *stream;
	guint8 *out_data;
 
	stream = G_MEMORY_OUTPUT_STREAM (g_memory_output_stream_new (NULL, 0,
		  (GReallocFunc) g_realloc, (GDestroyNotify) g_free));
	sink = gst_element_factory_make ("giostreamsink", "sink");
	g_object_set (G_OBJECT (sink), "stream", stream, NULL);
 
	out_data = g_memory_ouput_stream_get_data (G_MEMORY_OUTPUT_STREAM (stream));
}
issu tout simplement du seul exemple que j'ai pu trouver se servant de giostreamsink.
Je tente donc de la compiler :
gcc -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2/ -o testo test.c
Et... Ça ne fonctionne pas :
test.c: In function ‘int main(int, char**)’:
test.c:7: error: ‘GMemoryOuputStream’ was not declared in this scope
test.c:7: error: ‘stream’ was not declared in this scope
test.c:15: error: ‘g_memory_ouput_stream_get_data’ was not declared in this scope
Ce qui est étrange, puisque les librairies nécessaires sont incluses.
Quelqu'un a une idée ?

Merci d'avance.