[MPlayer-cvslog] CVS: main/libmpdemux demux_mkv.c,1.55,1.56

Moritz Bunkus CVS syncmail at mplayerhq.hu
Wed Mar 22 19:58:05 CET 2006


CVS change done by Moritz Bunkus CVS

Update of /cvsroot/mplayer/main/libmpdemux
In directory mail:/var2/tmp/cvs-serv3839

Modified Files:
	demux_mkv.c 
Log Message:
Fix for playing RealVideo on PPC/big endian processors. Patch by Emanuele Giaquinta (emanuele ! giaquinta () gmail ! com).

Index: demux_mkv.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/demux_mkv.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- demux_mkv.c	27 Feb 2006 19:48:31 -0000	1.55
+++ demux_mkv.c	22 Mar 2006 18:58:03 -0000	1.56
@@ -2724,12 +2724,26 @@
   dp_hdr_t *hdr;
   uint8_t chunks;
   int isize;
+#ifdef WORDS_BIGENDIAN
+  uint8_t *p;
+  int i;
+#endif
 
   chunks = *buffer++;
   isize = --size - (chunks+1)*8;
   dp = new_demux_packet (sizeof (*hdr) + size);
   memcpy (dp->buffer + sizeof(*hdr), buffer + (chunks+1)*8, isize);
+#ifdef WORDS_BIGENDIAN
+  p = (uint8_t *)(dp->buffer + sizeof(*hdr) + isize);
+  for (i = 0; i<(chunks+1)*8; i+=4) {
+    p[i] = *((uint8_t *)buffer+i+3);
+    p[i+1] = *((uint8_t *)buffer+i+2);
+    p[i+2] = *((uint8_t *)buffer+i+1);
+    p[i+3] = *((uint8_t *)buffer+i);
+  }
+#else
   memcpy (dp->buffer + sizeof(*hdr) + isize, buffer, (chunks+1)*8);
+#endif
 
   hdr = (dp_hdr_t *) dp->buffer;
   hdr->len = isize;




More information about the MPlayer-cvslog mailing list