您现在的位置是:主页 > news > 安徽省建设厅到底哪个网站/整站优化价格
安徽省建设厅到底哪个网站/整站优化价格
admin2025/4/30 3:00:57【news】
简介安徽省建设厅到底哪个网站,整站优化价格,深圳网站开发公司,成都广告设计公司排名目录 GstObject 父-子关系 命名 锁 锁顺序 路径生成 标志 GstObject 整个GStreamer层次结构的基类是GstObject。 父-子关系 一个指针可用来存储对象的当前父对象。这是GStreamer等分级系统的两个基本需求之一(对于另一个,请参阅GstBin)。提供了三个函数:_…
目录
GstObject
父-子关系
命名
锁
锁顺序
路径生成
标志
GstObject
整个GStreamer层次结构的基类是GstObject。
父-子关系
一个指针可用来存储对象的当前父对象。这是GStreamer等分级系统的两个基本需求之一(对于另一个,请参阅GstBin)。提供了三个函数:_set_parent()、_get_parent()和_unparent()。第三个是必需的,因为在_set_parent()中有一个显式的检查:如果您希望设置一个对象的父对象,在设置之前它必须不具有父对象。因此首先必须取消对象的父对象。才允许以后添加新的父对象。
- GstObject可以作为父对象的:GstElement(在bin内)GstPad(在element内)
命名
- 父对象的名称不能更改
- 对象名称在整个父对象中应该是唯一的
#set_name() 可能会因此而失败
#同样gst_element_add_pad()/gst_bin_add_element()也会有此问题 - gst_object_set_name() 仅更改对象的名称
- 对象还具有name_prefix,用于在调试和标识过程中为对象名称添加前缀
- 还有对象特定的set_name(),它也设置了对象的name_prefix。这对于调试来说很有用,可以给对象一个更可识别的名称。通常父类会在子类上调用_set_name_prefix(),并获得它们的锁。
锁
该GstObject包含以线程安全的方式锁定对象所必要的原语。这将用于根据需要提供常规的线程安全性。但是,此锁是通用的,即它涵盖了整个对象。
对象LOCK是一个非常低级的锁,应仅在短期代码段内保留该对象以访问对象属性。
GstObject结构中所有被/**< public >**/ /* with LOCK */标记的成员均受此锁保护。仅在持有锁的情况下才能访问这些成员以进行读取或写入。如果在释放LOCK之后使用了这些成员,则应该复制或拒绝它们。
请注意,这并不意味着在持有锁的同时没有其他线程可以修改该对象。它只意味着遵守锁的任何两个代码段保证不会同时运行。“锁是自愿合作的”。
理想情况下,这个锁将用于父级、标志和命名,这是合理的,因为它们是GstObject中唯一可能保护的东西。
锁顺序
在父子情况下,必须始终先取得父对象的锁,然后再取得子对象的锁。在取得父对象的锁之前,不允许持有子对象的锁。
此策略允许父类迭代其子类并设置其子类的属性。
每当需要对不涉及父子关系的对象(例如pads)进行嵌套锁定时,都必须定义明确的锁定顺序。
路径生成
由于GstObject的基本性质,它成为放置这个特定函数(_get_path_string())的唯一合理位置。它将生成一个字符串来描述给定GstObject的父层次结构。
标志
GStreamer对象层次结构中的每个对象都可以具有与其关联的标志,这些标志用于描述其状态或特性。