Page 1 of 1
co
Posted: Sun Oct 12, 2008 9:59 pm
by majost
zoneminder wrote:Updated. Slights tweaks to RTSP streaming and other minor web and script issues.
I have a compile time error which appears to be related to the changes to RTSP streaming.
Code: Select all
i486-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -I/usr/include -Wall -Wno-sign-compare -fno-inline -frepo -DZM_FFMPEG_CVS -DHAVE_LIBCRYPTO -MT zm_regexp.o -MD -MP -MF .deps/zm_regexp.Tpo -c -o zm_regexp.o zm_regexp.cpp
zm_regexp.cpp: In constructor ‘RegExpr::RegExpr(const char*, int, int)’:
zm_regexp.cpp:42: warning: suggest parentheses around assignment used as truth value
mv -f .deps/zm_regexp.Tpo .deps/zm_regexp.Po
i486-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -I/usr/include -Wall -Wno-sign-compare -fno-inline -frepo -DZM_FFMPEG_CVS -DHAVE_LIBCRYPTO -MT zm_remote_camera.o -MD -MP -MF .deps/zm_remote_camera.Tpo -c -o zm_remote_camera.o zm_remote_camera.cpp
mv -f .deps/zm_remote_camera.Tpo .deps/zm_remote_camera.Po
i486-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -I/usr/include -Wall -Wno-sign-compare -fno-inline -frepo -DZM_FFMPEG_CVS -DHAVE_LIBCRYPTO -MT zm_remote_camera_http.o -MD -MP -MF .deps/zm_remote_camera_http.Tpo -c -o zm_remote_camera_http.o zm_remote_camera_http.cpp
zm_remote_camera_http.cpp: In member function ‘int RemoteCameraHttp::GetResponse()’:
zm_remote_camera_http.cpp:613: warning: format not a string literal and no format arguments
mv -f .deps/zm_remote_camera_http.Tpo .deps/zm_remote_camera_http.Po
i486-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -I/usr/include -Wall -Wno-sign-compare -fno-inline -frepo -DZM_FFMPEG_CVS -DHAVE_LIBCRYPTO -MT zm_remote_camera_rtsp.o -MD -MP -MF .deps/zm_remote_camera_rtsp.Tpo -c -o zm_remote_camera_rtsp.o zm_remote_camera_rtsp.cpp
zm_remote_camera_rtsp.cpp: In member function ‘virtual int RemoteCameraRtsp::PostCapture(Image&)’:
zm_remote_camera_rtsp.cpp:233: error: ‘SWS_BICUBIC’ was not declared in this scope
zm_remote_camera_rtsp.cpp:233: error: ‘sws_getContext’ was not declared in this scope
zm_remote_camera_rtsp.cpp:238: error: ‘sws_scale’ was not declared in this scope
make[3]: *** [zm_remote_camera_rtsp.o] Error 1
make[3]: Leaving directory `/home/majost/src/zoneminder-1.24.0/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/majost/src/zoneminder-1.24.0'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/majost/src/zoneminder-1.24.0'
make: *** [build-stamp] Error 2
dpkg-buildpackage: failure: debian/rules build gave error exit status 2
Posted: Sun Oct 12, 2008 10:03 pm
by cordel
Correct, ffmpeg is required with swscale option.
Posted: Sun Oct 12, 2008 10:52 pm
by majost
cordel wrote:Correct, ffmpeg is required.
Ah.. Fixed that much, but now have an issue where zoneminder is trying to use call the function ff_dynarray_add.
Code: Select all
zm_sdp.o: In function `sdp_parse_line':
/home/majost/src/zoneminder-1.24.0/src/zm_sdp.c:418: undefined reference to `ff_dynarray_add'
Unfortunately the version of ffmpeg included with Ubuntu Intrepid (current beta scheduled for final release this month) uses an ffmpeg from back in Febuary. It appears the ffmpeg maintainers re-factored this function in late April.
http://lists.mplayerhq.hu/pipermail/ffm ... 13443.html
For now, I am just making a distribution/package specific patch to revert the function name to __dynarray_add. Unfortunately, I don't currently possess the skills to make a smarter patch for all. =(
EDIT: For those interested in the patch that cures the undefined reference to `ff_dynarray_add` on Ubuntu (or any other distribution), the patch is as follows:
Code: Select all
diff -rN -u old-zoneminder-1.24.0/src/zm_sdp.c new-zoneminder-1.24.0/src/zm_sdp.c
--- old-zoneminder-1.24.0/src/zm_sdp.c 2008-10-12 15:39:46.000000000 -0700
+++ new-zoneminder-1.24.0/src/zm_sdp.c 2008-10-12 15:39:46.000000000 -0700
@@ -25,7 +25,7 @@
// Part of libavformat/avformat.h that is usually obscured
//
-void ff_dynarray_add(unsigned long **tab_ptr, int *nb_ptr, unsigned long elem);
+void __dynarray_add(unsigned long **tab_ptr, int *nb_ptr, unsigned long elem);
#ifdef __GNUC__
#define dynarray_add(tab, nb_ptr, elem)\
@@ -33,12 +33,12 @@
typeof(tab) _tab = (tab);\
typeof(elem) _elem = (elem);\
(void)sizeof(**_tab == _elem); /* check that types are compatible */\
- ff_dynarray_add((unsigned long **)_tab, nb_ptr, (unsigned long)_elem);\
+ __dynarray_add((unsigned long **)_tab, nb_ptr, (unsigned long)_elem);\
} while(0)
#else
#define dynarray_add(tab, nb_ptr, elem)\
do {\
- ff_dynarray_add((unsigned long **)(tab), nb_ptr, (unsigned long)(elem));\
+ __dynarray_add((unsigned long **)(tab), nb_ptr, (unsigned long)(elem));\
} while(0)
#endif
Posted: Sun Oct 12, 2008 11:15 pm
by cordel
Or you could build a more current ffmpeg from source
Tanks for the time and patch, I'm sure it will help others how have an older package version of ffmpeg.
Posted: Tue Dec 23, 2008 6:44 am
by kylejohnson
cordel wrote:Or you could build a more current ffmpeg from source
Tanks for the time and patch, I'm sure it will help others how have an older package version of ffmpeg.
I did just that, using svn from ffmpeg.:
Code: Select all
root@cosmos:~/ffmpeg# cat version.h
#define FFMPEG_VERSION "SVN-r16286"
and still receive the same error.
Posted: Fri Dec 26, 2008 8:36 am
by nuck
kylejohnson wrote:
I did just that, using svn from ffmpeg.:
Code: Select all
root@cosmos:~/ffmpeg# cat version.h
#define FFMPEG_VERSION "SVN-r16286"
and still receive the same error.
Just a thought, but did you clean out the older version of ffmpeg before installing the newer version? If so (or not), did you then do a make clean and then another configure run... ?