All pastes #21972 Raw Edit

ensonic

public c v1 · immutable
#21972 ·published 2005-09-02 20:56 UTC
rendered paste body
/* * gcc -Wall -g `pkg-config gstreamer-0.9 --cflags --libs` states.c -o states */ #include <stdio.h>#include <gst/gst.h>#define SINK_NAME "alsasink"#define SRC_NAME "sinesrc"int main(int argc, char **argv) {  GstElement *bin;  /* elements used in pipeline */  GstElement *sink;	GstElement *src;  GstClock *clock;  GstClockID clock_id;  GstClockReturn wait_ret;    /* init gstreamer */  gst_init(&argc, &argv);  g_log_set_always_fatal(G_LOG_LEVEL_WARNING);    /* create a new bin to hold the elements */  bin = gst_pipeline_new ("song");  clock = gst_pipeline_get_clock (GST_PIPELINE (bin));   /* make a sink */  if(!(sink = gst_element_factory_make (SINK_NAME, "sink"))) {    fprintf(stderr,"Can't create element \""SINK_NAME"\"\n");exit (-1);  }    /* make sources */  if(!(src = gst_element_factory_make (SRC_NAME, "src"))) {    fprintf(stderr,"Can't create element \""SRC_NAME"\"\n");exit (-1);  }	g_object_set(src,"freq",440,NULL);        /* add objects to the main bin */  gst_bin_add_many (GST_BIN (bin), src, sink, NULL);    /* link elements */  if(!gst_element_link_many (src, sink, NULL)) {    fprintf(stderr,"Can't link elements\n");exit (-1);  }   clock_id = gst_clock_new_single_shot_id (clock, gst_clock_get_time (clock)+(5 * GST_SECOND));    /* start playing */  if(gst_element_set_state (bin, GST_STATE_PLAYING)==GST_STATE_CHANGE_FAILURE) {    fprintf(stderr,"Can't start playing\n");exit(-1);  }	/* wait */	puts("play everything");	if ((wait_ret = gst_clock_id_wait (clock_id, NULL)) != GST_CLOCK_OK) {      GST_WARNING ("clock_id_wait returned: %d", wait_ret);  }	  /* stop the pipeline */  gst_element_set_state (bin, GST_STATE_NULL);    /* we don't need a reference to these objects anymore */  g_object_unref (G_OBJECT (clock));  g_object_unref (G_OBJECT (bin));  exit (0);}