gpt4 book ai didi

c++ - C++媒体流的N-API连续回调

转载 作者:搜寻专家 更新时间:2023-11-01 00:28:02 26 4
gpt4 key购买 nike

我正在尝试为 C++ 媒体播放器创建一个 Node 接口(interface)。解码帧后,有一个事件允许我访问帧数据,我正试图将其汇集到 Node 中。但我似乎无法弄清楚如何让这种功能与 the node api 中可用的功能一起使用。 .目前,我的方法是找出一种推送机制,将数据从 C++ 获取到 javascript,我只需要在 javascript 中初始化一个回调,因为它看起来更优雅。如果失败,我可以在 js 中创建一个轮询循环来检查是否有新的帧数据,但它似乎效率较低。

我试过 napi_create_async_work ,通过在执行参数函数中创建一个 lambda 函数,这将允许我调用 napi_make_callback对于每个帧回调,但随后出现以下错误:

Fatal error in HandleScope::HandleScope
Entering the V8 API without proper locking in place

我可能处理不当,这是我第一次使用 n-api。

欢迎任何帮助,谢谢!

最佳答案

问题主要与您无法访问事件循环主线程之外的 V8 (JavaScript) 内存有关。如果您正在创建一个异步线程,默认情况下您也会创建一个新的内存堆栈。

幸运的是,一个修复程序正在进行中,它应该允许线程安全访问 napi_create_threadsafe_function (例如 here)

在那之前有一个 header only C++ packageC++ N-API wrapper 集成得很好

关于c++ - C++媒体流的N-API连续回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50815038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com