[MPlayer-cvslog] r25480 - trunk/stream/asf_streaming.c

reimar subversion at mplayerhq.hu
Fri Dec 21 12:30:55 CET 2007


Author: reimar
Date: Fri Dec 21 12:30:55 2007
New Revision: 25480

Log:
Reduce some extreme parsing ugliness (mostly cosmetic)


Modified:
   trunk/stream/asf_streaming.c

Modified: trunk/stream/asf_streaming.c
==============================================================================
--- trunk/stream/asf_streaming.c	(original)
+++ trunk/stream/asf_streaming.c	Fri Dec 21 12:30:55 2007
@@ -25,6 +25,8 @@
 #include "network.h"
 #include "tcp.h"
 
+#include "libavutil/intreadwrite.h"
+
 #ifdef ARCH_X86
 #define	ASF_LOAD_GUID_PREFIX(guid)	(*(uint32_t *)(guid))
 #else
@@ -305,24 +307,24 @@ static int asf_streaming_parse_header(in
     // stream bitrate properties object
 	int stream_count;
 	char *ptr = &buffer[pos];
+	char *end = &buffer[size];
 	
 	mp_msg(MSGT_NETWORK, MSGL_V, "Stream bitrate properties object\n");
-		stream_count = le2me_16(*(uint16_t*)ptr);
-		ptr += sizeof(uint16_t);
-		if (ptr > &buffer[size]) goto len_err_out;
+		stream_count = AV_RL16(ptr);
+		ptr += 2;
+		if (ptr > end) goto len_err_out;
 		mp_msg(MSGT_NETWORK, MSGL_V, " stream count=[0x%x][%u]\n",
 		        stream_count, stream_count );
 		for( i=0 ; i<stream_count ; i++ ) {
 			uint32_t rate;
 			int id;
 			int j;
-			id = le2me_16(*(uint16_t*)ptr);
-			ptr += sizeof(uint16_t);
-			if (ptr > &buffer[size]) goto len_err_out;
-			memcpy(&rate, ptr, sizeof(uint32_t));// workaround unaligment bug on sparc
-			ptr += sizeof(uint32_t);
-			if (ptr > &buffer[size]) goto len_err_out;
-			rate = le2me_32(rate);
+			id = AV_RL16(ptr);
+			ptr += 2;
+			if (ptr > end) goto len_err_out;
+			rate = AV_RL32(ptr);
+			ptr += 4;
+			if (ptr > end) goto len_err_out;
 			mp_msg(MSGT_NETWORK, MSGL_V,
                                 "  stream id=[0x%x][%u]\n", id, id);
 			mp_msg(MSGT_NETWORK, MSGL_V,



More information about the MPlayer-cvslog mailing list