Page 1 of 1

zm_mpeg compile error: 'struct AVCodecContext**"

Posted: Thu Jun 29, 2006 2:55 pm
by trelane
This issue has previously cropped up here but as the last post in the thread was in april with a complaint of the issue resurfacing I am starting a new thread:
http://www.zoneminder.com/forums/viewto ... deccontext

I am using ZoneMinder-1.22.2, and ffmpeg from SVN (centos 4.3 on a P3) checked out this morning. The compile is dieing as follows:

then mv -f ".deps/zm_user.Tpo" ".deps/zm_user.Po"; else rm -f ".deps/zm_user.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/include -g -O2 -MT zm_mpeg.o -MD -MP -MF ".deps/zm_mpeg.Tpo" -c -o zm_mpeg.o zm_mpeg.cpp; \
then mv -f ".deps/zm_mpeg.Tpo" ".deps/zm_mpeg.Po"; else rm -f ".deps/zm_mpeg.Tpo"; exit 1; fi
zm_mpeg.cpp: In member function `void VideoStream::SetupCodec(int, int, int, int, int)':
zm_mpeg.cpp:88: error: cannot convert `AVCodecContext**' to `AVCodecContext*' in initialization
zm_mpeg.cpp:109: error: 'struct AVCodecContext' has no member named 'frame_rate'
zm_mpeg.cpp:110: error: 'struct AVCodecContext' has no member named 'frame_rate_base'
zm_mpeg.cpp: In member function `void VideoStream::OpenStream()':
zm_mpeg.cpp:161: error: cannot convert `AVCodecContext**' to `AVCodecContext*' in initialization
zm_mpeg.cpp: In destructor `VideoStream::~VideoStream()':
zm_mpeg.cpp:256: error: cannot convert `AVCodecContext**' to `AVCodecContext*' for argument `1' to `int avcodec_close(AVCodecContext*)'
zm_mpeg.cpp: In member function `double VideoStream::EncodeFrame(uint8_t*, int, bool, unsigned int)':
zm_mpeg.cpp:303: error: cannot convert `AVCodecContext**' to `AVCodecContext*' in initialization
make[2]: *** [zm_mpeg.o] Error 1
make[2]: Leaving directory `/root/ZoneMinder-1.22.2/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/ZoneMinder-1.22.2'

Posted: Thu Jun 29, 2006 3:22 pm
by zoneminder
Have a look and see if the Patch on the Wiki for this works for you.

Posted: Mon Sep 04, 2006 5:00 pm
by rwmarch
FYI, attempting to build on SUSE10.1, make failed with the following:

zm_mpeg.cpp:88: error: cannot convert ‘AVCodecContext**’ to ‘AVCodecContext*’ in initialization
zm_mpeg.cpp:109: error: ‘struct AVCodecContext’ has no member named ‘frame_rate’

The ffmpeg patch in the wiki has fixed it.

-Robert

zm_mpeg.h

Posted: Thu Sep 14, 2006 1:46 am
by ManRoaming
Well here is the garbage that spewed forth AFTER I applied the patch with no reported error. This has turned into a real science project.
m_mpeg.Tpo" -c -o zm_mpeg.o zm_mpeg.cpp; \
then mv -f ".deps/zm_mpeg.Tpo" ".deps/zm_mpeg.Po"; else rm -f ".deps/zm_mpeg.Tpo"; exit 1; fi
zm_mpeg.cpp: In member function ‘void VideoStream::SetupCodec(int, int, int, int, int)’:
zm_mpeg.cpp:88: error: cannot convert ‘AVCodecContext**’ to ‘AVCodecContext*’ in initialization
zm_mpeg.cpp:109: error: ‘struct AVCodecContext’ has no member named ‘frame_rate’
zm_mpeg.cpp:110: error: ‘struct AVCodecContext’ has no member named ‘frame_rate_base’
zm_mpeg.cpp: In member function ‘void VideoStream::OpenStream()’:
zm_mpeg.cpp:161: error: cannot convert ‘AVCodecContext**’ to ‘AVCodecContext*’ in initialization
zm_mpeg.cpp: In destructor ‘VideoStream::~VideoStream()’:
zm_mpeg.cpp:256: error: cannot convert ‘AVCodecContext**’ to ‘AVCodecContext*’ for argument ‘1’ to ‘int avcodec_close(AVCodecContext*)’
zm_mpeg.cpp: In member function ‘double VideoStream::EncodeFrame(uint8_t*, int, bool, unsigned int)’:
zm_mpeg.cpp:303: error: cannot convert ‘AVCodecContext**’ to ‘AVCodecContext*’ in initialization
make[2]: *** [zm_mpeg.o] Error 1
make[2]: Leaving directory `/usr/local/ZoneMinder-1.22.2/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/ZoneMinder-1.22.2'
make: *** [all] Error 2
DidI apply the patch wrong? WTF?
Anyway, HELP!

Posted: Thu Sep 14, 2006 6:31 am
by essup
Well, how did you apply the patch then? Are there any error messages?

Posted: Sat Sep 16, 2006 3:01 pm
by ManRoaming
Fixed it already, thanks anyway. I am up and runnung now with gray scale pictures. fixing the color is next.

Posted: Sat Sep 16, 2006 4:34 pm
by jameswilson
how did you fix it?

re patch

Posted: Sun Sep 17, 2006 3:37 pm
by ManRoaming
Applied the patch, re-configured, re-made, re-installed. It works fine but only grayscale works. Funny the color works when running xawtv. Source goes red on the console and video stops when trying rgb24. Probably some tweak I haven't found yet.

Posted: Sun Sep 17, 2006 5:44 pm
by jameswilson
are your running at a res higher than 320x240?

color

Posted: Sun Sep 17, 2006 8:25 pm
by ManRoaming
Running 320X240 on all 6 CCD cameras. Same res displays color on all cams when looking through the BTTV card with xawtv. I have 3 BTTV cards in this PC, all clones bought on E-Bay. I'm probably missing a tewak somewhere, and theres planty of them in this package. Took me about a week of playing to get it running as it is. Grayscale pix looks good.

Posted: Sun Sep 17, 2006 9:45 pm
by jameswilson
and you have set all the paleets to 24 bit? That is wierd

fixed

Posted: Sun Sep 17, 2006 11:24 pm
by ManRoaming
Well I found the trick. I set all sources to RGB24 and restarted ZM. Now I have color on all cam feeds. I'm gonna screw with motion detection, recording, and web access later. Basking in this small victory for now.