sorry,unimplemented:non-trivial designated initializers not supported解決


これは、CとC++構造体の初期化が異なるため、1つの構造体Cに対して初期化される
static const AVClass framesync_class = {
    .version                   = LIBAVUTIL_VERSION_INT,
    .class_name                = "framesync",
    .item_name                 = framesync_name,
    .category                  = AV_CLASS_CATEGORY_FILTER,
    .option                    = NULL,
    .parent_log_context_offset = OFFSET(parent),
};

ただしC++はこの方式をサポートしていないため、エラー解決1はこの形式で初期化される(各メンバーの順序は定義と一致しなければならない)
static const AVClass framesync_class = {
    version                   : LIBAVUTIL_VERSION_INT,
    class_name                : "framesync",
    item_name                 : framesync_name,
    category                  : AV_CLASS_CATEGORY_FILTER,
    option                    : NULL,
    parent_log_context_offset : OFFSET(parent),
};

2このコードをextern"C"{}に入れて、参考にします.http://www.cnblogs.com/skynet/archive/2010/07/10/1774964.html