GStreamer 多线程模型:queue、tee 与 Backpressure
专栏:GStreamer C++ 从零到工程实战 · 第 11 篇 / 共 17 篇
理解 streaming thread、queue 线程边界、有界队列、阻塞与丢帧策略,并掌握 tee 多分支为何需要独立 queue。
第 13 课:线程 / queue / tee / Backpressure
GStreamer 的数据流通常由 streaming thread 推动。
先看最简单的 Pipeline:
videotestsrc → videoconvert → autovideosink
在常见 push-mode 下,上游调用下游,调用链可能发生在同一条 streaming thread 中。
source 产生 Buffer
↓ push
convert 处理
↓ push
sink 消费
如果下游慢,上游的这次调用就会晚返回。
一、Backpressure 不是错误
下游处理不完
↓
上游 push 被阻塞
↓
生产速度下降
这叫 Backpressure。
它能阻止内存无限增长,是流系统中必要的反馈机制。
网硕互联帮助中心




评论前必须登录!
注册