Core Library-GstObject
admin
2024-05-05 08:50:24
0

GInitiallyUnowned

我查了GInitiallyUnowned的相关资料,在gobject.h文件中

typedef struct _GObject                  GObject;
typedef struct _GObjectClass             GObjectClass;
typedef struct _GObject                  GInitiallyUnowned;
typedef struct _GObjectClass             GInitiallyUnownedClass;

从语法角度理解,GObject和GInitiallyUnowned指向的结构体是相同的,也就是两者并无区别。但是从GObject Reference Manual中了解到:

GInitiallyUnowned is derived from GObject. The only difference between the two is that the initial reference of a GInitiallyUnowned is flagged as a floating reference. This means that it is not specifically claimed to be “owned” by any code portion. The main motivation for providing floating references is C convenience. In particular, it allows code to be written as:

GInitiallyUnowned源自GObject。两者之间唯一的区别是GInitiallyUnowned的初始引用被标记为floating引用。这意味着它不被任何代码部分明确声明为“拥有”。提供floating引用的主要动机是C语言的便利性。特别是,它允许代码写成:

关于floating引用我不明白作用是什么

GstObject

GstObject为GStreamer库提供了一个根基。它目前是GInitiallyUnowned之上的一个薄包装。它是一个抽象类,单独使用不是很方便。

GstObject为我们提供了基本的引用计数、父类方法和锁。大多数函数只是为特定的GStreamer需求而扩展,可以在GstObject的基类GObject下找到相同的名称(例如g_object_ref成为gst_object_ref)。

由于GstObject继承于 GInitiallyUnowned,因此它也继承了浮动引用(我的理解:浮动引用传入指针的时候,不会refcount,比如gst_bin_addd)。请注意,gst_bin_add和gst_element_add_pad等函数拥有浮动引用。

与GObject实例不同,GstObject添加了name属性。函数gst_object_set_namegst_object_get_name用于设置/获取对象的名称。

controlled properties

不理解这部分的作用
controlled properties

Controlled properties offers a lightweight way to adjust gobject properties over stream-time. It works by using time-stamped value pairs that are queued for element-properties. At run-time the elements continuously pull value changes for the current stream-time.

What needs to be changed in a GstElement? Very little - it is just two steps to make a plugin controllable!

  • mark gobject-properties paramspecs that make sense to be controlled, by GST_PARAM_CONTROLLABLE.

  • when processing data (get, chain, loop function) at the beginning call gst_object_sync_values(element,timestamp). This will make the controller update all GObject properties that are under its control with the current values based on the timestamp.

What needs to be done in applications? Again it’s not a lot to change.

  • create a GstControlSource. csource = gst_interpolation_control_source_new (); g_object_set (csource, “mode”, GST_INTERPOLATION_MODE_LINEAR, NULL);

  • Attach the GstControlSource on the controller to a property. gst_object_add_control_binding (object, gst_direct_control_binding_new (object, “prop1”, csource));

  • Set the control values gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,0 * GST_SECOND, value1); gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,1 * GST_SECOND, value2);

  • start your pipeline

GstObject

GObject╰──GInitiallyUnowned╰──GstObject╰──GstAllocator╰──GstBufferPool╰──GstBus╰──GstClock╰──GstControlBinding╰──GstControlSource╰──GstDevice╰──GstDeviceMonitor╰──GstDeviceProvider╰──GstElement╰──GstPad╰──GstPadTemplate╰──GstPlugin╰──GstPluginFeature╰──GstRegistry╰──GstStream╰──GstStreamCollection╰──GstTask╰──GstTaskPool╰──GstTracer╰──GstTracerRecord
typedef struct _GstObject GstObject;
struct _GstObject {GInitiallyUnowned object;/*< public >*/ /* with LOCK */GMutex         lock;        /* object LOCK */gchar         *name;        /* object name */GstObject     *parent;      /* this object's parent, weak ref */guint32        flags;/*< private >*/GList         *control_bindings;  /* List of GstControlBinding */guint64        control_rate;guint64        last_sync;gpointer _gst_reserved;
};

属性

name

“name” gchar *

parent

“parent” GstObject * /*这个对象的父类*/

参考:GstObject

相关内容

热门资讯

华夏幸福继续减持 厦门国际银行... 5月18日,河北金融监管局发布批复显示,同意厦门国际银行股份有限公司受让华夏幸福基业控股股份公司持有...
离境退税2.0版政策上线 境外... 本文转自【央视新闻客户端】; 今天(18日),我国离境退税2.0版政策正式上线,以后境外旅客来华购物...
原创 在... 老周坐在东京中野区那间不大的公寓里,又把账本翻了一遍。手边是厚厚的日元工资条,电脑屏幕上开着国内某二...
探索“筷子夹火箭”的商业航天公... 上证报中国证券网讯 国内唯一“不锈钢箭体+液氧甲烷动力+筷子捕获臂回收”技术路线的商业火箭公司再度融...
5月30日晚8点开启!首次全场... 潮新闻客户端 记者 周夏林 又好又便宜的京东618,今年来得有点“聪明”。 5月18日,京东宣布,2...
2026年太和县黄金回收权威机... “家里压箱底的金项链断了,金戒指戴旧了,想去回收却又担心被压价、被掉包。”这是我在太和县做珠宝行业多...
A股“下半场”怎么走?券商最新... 【导读】券商密集召开中期策略会 中国基金报记者 孙越 临近年中,2026年券商中期策略会正迎来密集召...
爱德泰由董事长白长安夫妇控股9... 瑞财经 吴文婷近日,深圳市爱德泰科技股份有限公司(以下简称“爱德泰”)在港交所递交招股书,中信证券、...
前CIA资助研究员:美寻获4种... 近日,一名曾接受美国中央情报局(CIA)资助的前政府研究员曝出惊人消息,声称美国已从坠毁的不明飞行物...
原创 欧... 2026年5月,全球巧克力设备圈炸开了一口大锅。 一百多年来,生产线上那几根核心精磨辊筒,一直被瑞士...
商务部等六部门:加力扩大入境消... 商务部、财政部、国家税务总局等6部门日前发布《关于加力优化离境退税措施扩大入境消费的通知》,此次政策...
飞天没涨价,但茅台真正的变革,... 2026年5月16日零时整,i茅台App推送了一条公告。 不是限量发售,不是新品上架,是涨价。 四款...
“不含白酒”!消费主题ETF营... 【导读】“不含白酒”成了消费主题ETF的营销新卖点? 见习记者 闫军 近期,有基金公司宣传食品饮料E...
金价又崩了!5月这波下跌,藏着... 昨天看行情的时候,我一度以为自己眼花了。 5月18日亚市早盘,现货黄金伦敦金直接失守4500美元/盎...
拿下百年药企、进军医院市场,广... (本文作者为 牛刀财经NiuDaoCJ,钛媒体经授权发布) 文 | 牛刀财经NiuDaoCJ ...
一心卖车的蔚来,终于被看懂了 作者 | 定焦One 陈颐 中国资本市场对新能源汽车的态度,最近一年发生了转变。 具身智能、飞行汽...
原创 杨... 赚的不多,拿的不少。 作者 | 于婞 编辑丨高岩 来源 | 野马财经 与明星爱人黄圣依再见1年后,“...
历史首次!东莞A股上市公司,市... 据东莞市上市公司协会消息,截至2026年5月15日收盘,东莞64家A股上市公司总市值首次突破万亿元,...
对标行业龙头先导智能,格林晟港... 在锂电制造的中段——从极片到电芯成型的核心环节,有一项设备至关重要:叠片机,它直接决定了电池的能量密...
银行存款大局已定?明后年,存款... 银行存款的大局,已经从“怎么多赚点利息”,变成了“怎么少亏点、别踩坑”。 2025年以来,存款利率一...