GStreamer Basic tutorial 学习笔记(二)
错误检测
流程:
bus=gst_element_get_bus(pipeline);msg=gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);GError *err; gchar *debug_info
switch(GST_MESSAGE_TYPE(msg)) {
case GST_MESSAGE_ERROR:
gst_message_parse_error(msg, &err, &debug_info);
//输出错误信息
g_printerr("Error received from element %s: %s\n",
GST_OBJECT_NAME(msg->src), err->message);
g_printerr("Debugging information: %s\n",
debug_info ? debug_info : "none");
g_clear_error(&err);
g_free(debug_info);
break;
case GST_MESSAGE_EOS:
g_print("End-Of-Stream reached.\n");
break;
default:
g_printerr("Unexpected message received.\n");
}
补充说明
pipeline 与 bin:管道是一种特定类型的bin,用来容纳其他元素,可应用于bin的函数就可应用于pipeline。
函数与知识点
-
GstElement *gst_element_factory_make (const gchar * factoryname, const gchar * name)
功能:创建一个由给定元素工厂定义类型的新元素。如果名称为NULL,则该元素将获得一个保证唯一的名称,由元素工厂名称和一个数字组成。如果提供了名称,则将使用提供的名称。参数:
factoryname: 要实例化的具名工厂
name(可选): 新元素的名称,如果为NULL,则自动生成唯一名称返回值: (可转换: 浮动型,可为空):新的
GstElement,如果无法创建元素则返回NULL -
videotestsrc
介绍:videotestsrc元素用于以各种格式生成测试视频数据。可以使用"pattern"属性控制生成的视频测试数据的模式。 默认情况下,videotestsrc将无限生成数据,但如果num-buffers属性非零,则会生成固定数量的视频帧,然后发送EOS信号。说明:测试很有用,真实应用一般不会出现。
-
autovideosink
介绍:autovideosink是一个自动检测适当的视频输出的视频接收器。它通过扫描注册表中所有具有元素信息的类字段中包含"Sink"和"Video",且具有非零自动插入等级的元素来实现此功能。它会自动选择合适的视频接收器来使用。说明:使用它,使代码更具有跨平台性。
-
GstElement *gst_pipeline_new (const gchar * name)
功能:创建一个给定名字的新管道。 -
gst_bin_add_many (GstBin * bin, GstElement * element_1, ... ...)
功能:将一个以NULL结尾的元素列表添加到一个bin中。该函数相当于对列表中的每个成员调用gst_bin_add()。每个gst_bin_add的返回值将被忽略。参数:
bin: 一个GstBin
element_1(可转换: 浮动型): 要添加到bin中的GstElement元素
... ...: 要添加到bin中的其他元素 -
gboolean gst_element_link (GstElement * src, GstElement * dest)
功能:将src与dest进行链接。链接必须从源(src)到目标(dest)进行,反方向的链接将不会尝试。该函数会查找尚未链接的现有pad。如果需要,它将请求新的pad。在取消链接时,被请求的pad需要手动释放。如果存在多个链接可能性,只会建立一个链接。说明:只有在同一
bin中的元素。 在尝试链接之前,请确保将您的元素添加到bin或pipeline中,可以使用gst_bin_add函数进行添加。参数:
src(不可转移):包含源pad的GstElement。
dest(不可转移):包含目标pad的GstElement。
返回值:如果能够链接元素,则返回TRUE,否则返回FALSE -
void g_object_get (GObject* object, const gchar* first_property_name, ...)
功能:获取GObject的属性。参数:
first_property_name:要获取的第一个属性的名称,类型:const gchar*。该数据由调用该方法的调用者拥有,该值是以NUL终止的UTF-8字符串。
...:第一个属性的返回位置,可选择跟随更多的名称/返回位置对,最后以NULL结尾。 -
void g_object_set (GObject* object, const gchar* first_property_name, ...)
功能:读取GObject的属性。参数:
first_property_name:第一个要设置的属性的名称。
...:第一个属性的值,可选择跟随更多的名称/值对,最后以NULL结尾。
更多推荐

所有评论(0)