为什么在 rtspenc.c 里面的 priv_class 的内存大小是 sizeof(RTSPState),但是在 mux.c 里面被强制转成 AVClass 了 为什么给s->priv_data分配的数据长度和最后需要转化的数据长度是不一样的?
这是 小内存结构 赋值给 大内存结构 的用法。 RTSPState 是大内存,AVClass 是小内存。 RTSPState 的第一个字段是 AVClass,所以 AVClass 的内存可以直接复制给 RTSPState
他那句代码实际上等同于 memcpy 函数把 AVClass 的内存复制给 RTSPState *(const AVClass**)s->priv_data= s->oformat->priv_class; 这句代码不是类型转换,而是内存拷贝