gpt4 book ai didi

python - 使用 ctypes 调用 FFmpeg 库时如何指定非默认类型

转载 作者:行者123 更新时间:2023-12-04 23:17:17 33 4
gpt4 key购买 nike

我正在调用一个名为 avformat_alloc_context() 的 FFMPEG 库,它返回一个指向 AVFormatContext 类型的指针。结构 AVFormatContext 在 avformat 库中定义。

明显地;这不是一个 ctypes 默认类型,当我尝试将它的引用传递给我的代码中的另一个 ffmpeg 库时,会导致错误。

有没有办法添加在库内定义的类?我通读了可以在网上找到的文档,但找不到这个问题的好答案。

最佳答案

您需要首先翻译 AVFormatContext struct 到 ctypes 声明中。您通过 deriving from the Structure class 执行此操作.

然后您需要指定 avformat_alloc_context函数返回指向该结构的指针。您分配 restype这样做:

avformat_alloc_context.restype = POINTER(AVFormatContext)

然后你可以像这样调用函数:
contextPtr = avformat_alloc_context()

要获取指针的内容,请阅读 contents属性:
context = contextPtr.contents

别忘了调用 avformat_free_context()当你完成了指针。

这些信息在 ctypes documentation 中有更详细的介绍。 .

关于python - 使用 ctypes 调用 FFmpeg 库时如何指定非默认类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17997853/

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