MCPcopy Create free account
hub / github.com/alibaba/CicadaPlayer / pullFrames

Method pullFrames

framework/filter/VideoFilterChain.cpp:82–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

80
81
82void VideoFilterChain::pullFrames(std::unique_ptr<IVideoFilter> &filter, SpscQueue<IAFFrame *> &outFrames)
83{
84 int ret = 0;
85 std::unique_ptr<IAFFrame> frame = nullptr;
86 while (true) {
87 ret = filter->pull(frame, 0);
88 if (ret >= 0) {
89 // AF_LOGD("filter %s pull success pts= %lld", filter->getName().c_str(), frame->getInfo().pts);
90 outFrames.push(frame.release());
91 } else if (ret == -EAGAIN) {
92 // AF_LOGD("filter %s pull EAGAIN", filter->getName().c_str());
93 break;
94 } else {
95 AF_LOGW("filter %s pull Error = %d ", filter->getName().c_str(), ret);
96 break;
97 }
98 }
99}
100
101void VideoFilterChain::swapFrames(SpscQueue<IAFFrame *> &dstFrames, SpscQueue<IAFFrame *> &srcFrames)
102{

Callers

nothing calls this directly

Calls 4

releaseMethod · 0.65
pullMethod · 0.45
pushMethod · 0.45
getNameMethod · 0.45

Tested by

no test coverage detected