当前位置: 首页 > news >正文

北京网站设计公司新wordpress资源存在问题

北京网站设计公司新,wordpress资源存在问题,wordpress鼠标跟随,wordpress 游客## What are states?状态描述元素实例是否初始化、是否准备好传输数据以及当前是否正在处理数据。在GStreamer中定义了四种状态:- GST_STATE_NULL - GST_STATE_READY - GST_STATE_PAUSED - GST_STATE_PLAYING 从现在开始#xff0c;它们将被简单地称为“NU… ## What are states?状态描述元素实例是否初始化、是否准备好传输数据以及当前是否正在处理数据。在GStreamer中定义了四种状态:- GST_STATE_NULL - GST_STATE_READY - GST_STATE_PAUSED - GST_STATE_PLAYING 从现在开始它们将被简单地称为“NULL”、“READY”、“PAUSED”和“PLAYING”。**GST_STATE_NULL** 是元素的默认状态。在这种状态下它没有分配任何运行时资源没有加载任何运行时库显然它不能处理数据。**GST_STATE_READY** 是元素可以进入的下一个状态。在READY状态下元素分配了所有默认资源(运行时库、运行时内存)。然而它还没有分配或定义任何特定于流的东西。当从NULL到READY状态(**GST_STATE_CHANGE_NULL_TO_READY**)时元素应该分配任何非流特定的资源并且应该加载运行时可加载的库(如果有的话)。当进行相反的操作时(从**READY**到NULL, **GST_STATE_CHANGE_READY_TO_NULL**)元素应该卸载这些库并释放所有已分配的资源。这种资源的例子是硬件设备。请注意文件通常是流因此这些文件应被视为特定于流的资源;因此不应该在这种状态下分配它们。**GST_STATE_PAUSED** 是元素准备接受和处理数据的状态。对于大多数元素这种状态与PLAYING相同。此规则的唯一例外是接收元素。Sink元素只接受一个数据缓冲区然后阻塞。在这一点上管道是“预卷”并准备立即呈现数据。**GST_STATE_PLAYING** 是元素可以处于的最高状态。对于大多数元素来说这种状态与暂停状态完全相同它们接受并处理带有数据的事件和缓冲区。只有sink元素需要区分暂停状态和播放状态。在播放状态下接收器元素实际渲染传入数据例如输出音频到声卡或渲染视频图像到图像接收器。## Managing filter state 如果可能的话您的元素应该从一个新的基类(预制基类)派生。对于不同类型的源、汇和过滤器/转换元素有现成的通用基类。除此之外音频和视频元素以及其他元素还存在专门的基类。如果使用基类则很少需要自己处理状态更改。您所要做的就是重写基类的start()和stop()虚函数(可能根据基类的不同而被不同地调用)基类将为您处理所有事情。但是如果您不是从现成的基类派生而是从GstElement或其他不是构建在基类之上的类派生那么您很可能必须实现自己的状态更改函数以便收到状态更改的通知。如果你的插件是一个demuxer或demuxer这是绝对必要的因为还没有针对muxers或demuxers的基类。可以通过虚函数指针通知元素状态更改。在这个函数中元素可以初始化元素所需的任何类型的特定数据并且它可以选择从一种状态切换到另一种状态。对于未处理的状态更改不要g_assert;这是由GstElement基类处理的。static GstStateChangeReturn gst_my_filter_change_state (GstElement *element, GstStateChange transition);static void gst_my_filter_class_init (GstMyFilterClass *klass) {GstElementClass *element_class GST_ELEMENT_CLASS (klass);element_class-change_state gst_my_filter_change_state; }static GstStateChangeReturn gst_my_filter_change_state (GstElement *element, GstStateChange transition) {GstStateChangeReturn ret GST_STATE_CHANGE_SUCCESS;GstMyFilter *filter GST_MY_FILTER (element);switch (transition) {case GST_STATE_CHANGE_NULL_TO_READY:if (!gst_my_filter_allocate_memory (filter))return GST_STATE_CHANGE_FAILURE;break;default:break;}ret GST_ELEMENT_CLASS (parent_class)-change_state (element, transition);if (ret GST_STATE_CHANGE_FAILURE)return ret;switch (transition) {case GST_STATE_CHANGE_READY_TO_NULL:gst_my_filter_free_memory (filter);break;default:break;}return ret; }请注意向上(NULLREADY, READYPAUSED, PAUSEDPLAYING)和向下(PLAYINGPAUSED, PAUSEDREADY, READYNULL)状态变化是在两个单独的块中处理的向下的状态变化只有在我们链接到父类的状态变化函数之后才能处理。为了安全地处理多线程的并发访问这是必要的。这样做的原因是在向下状态变化的情况下你不想破坏分配的资源而你的插件的链函数(例如)仍然在另一个线程中访问这些资源。你的链式函数是否在运行取决于插件的垫的状态而这些垫的状态与元素的状态密切相关。Pad状态在GstElement类的状态更改函数中处理包括适当的锁定这就是为什么在销毁分配的资源之前必须链接起来的原因。
http://www.zqtcl.cn/news/704369/

相关文章:

  • 做部队网站技术vue做购物网站
  • 品牌网站建设服务机构wordpress英文改中文
  • 系统开发费外链优化方法
  • 网站建设公司起名网站构建的友情链接怎么做
  • 网站建设湖南wordpress 缓存时间
  • 木藕设计网站大全福州网络营销推广产品优化
  • 建设银行网上官方网站怎么批量修改wordpress文章内容
  • 多肉建设网站的目的及功能定位app网站开发成本
  • 如何保存网站上的图片不显示图片报纸网站建设
  • 网站营销的流程品牌推广方式有哪些
  • 网站开发的条件美术字设计
  • 网站可以自己做服务器么wordpress架站教程
  • 用ps怎么做网站导航条怎么做部署iis网站
  • 酒店 网站构建怎么创建自己的网址
  • 江苏推广网站建设业务个人工作室网站源码带后台
  • 色一把做最好的网站赤峰微信网站建设
  • 指定网站长期建设 运营计划网站淘宝客 没备案怎么做
  • 绵阳网站推广排名知名商业网站有哪些
  • 简要描述创建商务站点的商务天津建设工程合同备案网站
  • 做展示空间设计的网站wordpress调用作品分类
  • 网站怎么做访问量统计百度百科怎么创建自己
  • 泉州开发网站的公司有哪些网站页面相似度查询工具
  • 卖文章的网站源码咸阳做网站的公司电话
  • 网站建设案例百度云怎么在手机上传百度云wordpress
  • 传媒公司取名seo网站推广怎么收费
  • 网站建设具体详细过程WordPress usdt收款
  • 网站标题应怎设置生产备案号怎么查询网站
  • 怎样建立网站目录结构网站 项目方案
  • jsp做网站还响应式科技公司网站模板
  • 杭州网站建设设计公司做阀门网站