[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog plugin/Makefile.am libamf/amf.c...
From: |
Rob Savoye |
Subject: |
[Gnash-commit] gnash ChangeLog plugin/Makefile.am libamf/amf.c... |
Date: |
Wed, 02 Aug 2006 01:23:00 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Rob Savoye <rsavoye> 06/08/02 01:22:59
Modified files:
. : ChangeLog
plugin : Makefile.am
libamf : amf.cpp amf.h rtmp.cpp rtmp.h
macros : kde.m4
Log message:
* libamf/amf.cpp, amf.h: Changes for cleaner 64 bit support.
* libamf/rtmp.cpp, rtmp.h: Read multiple packets till the entire
body is read in.
* macros/kde.m4: Remove 64 libraries as weel as 32 bit ones for
sed.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.572&r2=1.573
http://cvs.savannah.gnu.org/viewcvs/gnash/plugin/Makefile.am?cvsroot=gnash&r1=1.29&r2=1.30
http://cvs.savannah.gnu.org/viewcvs/gnash/libamf/amf.cpp?cvsroot=gnash&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/gnash/libamf/amf.h?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/libamf/rtmp.cpp?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/libamf/rtmp.h?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/macros/kde.m4?cvsroot=gnash&r1=1.10&r2=1.11
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.572
retrieving revision 1.573
diff -u -b -r1.572 -r1.573
--- ChangeLog 1 Aug 2006 23:12:48 -0000 1.572
+++ ChangeLog 2 Aug 2006 01:22:59 -0000 1.573
@@ -1,3 +1,11 @@
+2006-08-01 Rob Savoye <address@hidden>
+
+ * libamf/amf.cpp, amf.h: Changes for cleaner 64 bit support.
+ * libamf/rtmp.cpp, rtmp.h: Read multiple packets till the entire
+ body is read in.
+ * macros/kde.m4: Remove 64 libraries as weel as 32 bit ones for
+ sed.
+
2006-08-02 Sandro Santilli <address@hidden>
* gui/Makefile.am: use a GNASH_LIBS variable, to make future
Index: plugin/Makefile.am
===================================================================
RCS file: /sources/gnash/gnash/plugin/Makefile.am,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- plugin/Makefile.am 29 Jul 2006 23:12:53 -0000 1.29
+++ plugin/Makefile.am 2 Aug 2006 01:22:59 -0000 1.30
@@ -137,7 +137,7 @@
../server/asobj/libgnashasobjs.la \
../server/libgnashserver.la\
../libgeometry/libgnashgeo.la\
- ../libbase/libgnashbase.la
+ ../libamf/libgnashamf.la
# -lXi -lX11
# -lXmu
Index: libamf/amf.cpp
===================================================================
RCS file: /sources/gnash/gnash/libamf/amf.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- libamf/amf.cpp 1 Aug 2006 20:09:00 -0000 1.5
+++ libamf/amf.cpp 2 Aug 2006 01:22:59 -0000 1.6
@@ -144,7 +144,7 @@
switch (type) {
case Number:
num = *(amfnum_t *)swapBytes(x+1, 8);
- log_msg("Number is %lld", num);
+ log_msg("Number is " AMFNUM_F, num);
return 8;
break;
case Boolean:
@@ -161,7 +161,7 @@
// *src to a sequence of wide characters as if by repeated
// calls of the form:
// mbsrtowcs
- log_msg("String is %s\n", mstr);
+// log_msg("String is %s\n", mstr);
break;
case Object:
// log_msg("Object is unimplemented\n");
@@ -189,12 +189,8 @@
// log_msg("StrictArray is unimplemented\n");
break;
case Date:
-# if __WORDSIZE == 64
- nanosecs = *(long *)swapBytes(x+1, 8);
-#else
- nanosecs= *(long long *)swapBytes(x+1, 8);
-#endif
- log_msg("Date is %lld nanoseconds\n", nanosecs);
+ nanosecs = *(amfnum_t *)swapBytes(x+1, 8);
+ log_msg("Date is " AMFNUM_F " nanoseconds\n", nanosecs);
return 8;
break;
case LongString:
@@ -241,7 +237,7 @@
void *
AMF::encodeElement(astype_e type, void *in, int nbytes)
{
- char *out, *x;
+ char *out = NULL, *x;
amfnum_t num;
int pktsize;
@@ -436,14 +432,14 @@
log_msg("Reference unimplemented");
break;
case ECMAArray:
- return (int)x - (int)strchr(x, TERMINATOR);
+ return x - strchr(x, TERMINATOR);
break;
case ObjectEnd:
return -1;
log_msg("ObjectEnd unimplemented");
break;
case StrictArray: // the length is a 4 byte value
- return (int)*(int *)x;
+// return (int *)x;
break;
case Date: // a 64 bit numeric value
return 8;
@@ -461,10 +457,10 @@
log_msg("Recordset unimplemented");
break;
case XMLObject: // the length is a 4 byte value
- return (int)*(int *)x;
+// return (int)*(int *)x;
break;
case TypedObject:
- return (int)x - (int)strchr(x, TERMINATOR);
+ return x - strchr(x, TERMINATOR);
break;
};
@@ -487,7 +483,7 @@
memset(buf, 0, length);
ptr = buf;
- // The first two bytes are the byte ciount for the UTF8 string,
+ // The first two bytes are the byte count for the UTF8 string,
// which is in big-endian format.
length = name->length;
swapBytes(&length, sizeof(AMF_Int_t));
Index: libamf/amf.h
===================================================================
RCS file: /sources/gnash/gnash/libamf/amf.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- libamf/amf.h 1 Aug 2006 16:57:35 -0000 1.4
+++ libamf/amf.h 2 Aug 2006 01:22:59 -0000 1.5
@@ -51,8 +51,10 @@
# if __WORDSIZE == 64
typedef long amfnum_t;
+#define AMFNUM_F "%ld"
#else
typedef long long amfnum_t;
+#define AMFNUM_F "%lld"
#endif
// These are the data types defined by AMF
Index: libamf/rtmp.cpp
===================================================================
RCS file: /sources/gnash/gnash/libamf/rtmp.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libamf/rtmp.cpp 1 Aug 2006 16:57:35 -0000 1.1
+++ libamf/rtmp.cpp 2 Aug 2006 01:22:59 -0000 1.2
@@ -215,6 +215,7 @@
int
RTMPproto::headerSize(char header)
{
+ unsigned char hexint[2];
switch (header & RTMP_HEADSIZE_MASK) {
case HEADER_12:
return(12);
@@ -229,7 +230,9 @@
return(1);
break;
default:
- dbglogfile << "ERROR: Header size bits out of range!" << endl;
+ hexify((unsigned char *)hexint, (unsigned char *)&header, 1);
+ dbglogfile << "ERROR: Header size bits out of range! was 0x"
+ << hexint << endl;
return -1;
break;
};
@@ -305,6 +308,8 @@
dbglogfile << "The body size is: " << _bodysize
<< " Hex value is: 0x" << hexint << endl;
}
+// _amf_data[_amf_number] = new unsigned char(_bodysize);
+ _amf_size[_amf_number] = 0;
if (_headersize >= 8) {
hexify((unsigned char *)hexint, (unsigned char *)tmpptr, 1);
@@ -360,13 +365,15 @@
}
#endif
- packetReadAMF(0);
+ while ((ret = packetReadAMF(0)) > 0) {
+ dbglogfile << "Reading AMF packetes till we're done..." << endl;
+ }
// _amf_data
return true;
}
-bool
+int
RTMPproto::packetReadAMF(int bytes)
{
GNASH_REPORT_FUNCTION;
@@ -376,45 +383,63 @@
unsigned char hexint[(AMFBODY_PACKET_SIZE*2)+1];
char *tmpptr;
unsigned char *amfdata;
+ int amf_index;
if (bytes == 0) {
bytes = AMFBODY_PACKET_SIZE;
}
memset(buffer, 0, AMFBODY_PACKET_SIZE+1);
- if ((ret = readNet(buffer, bytes)) > 0) {
+ if ((ret = readNet(buffer, bytes)) >= 0) {
+ if (ret == 0) {
+ dbglogfile << "Done reading AMF message" << endl;
+ return ret;
+ }
dbglogfile << "Read AMF packet, " << ret
<< " bytes in size." << endl;
} else {
dbglogfile << "ERROR: Couldn't read AMF packet!" << endl;
- return false;
+ return -1;
}
+
tmpptr = buffer;
-// hexify((unsigned char *)hexint, (unsigned char *)tmpptr, bytes);
-// dbglogfile << "AMF packet: 0x" << hexint << endl;
+ hexify((unsigned char *)hexint, (unsigned char *)tmpptr, 40);
+ dbglogfile << "AMF packet: 0x" << hexint << endl;
+
+ switch (*tmpptr & RTMP_HEADSIZE_MASK) {
+ case 0x02:
+ case 0x03:
+ _headersize = 12;
+ break;
+ case 0x43:
+ _headersize = 8;
+ break;
+ case 0x83:
+ _headersize = 4;
+ break;
+ case 0xc3:
+ _headersize = 1;
+ break;
+ default:
+ hexify((unsigned char *)hexint, (unsigned char *)tmpptr, 1);
+ dbglogfile << "ERROR: Header size bits out of range! was 0x"
+ << hexint << endl;
+ _headersize = 1;
+ break;
+ };
- _headersize = headerSize(*tmpptr);
- _amf_number = *tmpptr & RTMP_AMF_INDEX;
+ amf_index = *tmpptr & RTMP_AMF_INDEX;
tmpptr++;
dbglogfile << "The Header size is: " << _headersize << endl;
- dbglogfile << "The AMF index is: 0x" << _amf_number << endl;
+ dbglogfile << "The AMF index is: 0x" << amf_index << endl;
+ dbglogfile << "Read " << ret << " bytes" << endl;
- if (_amf_size[_amf_number] == 0) {
-// unsigned char *amfdata = new unsigned char(_bodysize);
-// memcpy(amfdata, tmpptr, _bodysize);
-// _amf_data[_amf_number] = amfdata;
- _amf_size[_amf_number] = _bodysize;
- } else {
-// unsigned char *amfdata = new unsigned
-// char(_amf_size[_amf_number] + _bodysize);
-// memcpy(amfdata, _amf_data[_amf_number], _amf_size[_amf_number]);
-// memcpy(amfdata +_amf_size[_amf_number], tmpptr, _bodysize);
- _amf_size[_amf_number] += _bodysize;
+// memcpy(_amf_data[_amf_index]+_amf_size[amf_index],
+// AMFBODY_PACKET_SIZE);
+ _amf_size[amf_index] += ret;
-// delete _amf_data[_amf_number];
-// _amf_data[_amf_number] = amfdata;
- }
+ return ret;
}
Index: libamf/rtmp.h
===================================================================
RCS file: /sources/gnash/gnash/libamf/rtmp.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- libamf/rtmp.h 1 Aug 2006 16:57:35 -0000 1.1
+++ libamf/rtmp.h 2 Aug 2006 01:22:59 -0000 1.2
@@ -106,12 +106,12 @@
virtual bool packetSend();
virtual bool packetRead();
int headerSize(char header);
- bool packetReadAMF(int bytes);
+ int packetReadAMF(int bytes);
private:
int _headersize;
int _amf_number;
char *_body;
- unsigned int _bodysize;
+ int _bodysize;
rtmp_types_e _type;
unsigned char *_amf_data[MAX_AMF_INDEXES];
int _amf_size[MAX_AMF_INDEXES];
Index: macros/kde.m4
===================================================================
RCS file: /sources/gnash/gnash/macros/kde.m4,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- macros/kde.m4 28 Jul 2006 16:45:53 -0000 1.10
+++ macros/kde.m4 2 Aug 2006 01:22:59 -0000 1.11
@@ -1869,7 +1869,7 @@
KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL
-DQT_NO_COMPAT -DQT_NO_TRANSLATION"
-KDE_LDFLAGS=`echo $kde_libraries | sed -e 's:/usr/lib::'`
+KDE_LDFLAGS=`echo $kde_libraries | sed -e 's:/usr/lib64::;s:/usr/lib::'`
if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" =
"$qt_libraries" ; then
all_libraries="$KDE_LDFLAGS $all_libraries"
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog plugin/Makefile.am libamf/amf.c...,
Rob Savoye <=