来源:https://github.com/ApsOps/GStreamer-0.10-to-1.0-porting-guide/blob/master/porting-to-1.0.md
前言
-
所有弃用的方法均已删除。使用 DISABLE_DEPRECATED 针对 0.10 重新编译并修复问题,然后再尝试移植到 1.0。
-
API 更改通常很容易发现,因为编译器会生成警告,至少在参数数量或类型不同时会生成警告
-
其他更改则比较微妙。请参阅底部的检查表,了解编译器不会发出警告的一些“软”更改。
-
Python 开发人员可能会发现https://wiki.ubuntu.com/Novacut/GStreamer1.0 很有用
-
应用程序开发人员可能首先希望查看应用程序开发手册中影响应用程序的更改列表: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-porting-1.0.html
变化
-
GST_BOILERPLATE 已消失,改用 G_DEFINE_TYPE(请注意,以前称为 parent_class 的变量现在称为 gst_foo_bar_parent_class)
-
当谈论内存大小时,各种方法都采用 gsize 而不是 guint。
-
multifdsink、tcpclientsink、tcpclientsrc、tcpserversrc 协议属性被删除,使用 gdppay 和 gdpdepay。
-
预设和插件已移至 $XDG_DATA_HOME/gstreamer-1.0/ 根目录。注册表已移至 $XDG_CACHE_HOME/gstreamer-1.0/。XDG_CACHE_HOME 通常指向 $HOME/.cache,而 XDG_DATA_HOME 通常是 $HOME/.local/share/。
-
GstObject:GST_OBJECT_DISPOSING 标志已删除 GST_OBJECT_IS_DISPOSING 已删除 GST_OBJECT_FLOATING 标志已删除,GstObject 现在是 GInitiallyUnowned GST_OBJECT_IS_FLOATING 已删除,使用 g_object_is_floating()
GST_CLASS_GET_LOCK、GST_CLASS_LOCK、GST_CLASS_TRYLOCK、GST_CLASS_UNLOCK,曾经是线程不安全的 glib <2.8 的解决方法
gst_object_ref_sink() 以 gpointer 作为结果,使其更像 GObject 版本。
gst_object_sink() 已删除,请改用 gst_object_ref_sink()。
gst_class_signal_connect() 已删除,仅用于 XML
已删除 parent-set 和 parent-unset 信号。使用通知:parent。由于深度通知锁定问题,目前仍处于禁用状态。
-
GstElement:GstElementDetails 被删除并被更通用的元数据取代。
<span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><span style="color:var(--fgColor-default, var(--color-fg-default))"><span style="background-color:var(--bgColor-muted, var(--color-canvas-subtle))"><code>gst_element_class_set_details_simple() -> gst_element_class_set_metadata() gst_element_class_set_documentation_uri -> gst_element_class_add_metadata gst_element_class_set_icon_name -> gst_element_class_add_metadata also gst_element_class_get_metadata() gst_element_factory_get_longname -> gst_element_factory_get_metadata gst_element_factory_get_klass -> gst_element_factory_get_metadata gst_element_factory_get_description -> gst_element_factory_get_metadata gst_element_factory_get_author -> gst_element_factory_get_metadata gst_element_factory_get_documentation_uri -> gst_element_factory_get_metadata gst_element_factory_get_icon_name -> gst_element_factory_get_metadata </code></span></span></span>gstelementmetadata.h 包含所有标准元数据的键。
gst_element_factory_can_{src,sink} caps() => gst_element_factory_can {src,sink}_{any,all}_caps()
元素元数据和 pad 模板从父类继承而来,应该在 class_init 而不是 base_init 中添加。
gst_element_class_add_pad_template() 取得模板的所有权
gst_element_class_add_static_pad_template (element_class,&src_template) => gst_element_class_add_pad_template (element_class,gst_static_pad_template_get (&src_template));
当持续时间在 PAUSED 或 PLAYING 中发生变化时,改变持续时间的元素必须在总线上发布 DURATION 消息。
gst_element_lost_state_full() -> gst_element_lost_state() gst_element_lost_state() -> gst_element_lost_state(,TRUE)
请求新 pad 的完整 ()-> 请求新 pad ()
gst_element_found_tags() 和 gst_element_found_tags_for_pad() 已经消失,只需推送标签事件。
-
GstPad:gst_pad_get_caps() 被 gst_pad_query_caps() 取代,它不再返回可写的 caps,需要执行显式 gst_caps_make_writable()。这是 gst_pad_get_caps_reffed() 的功能,现已删除。
对 gst_pad_peer_get_caps() 和 gst_pad_peer_get_caps_reffed() 也进行了类似的更改
gst_pad_set_bufferalloc_function()、g

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



