操作AVFormatContext*类型的变量前,必须将其初始化为NULL,或者调用函数avformat_alloc_context()为其分配内存空间。
AVFormatContext *pFormatCtx;
分两种情况讨论:
1、pFormatCtx是全局变量
此时pFormatCtx默认被初始化为NULL,可在程序中直接调用之;
2、pFormatCtx是局部变量
在操作pFormatCtx前,必须先执行以下操作,否则可能会导致程序崩溃!具体原因可参考ffmpeg中av_register_all、av_open_input等函数的源码。
pFormatCtx = NULL;
或
pFormatCtx = avformat_alloc_context();
建议:
在定义指针变量时,一定要初始化。