下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章. 箱柜(Bins)箱柜是一种容器组件。你可以往箱柜中添加组件。由于箱柜本身也是一种组件,所以你可以像普通组件一样操作箱柜。因此,先前关于组件(Elements) 那章的内容同样可以应用于箱柜。 6.1.什么是箱柜箱柜允许你将一组有链接的组件组合成一个大的逻辑组件。你不再需要对单个组件进行操作,而仅仅操作箱柜。当你在构建一个复杂的管道时,你会发现箱柜的巨大优势,因为它允许你将复杂的管道分解成一些小块。 箱柜同样可以对包含在其中的组件进行管理。它会计算数据怎样流入箱柜,并对流入的数据流制定一个最佳的计划(generate an optimal plan)。计划制定(Plan generat
2、ion)是GStreamer中最复杂的步骤之一。你可从16.2部分更详细地了解这个部分。 图6-1. 形象化的箱柜GStreamer程序员经常会用到的一个特殊的箱柜: · 管道:是一种允许对所包含的组件进行安排(scheduling)的普通容器。顶层(toplevel)箱柜必须为一个管道。因此每个GStreamer应用程序都至少需要一个管道。当应用程序启动后,管道会自动运行在后台线程中。 6.2. 创建箱柜你可以通过使用创建其它组件的方法来创建一个箱柜,如使用组件工厂等。当然也有一些更便利的函数来创建箱柜 (gst_bin_new()和 gst_pipeline_new
3、()。你可以使用gst_bin_add()往箱柜中增加组件,使用gst_bin_remove()移除箱柜中的组件。当你往箱柜中增加一个组件后,箱柜会对该组件产生一个所属关系;当你销毁一个箱柜后,箱柜中的组件同样被销毁 (dereferenced);当你将一个组件从箱柜移除后,该组件会被自动销毁(dereferenced)。 #include <gst/gst.h>intmain (int argc, char *argv) GstElement *bin, *pipeline, *source, *sink; /* init */ gst_init (&argc, &
4、;argv); /* create */ pipeline = gst_pipeline_new ("my_pipeline"); bin = gst_pipeline_new ("my_bin"); source = gst_element_factory_make ("fakesrc", "source"); sink = gst_element_factory_make ("fakesink", "sink"); /* set up pipeline */ gst_bi
5、n_add_many (GST_BIN (bin), source, sink, NULL); gst_bin_add (GST_BIN (pipeline), bin); gst_element_link (source, sink);. 有多种方法来查询一个箱柜中的组件。你可以通过函数gst_bin_get_list()得到一个箱柜中所有组件的一个列表。详细信息请参考API手册 GstBin 部分。 6.3.自定义箱柜程序员可以自定义能执行特定任务的箱柜。例如,你可以参照下面的代码写一个 Ogg/Vorbis 译码器。 intmain (int argc, char *argv) GstE
6、lement *player; /* init */ gst_init (&argc, &argv); /* create player */ player = gst_element_factory_make ("oggvorbisplayer", "player"); /* set the source audio file */ g_object_set (player, "location", "helloworld.ogg", NULL); /* start playback */ gst_element_set_state (GST_ELEMENT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023中考英语复习计划
- 专业AutoCAD教案2024版:工程师的定制利器
- 2024年BRC食品企业内部控制培训课件
- 2025届河北省保定市高三上学期10月期中地理含答案
- 2024琥珀教学课件:解读树脂中的历史信息
- 2024届新高考生物必刷题12 基因工程(共50题)(原卷版)
- 疑难病例讨论记录范文上睑下垂
- 四年级语文楚才杯小青蛙上网记1
- 2024-2025学年新教材高中政治第三单元文化传承与文化创新第8课第2框文化交流与文化交融学案部编版必修4
- 八年级数学下册单元清一新版华东师大版
- 变电站绿化维护施工方案
- 校园展美 课件 2024-2025学年人美版(2024)初中美术七年级上册
- 2024版《糖尿病健康宣教》课件
- ktv保安管理制度及岗位职责(共5篇)
- 脑出血试题完整版本
- 义务教育信息科技课程标准(2022年版)考试题库及答案
- 建筑施工安全生产责任书
- 新员工三级安全教育考试试题参考答案
- 公司年会策划及执行服务合同
- 概算审核服务投标方案(技术方案)
- 人教版(2019)选择性必修第二册Unit 2 Bridging Cultures Learning About Language教学设计
评论
0/150
提交评论