[MPlayer-cvslog] r24100 - in trunk/dvdread: bswap.h libdvdread_changes.diff
reimar
subversion at mplayerhq.hu
Sun Aug 19 11:07:56 CEST 2007
Author: reimar
Date: Sun Aug 19 11:07:56 2007
New Revision: 24100
Log:
Replace dvdread bswap.h by something more sane for us.
Modified:
trunk/dvdread/bswap.h
trunk/dvdread/libdvdread_changes.diff
Modified: trunk/dvdread/bswap.h
==============================================================================
--- trunk/dvdread/bswap.h (original)
+++ trunk/dvdread/bswap.h Sun Aug 19 11:07:56 2007
@@ -1,168 +1,16 @@
-/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
-#ifndef BSWAP_H_INCLUDED
-#define BSWAP_H_INCLUDED
-
-/*
- * Copyright (C) 2000, 2001 Billy Biggs <vektor at dumbterm.net>,
- * Håkan Hjort <d95hjort at dtek.chalmers.se>
- *
- * Modified for use with MPlayer, changes contained in libdvdread_changes.diff.
- * detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#if defined(WORDS_BIGENDIAN)
-/* All bigendian systems are fine, just ignore the swaps. */
-#define B2N_16(x) (void)(x)
-#define B2N_32(x) (void)(x)
-#define B2N_64(x) (void)(x)
-
-#else
-
-/* For __FreeBSD_version */
-#if defined(HAVE_SYS_PARAM_H)
-#include <sys/param.h>
-#endif
-
-#if defined(__linux__)
-#include <byteswap.h>
-#define B2N_16(x) x = bswap_16(x)
-#define B2N_32(x) x = bswap_32(x)
-#define B2N_64(x) x = bswap_64(x)
-
-#elif defined(__NetBSD__)
-#include <sys/endian.h>
-#define B2N_16(x) BE16TOH(x)
-#define B2N_32(x) BE32TOH(x)
-#define B2N_64(x) BE64TOH(x)
+#ifndef DVDREAD_BSWAP_H
+#define DVDREAD_BSWAP_H
-#elif defined(__OpenBSD__)
-#include <sys/endian.h>
-#define B2N_16(x) x = swap16(x)
-#define B2N_32(x) x = swap32(x)
-#define B2N_64(x) x = swap64(x)
+#include "../libavutil/bswap.h"
-#elif defined(__FreeBSD__) && __FreeBSD_version >= 470000
-#include <sys/endian.h>
-#define B2N_16(x) x = be16toh(x)
-#define B2N_32(x) x = be32toh(x)
-#if __FreeBSD_version >= 500000
-#define B2N_64(x) x = be64toh(x)
+#ifdef WORDS_BIGENDIAN
+#define B2N_16(x)
+#define B2N_32(x)
+#define B2N_64(x)
#else
-#define B2N_64(x) \
- x = ((((x) & 0xff00000000000000) >> 56) | \
- (((x) & 0x00ff000000000000) >> 40) | \
- (((x) & 0x0000ff0000000000) >> 24) | \
- (((x) & 0x000000ff00000000) >> 8) | \
- (((x) & 0x00000000ff000000) << 8) | \
- (((x) & 0x0000000000ff0000) << 24) | \
- (((x) & 0x000000000000ff00) << 40) | \
- (((x) & 0x00000000000000ff) << 56))
-#endif /* _FreeBSD_version >= 500000 */
-
-#elif defined(__DragonFly__)
-#include <sys/endian.h>
-#define B2N_16(x) x = be16toh(x)
-#define B2N_32(x) x = be32toh(x)
-#define B2N_64(x) x = be64toh(x)
-
-
-#elif defined(__APPLE__) || defined(__DARWIN__)
-#include <libkern/OSByteOrder.h>
-#define B2N_16(x) x = OSSwapBigToHostConstInt16(x)
-#define B2N_32(x) x = OSSwapBigToHostConstInt32(x)
-#define B2N_64(x) x = OSSwapBigToHostConstInt64(x)
-
-#elif defined(ARCH_X86)
-inline static unsigned short bswap_16(unsigned short x)
-{
- __asm("xchgb %b0,%h0" :
- "=q" (x) :
- "0" (x));
- return x;
-}
#define B2N_16(x) x = bswap_16(x)
-
-inline static unsigned int bswap_32(unsigned int x)
-{
- __asm(
-#if __CPU__ != 386
- "bswap %0":
- "=r" (x) :
-#else
- "xchgb %b0,%h0\n"
- " rorl $16,%0\n"
- " xchgb %b0,%h0":
- "=q" (x) :
-#endif
- "0" (x));
- return x;
-}
#define B2N_32(x) x = bswap_32(x)
-
-inline static unsigned long long int bswap_64(unsigned long long int x)
-{
- register union { __extension__ uint64_t __ll;
- uint32_t __l[2]; } __x;
- asm("xchgl %0,%1":
- "=r"(__x.__l[0]),"=r"(__x.__l[1]):
- "0"(bswap_32((unsigned long)x)),"1"(bswap_32((unsigned long)(x>>32))));
- return __x.__ll;
-}
#define B2N_64(x) x = bswap_64(x)
-
-#else
-#if defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__BEOS__) || defined(__INTERIX) || defined(__CYGWIN__)
-/* These systems don't have swap macros */
-#else
-/* If there isn't a header provided with your system with this functionality
- * add the relevant || define( ) to the list above.
- */
-#warning "You should add endian swap macros for your system"
#endif
-/* This is a slow but portable implementation, it has multiple evaluation
- * problems so beware.
- * Old FreeBSD's and Solaris don't have <byteswap.h> or any other such
- * functionality!
- */
-
-#define B2N_16(x) \
- x = ((((x) & 0xff00) >> 8) | \
- (((x) & 0x00ff) << 8))
-#define B2N_32(x) \
- x = ((((x) & 0xff000000) >> 24) | \
- (((x) & 0x00ff0000) >> 8) | \
- (((x) & 0x0000ff00) << 8) | \
- (((x) & 0x000000ff) << 24))
-#define B2N_64(x) \
- x = ((((x) & 0xff00000000000000) >> 56) | \
- (((x) & 0x00ff000000000000) >> 40) | \
- (((x) & 0x0000ff0000000000) >> 24) | \
- (((x) & 0x000000ff00000000) >> 8) | \
- (((x) & 0x00000000ff000000) << 8) | \
- (((x) & 0x0000000000ff0000) << 24) | \
- (((x) & 0x000000000000ff00) << 40) | \
- (((x) & 0x00000000000000ff) << 56))
-
-
-
#endif
-
-#endif /* WORDS_BIGENDIAN */
-
-#endif /* BSWAP_H_INCLUDED */
Modified: trunk/dvdread/libdvdread_changes.diff
==============================================================================
--- trunk/dvdread/libdvdread_changes.diff (original)
+++ trunk/dvdread/libdvdread_changes.diff Sun Aug 19 11:07:56 2007
@@ -1,53 +1,3 @@
---- dvdread.orig/bswap.h 2007-08-16 09:18:58.000000000 +0200
-+++ dvdread/bswap.h 2007-08-16 09:19:02.000000000 +0200
-@@ -83,8 +87,46 @@
- #define B2N_32(x) x = OSSwapBigToHostConstInt32(x)
- #define B2N_64(x) x = OSSwapBigToHostConstInt64(x)
-
-+#elif defined(ARCH_X86)
-+inline static unsigned short bswap_16(unsigned short x)
-+{
-+ __asm("xchgb %b0,%h0" :
-+ "=q" (x) :
-+ "0" (x));
-+ return x;
-+}
-+#define B2N_16(x) x = bswap_16(x)
-+
-+inline static unsigned int bswap_32(unsigned int x)
-+{
-+ __asm(
-+#if __CPU__ != 386
-+ "bswap %0":
-+ "=r" (x) :
- #else
--#if defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__BEOS__) || defined(__INTERIX)
-+ "xchgb %b0,%h0\n"
-+ " rorl $16,%0\n"
-+ " xchgb %b0,%h0":
-+ "=q" (x) :
-+#endif
-+ "0" (x));
-+ return x;
-+}
-+#define B2N_32(x) x = bswap_32(x)
-+
-+inline static unsigned long long int bswap_64(unsigned long long int x)
-+{
-+ register union { __extension__ uint64_t __ll;
-+ uint32_t __l[2]; } __x;
-+ asm("xchgl %0,%1":
-+ "=r"(__x.__l[0]),"=r"(__x.__l[1]):
-+ "0"(bswap_32((unsigned long)x)),"1"(bswap_32((unsigned long)(x>>32))));
-+ return __x.__ll;
-+}
-+#define B2N_64(x) x = bswap_64(x)
-+
-+#else
-+#if defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__BEOS__) || defined(__INTERIX) || defined(__CYGWIN__)
- /* These systems don't have swap macros */
- #else
- /* If there isn't a header provided with your system with this functionality
--- dvdread.orig/dvd_reader.c 2007-08-06 13:34:37.000000000 +0200
+++ dvdread/dvd_reader.c 2007-08-06 13:35:19.000000000 +0200
@@ -39,9 +43,11 @@
More information about the MPlayer-cvslog
mailing list