访问 AVCodecContext 的元素

Access elements of AVCodecContext

本文关键字:元素 AVCodecContext 访问      更新时间:2023-10-16

我想在我的程序中访问我的AVCodecContext *av_ctx的一些成员。当我在 32 位版本中编译它时很好,但是当我将其更改为 64 位时,这些元素就像它们被移动了一样。

例如,我想获取av_ctx->coded_widthav_ctx->coded_height(有时它们与av_ctx->widthav_ctx->height不同(并将它们存储在一些变量中。现在,当我在 32 位版本中调试此程序时,还可以,但在 64 位版本中,此值是错误的,当我检查我的结构时,我可以看到接下来的两个元素(av_ctx->gop_sizeav_ctx->pix_fmt (具有我想要的值。

我检查了AVCodecContext avcodec.h声明,它(在结构声明上方的评论中(说:

请使用 AVOptions (av_opt*/av_set/get*((( 从用户应用程序访问这些字段。

我认为这可能是获取这些元素的正确方法,但我不知道这个 AVOptions 是什么,我搜索了它,但找不到它到底是什么以及如何使用它。

int64_t cheight = 0; 
av_opt_set_int(av_ctx,"coded_height", 400, 0); 
av_opt_get_int(av_ctx,"coded_height", 0, &cheight);

也许你可以试试这个。