【发布时间】:2011-06-11 20:37:08
【问题描述】:
我一直忙于围绕 x264.dll 创建 JNA 包装器。我的 x264_param_t 有以下课程:
但是,当我尝试像那样初始化我的 x264_param_t 时
x264_param_t param_t = new x264_param_t;
我收到以下错误:
Exception in thread "main" java.lang.IllegalArgumentException: Can't determine size of nested structure: Can't instantiate class anotherReversed.x264_param_t$Vui (java.lang.InstantiationException: anotherReversed.x264_param_t$Vui)
at com.sun.jna.Structure.calculateSize(Structure.java:790)
at com.sun.jna.Structure.allocateMemory(Structure.java:287)
at com.sun.jna.Structure.<init>(Structure.java:177)
at com.sun.jna.Structure.<init>(Structure.java:167)
at com.sun.jna.Structure.<init>(Structure.java:163)
at com.sun.jna.Structure.<init>(Structure.java:154)
at anotherReversed.x264_param_t.<init>(x264_param_t.java:7)
如果我在它的父类构造函数中注释掉 Vui,实例化就可以了。我想知道 EXACTLY 这个嵌套结构有什么不同,因为还有其他 2 个(即 Rc 和 Analyze )以相同的方式嵌套。但是,不知何故,JNA 无法找到 Vui 所需的大小。有什么指点吗?
编辑: 似乎所有其他嵌套结构(分析和 rc )也没有初始化。我想知道为什么?
【问题讨论】:
-
为什么不考虑 JNI?您可以查看我的指南here。
标签: java video native jna x264