I am building a simple decoding application using FFMPEG API. I know there are solutions available in OpenCV but for specific reason I am refraining myself from using that. Since I am very new to FFMPEG (and to this community as well), I would like to know if there is any mistake that I might have done while building FFMPEG.
Compiler: I am using gcc 5.3.0 for compilation and building.
Following are the steps that I followed:
I have build FFMPEG library using following configuration:
./configure --prefix=/home/dep/ffmpeg/install/ --pkg-config-flags=--static --enable-gpl --disable-yasm
My compiling command is for the application:
g++ -std=c++11 -I/home/dep/ffmpeg/install/include/ Queue.cpp Image.cpp CaptureFFMPEGFrame.cpp Object.cpp main.cpp -o main -L/home/dep/ffmpeg/install/lib -lavutil -lavcodec -lavformat -lavdevice -lavfilter -lswscale -lswresample -lpostproc -lpthread -lz -lrt -llzma -lbz2
The error I am facing is :
CaptureFFMPEGFrame.cpp:203:169: error: ‘PIX_FMT_BGR24’ was not declared in this scope
mpFrameSwsContext = sws_getContext(mpAVCodecContext->width, mpAVCodecContext->height, mpAVCodecContext->pix_fmt, mpAVCodecContext->width, mpAVCodecContext->height, PIX_FMT_BGR24, SWS_BICUBIC, NULL, NULL, NULL)
My effort and understanding:
From my understanding, libavutil/pixfmt.h contains pixel formats which I included along with other includes and the error persists. You can also see libraries I have included along with my application.
Since my program is cpp code, therefore my headers are already included using extern "C", i.e. #include "libavcodec/avcodec.h"
Anything I might have missed?
Many thanks.
As of commit 78071a14, pixel formats have been prefixed with AV_
, and the PIX_FMT_*
defines were moves to libavutil/old_pix_fmts.h
(which was included by the original pixfmt.h
). This file was then removed in the next major version.
The fix (as described in the comments) was just to add this prefix to any PIX_FMT_*
statements which haven't been updated yet.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With