4.5 【共享源】流详解

一,什么是流?

流是屏幕API提供的屏幕外多缓冲渲染目标。

流由应用程序而不是Screen本身的使用者使用。在窗口的情况下,最常见的是消费者是Screen,因为内容的存在就是为了在显示器上显示。然而,流的内容则被其他应用程序使用。这些应用程序可以与产生流内容的应用程序分开,可以在同一进程中,也可以在不同的进程中。使用流的常见情况是显示来自摄像机(或视频)的输出,在显示之前需要对摄像机的输出进行某种形式的图像处理。

生产者流的缓冲区是通过调用 screen_create_stream_buffers() 创建的。这些缓冲区用于渲染或发布。最初,所有创建的缓冲区都可以用于渲染。随着缓冲区的发布,它们成为前缓冲区。当所有消费者释放它们时,前缓冲区再次可用作渲染缓冲区。渲染缓冲区可用于生产者流安全地渲染。这些缓冲区是使用流的 SCREEN_PROPERTY_RANGE_BUFFERS 属性检索的。前缓冲区已由流发布(即,使用这些缓冲区调用 screen_post_stream())。这些缓冲区是使用流的 SCREEN_PROPERTY_FRONT_BUFFERS 属性检索的。消费者在消费内容时使用生产者流的前缓冲区。我们不建议渲染到 SCREEN_PROPERTY_RANGE_BUFFERS 中不可用的任何缓冲区,因为存在一个风险,即不在此列表中的缓冲区正在被积极使用。

使用流通常意味着生产者和消费者都有一套基本的过程。内容可以被多个应用程序或进程访问,因此每个生产者和消费者都了解如何提供和访问内容是很重要的。Screen API提供了执行生产者和消费者各自负责的功能。

下面简单描述了一组生产者-消费者函数和交互,以提供对流如何用于共享内容的基本理解。以下步骤不包括细节和具体内容;这些将在后面的章节中提供。

二,流的生产者和消费者

2.1开始&#

相关推荐

  1. 45、Flink 的 Process Function 详解

    2023-12-24 03:38:04       24 阅读
  2. 4.5 【共享源】流详解

    2023-12-24 03:38:04       58 阅读
  3. NFS文件共享存储详解与实战

    2023-12-24 03:38:04       56 阅读
  4. LeetCode 1193, 45, 48

    2023-12-24 03:38:04       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-24 03:38:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-24 03:38:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-24 03:38:04       87 阅读
  4. Python语言-面向对象

    2023-12-24 03:38:04       96 阅读

热门阅读

  1. 5-Docker实例-安装nginx

    2023-12-24 03:38:04       61 阅读
  2. C#和.Net常见问题记录

    2023-12-24 03:38:04       53 阅读
  3. MacOS 14最新配置文件优先级

    2023-12-24 03:38:04       53 阅读
  4. GBASE南大通用数据库GBase JDBC的格式

    2023-12-24 03:38:04       57 阅读
  5. 速盾网络:网站用速盾cdn的好处

    2023-12-24 03:38:04       56 阅读
  6. 【个人记录】Ubuntu做网络路由+强化学习项目debug

    2023-12-24 03:38:04       63 阅读
  7. 10 个必知的编程技巧,让你的代码更高效

    2023-12-24 03:38:04       51 阅读