rendered paste body#include <glib.h>
#include <gst/gst.h>
int
main (int argc,
char *argv[])
{
GstElement *bin, *rtpbin, *encoder, *payloader;
GMainLoop *loop;
gst_init (&argc, &argv);
loop = g_main_loop_new(NULL, FALSE);
bin = gst_pipeline_new("pipe");
fprintf(stderr,"bin: %p\n",bin);
if (argc != 4)
{
printf("Usage : gsmsend [rtcplocalport-1] [destaddr:port] <ogg file > \n");
return 0;
}
int port = atoi (argv[1]);
char *addr = argv[2];
// first we create our rtpbin object
rtpbin = gst_element_factory_make("rtpbin", "rtpbin");
fprintf(stderr,"rtpbin: %p\n",rtpbin);
g_object_set(G_OBJECT(rtpbin), "destinations", addr, NULL);
g_object_set(G_OBJECT(rtpbin), "rtcp-support", TRUE, NULL);
g_object_set(G_OBJECT(rtpbin), "localport", port, NULL);
// then our encoder/payloader
encoder = gst_element_factory_make("vorbisenc", "vorbisenc");
payloader = gst_element_factory_make("rtpvorbispay", "rtpvorbispay");
// add both to the piepline and link them
gst_bin_add_many(GST_BIN(bin), rtpbin, encoder, payloader, NULL);
gst_element_link_pads(encoder, "src", payloader, "sink");
gst_element_link_pads(payloader, "src", rtpbin, "sink%d");
// our videotestsrc and link it to the encoder
GstElement *source = gst_element_factory_make ("filesrc", "file-source");
g_object_set (G_OBJECT (source), "location", argv[3], NULL);
gst_bin_add_many(GST_BIN(bin), source, NULL);
gst_element_link_pads(source, "src", encoder, "sink");
// let's start playing
gst_element_set_state (bin, GST_STATE_PLAYING);
printf (" \n============================================THE tube IS streaming ==================================\n");
g_main_loop_run(loop);
return 0;
}