Page 1 of 1

RTSP on x86_64?

Posted: Wed Jun 23, 2010 8:12 pm
by dbosso
Has anyone had success with RTSP on 64bit linux? I had it working fine on my 32bit install, and now after getting everything else working on a 64bit box I'm seeing issues similar to what's been reported here:
http://www.zoneminder.com/forums/viewtopic.php?t=15194
http://www.zoneminder.com/forums/viewtopic.php?t=15819

debug logs look like this for my axis cams:
06/23/10 12:13:06.240752 zmc_m3[-1].DB4-zm_rtsp.cpp/589 [Received]
06/23/10 12:13:06.241465 zmc_m3[-1].DB4-zm_rtsp.cpp/569 [Read 1448 bytes on sd 3, 1448 total]
06/23/10 12:13:06.241481 zmc_m3[-1].DB4-zm_rtsp.cpp/578 [Got 1448 bytes left, expecting 1444 byte packet on channel 60]
06/23/10 12:13:06.241491 zmc_m3[-1].DB4-zm_rtsp.cpp/586 [Got 1448 bytes on data channel 60, packet length is 1444]
06/23/10 12:13:06.241501 zmc_m3[-1].DB4-zm_rtsp.cpp/587 [16: 24 3c 05 a4 80 60 90 cc 12 ee 37 a8 1f 0d 33 f4]
06/23/10 12:13:06.241513 zmc_m3[-1].WAR-zm_rtp_data.cpp/57 [Discarding packet for unrecognised ssrc 75565f47]

over and over. I thought I check to see if anyone else had tracked this down. I've verified that ffmpeg works for direct access, and mjpeg seems to work OK.

Thanks.

-David

Fixed

Posted: Tue Jun 29, 2010 5:57 pm
by dbosso
OK, I think I found the fix for this. Turns out, assuming a long is 32bits is not such a good idea :shock:. Patch:

Code: Select all

diff -ur ZoneMinder-1.24.2.old/src/zm.h ZoneMinder-1.24.2/src/zm.h
--- ZoneMinder-1.24.2.old/src/zm.h	2009-03-20 05:07:00.000000000 -0700
+++ ZoneMinder-1.24.2/src/zm.h	2010-06-29 10:45:24.000000000 -0700
@@ -17,6 +17,8 @@
 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 // 
 
+#include "stdint.h"
+
 #ifndef ZM_H
 #define ZM_H
 
@@ -34,14 +36,14 @@
 #endif
 }
 
-typedef unsigned char       U8;
-typedef unsigned short      U16;
-typedef unsigned long       U32;
-typedef unsigned long long  U64;
-
-typedef signed char         S8;
-typedef signed short        S16;
-typedef signed long         S32;
-typedef signed long long    S64;
+typedef uint8_t             U8;
+typedef uint16_t            U16;
+typedef uint32_t            U32;
+typedef uint64_t            U64;
+
+typedef int8_t              S8;
+typedef int16_t             S16;
+typedef int32_t             S32;
+typedef int64_t             S64;
 
 #endif // ZM_H

Posted: Tue Jun 29, 2010 7:36 pm
by zoneminder
Thanks for that. I have been going through changing the types but have not published the mod yet.

Posted: Thu Aug 05, 2010 7:33 am
by ejcv
Ã

Posted: Wed Feb 23, 2011 6:41 am
by c0mputerking
Guess i am more of an newbie than i thought How do i make the patch work? Do i have to recompile zm or something?

I am running Ubuntu 10.04 LTS 64bit server edition and installed Zoneminder using the ports can't find the zm.h file anywhere on my system?

Posted: Thu Mar 10, 2011 8:15 pm
by c0mputerking
Anybody a hint? as to how i can get RSTP to work with Ubuntu 64 bit?