Skip to content
Advertisement

I am really confused with this kind of compilation error( C ffmpeg Qt)

I downloaded the latest ffmpeg source code and successfully installed it on Ubuntu But I failed to compile a simple demo.(I did included proper headers)

Here are the error messages ,just to name a few:

error: unknown type name 'AVFrame'

error: 'NULL' undeclared (first use in this function)

error: request for member 'streams' in something not a structure or union

error: 'AVMEDIA_TYPE_VIDEO' undeclared (first use in this function)

error: expected expression before ')' token

Can you help me solve this problem?

Contents Added:

e.g this is my includes

extern "C"{
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavutil/avutil.h>
}

int main(int argc, char *argv[]) {
AVFormatContext *pFormatCtx;
int i, videoStreamIdx;
AVCodecContext *pCodecCtx;
AVCodec *pCodec;
AVFrame *pFrame;
AVFrame *pFrameRGB;

e.g AVFormatContext is declared in /usr/include/libavformat/avformat.h error message box shows Unknown type name AVFormatContext But How could it possibly be?

Advertisement

Answer

In Qt you can add this line to your .pro file to force the compiler to look there for header files. Change it to the folder where your header files are stored.

INCLUDEPATH += <your path>

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement