#include <gst/gst.h> int main(int argc, char *argv[]) {   GstElement *pipeline, *source, *sink;   GstBus *bus;   GstMessage *msg;   GstStateChangeReturn ret;      gst_init (&argc, &argv);      source = gst_element_factory_make ("videotestsrc", "source");   sink = gst_element_factory_make ("autovideosink", "sink");      pipeline = gst_pipeline_new ("test-pipeline");   if (!pipeline || !source || !sink) {     g_printerr ("Not all elements could be created.\n");     return -1;   }      gst_bin_add_many (GST_BIN (pipeline), source, sink, NULL);   if (gst_element_link (source, sink) != TRUE) {     g_printerr ("Elements could not be linked.\n");     gst_object_unref (pipeline);     return -1;   }    GStreamer笔记一: GStreamer Concepts笔记主要参照GStreamer官方tutorial,之前的一篇文章里最后一个例子写的是一个通过uri自动建立Pipeline的代码。这里主要内容是关于实例化每个元素并连接起来来手动建立Pipeline。
  手动建立Pipeline基本代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 
  | #include <gst/gst.h> int main(int argc, char *argv[]) {   GstElement *pipeline, *source, *sink;   GstBus *bus;   GstMessage *msg;   GstStateChangeReturn ret;      gst_init (&argc, &argv);      source = gst_element_factory_make ("videotestsrc", "source");   sink = gst_element_factory_make ("autovideosink", "sink");      pipeline = gst_pipeline_new ("test-pipeline");   if (!pipeline || !source || !sink) {     g_printerr ("Not all elements could be created.\n");     return -1;   }      gst_bin_add_many (GST_BIN (pipeline), source, sink, NULL);   if (gst_element_link (source, sink) != TRUE) {     g_printerr ("Elements could not be linked.\n");     gst_object_unref (pipeline);     return -1;   }    
  |  
 
  |