summaryrefslogtreecommitdiffstats
path: root/libmpeg2
diff options
context:
space:
mode:
authorhenry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-09 10:34:27 +0000
committerhenry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-09 10:34:27 +0000
commitb4e852b30544d1dbeb4cb3514685b43049316002 (patch)
tree15b0c920feb527a0dd68dd64ecece4152a52f6a8 /libmpeg2
parentfcb30369d800a824dfb29710cc8530150cebfc51 (diff)
downloadmpv-b4e852b30544d1dbeb4cb3514685b43049316002.tar.bz2
mpv-b4e852b30544d1dbeb4cb3514685b43049316002.tar.xz
sync to libmpeg2-0.4.1
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21542 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpeg2')
-rw-r--r--libmpeg2/attributes.h2
-rw-r--r--libmpeg2/cpu_accel.c18
-rw-r--r--libmpeg2/cpu_state.c18
-rw-r--r--libmpeg2/decode.c2
-rw-r--r--libmpeg2/header.c2
-rw-r--r--libmpeg2/idct.c4
-rw-r--r--libmpeg2/idct_alpha.c2
-rw-r--r--libmpeg2/idct_altivec.c8
-rw-r--r--libmpeg2/idct_mmx.c2
-rw-r--r--libmpeg2/libmpeg-0.4.1.diff (renamed from libmpeg2/libmpeg-0.4.0.diff)63
-rw-r--r--libmpeg2/motion_comp.c2
-rw-r--r--libmpeg2/motion_comp_mmx.c4
-rw-r--r--libmpeg2/mpeg2.h4
-rw-r--r--libmpeg2/mpeg2_internal.h2
-rw-r--r--libmpeg2/slice.c2
15 files changed, 38 insertions, 97 deletions
diff --git a/libmpeg2/attributes.h b/libmpeg2/attributes.h
index e1d311a08e..ef3965c411 100644
--- a/libmpeg2/attributes.h
+++ b/libmpeg2/attributes.h
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
diff --git a/libmpeg2/cpu_accel.c b/libmpeg2/cpu_accel.c
index 43d45ed649..59f7167c37 100644
--- a/libmpeg2/cpu_accel.c
+++ b/libmpeg2/cpu_accel.c
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
@@ -50,7 +50,7 @@ static inline uint32_t arch_accel (void)
int AMD;
uint32_t caps;
-#if !defined(PIC) && !defined(__PIC__)
+#if defined(__x86_64__) || (!defined(PIC) && !defined(__PIC__))
#define cpuid(op,eax,ebx,ecx,edx) \
__asm__ ("cpuid" \
: "=a" (eax), \
@@ -59,12 +59,12 @@ static inline uint32_t arch_accel (void)
"=d" (edx) \
: "a" (op) \
: "cc")
-#else /* PIC version : save ebx */
+#else /* PIC version : save ebx (not needed on x86_64) */
#define cpuid(op,eax,ebx,ecx,edx) \
- __asm__ ("push %%ebx\n\t" \
+ __asm__ ("pushl %%ebx\n\t" \
"cpuid\n\t" \
"movl %%ebx,%1\n\t" \
- "pop %%ebx" \
+ "popl %%ebx" \
: "=a" (eax), \
"=r" (ebx), \
"=c" (ecx), \
@@ -73,6 +73,7 @@ static inline uint32_t arch_accel (void)
: "cc")
#endif
+#ifndef __x86_64__ /* x86_64 supports the cpuid op */
__asm__ ("pushf\n\t"
"pushf\n\t"
"pop %0\n\t"
@@ -90,6 +91,7 @@ static inline uint32_t arch_accel (void)
if (eax == ebx) /* no cpuid */
return 0;
+#endif
cpuid (0x00000000, eax, ebx, ecx, edx);
if (!eax) /* vendor string only */
@@ -154,7 +156,7 @@ static RETSIGTYPE sigill_handler (int sig)
}
#ifdef ARCH_PPC
-static inline uint32_t arch_accel (void)
+static uint32_t arch_accel (void)
{
static RETSIGTYPE (* oldsig) (int);
@@ -184,7 +186,7 @@ static inline uint32_t arch_accel (void)
#endif /* ARCH_PPC */
#ifdef ARCH_SPARC
-static inline uint32_t arch_accel (void)
+static uint32_t arch_accel (void)
{
static RETSIGTYPE (* oldsig) (int);
@@ -220,7 +222,7 @@ static inline uint32_t arch_accel (void)
#endif /* ARCH_PPC || ARCH_SPARC */
#ifdef ARCH_ALPHA
-static inline uint32_t arch_accel (void)
+static uint32_t arch_accel (void)
{
#ifdef CAN_COMPILE_ALPHA_MVI
uint64_t no_mvi;
diff --git a/libmpeg2/cpu_state.c b/libmpeg2/cpu_state.c
index b1113ed715..07b9ebf354 100644
--- a/libmpeg2/cpu_state.c
+++ b/libmpeg2/cpu_state.c
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
@@ -47,19 +47,19 @@ static void state_restore_mmx (cpu_state_t * state)
}
#endif
-#if defined( ARCH_PPC ) && defined( HAVE_ALTIVEC )
-#if defined( __APPLE_CC__ ) && defined( __APPLE_ALTIVEC__ ) /* apple */
-#define LI(a,b) "li r" #a "," #b "\n\t"
-#define STVX0(a,b,c) "stvx v" #a ",0,r" #c "\n\t"
-#define STVX(a,b,c) "stvx v" #a ",r" #b ",r" #c "\n\t"
-#define LVX0(a,b,c) "lvx v" #a ",0,r" #c "\n\t"
-#define LVX(a,b,c) "lvx v" #a ",r" #b ",r" #c "\n\t"
-#else /* gnu */
+#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC_H /* gnu */
#define LI(a,b) "li " #a "," #b "\n\t"
#define STVX0(a,b,c) "stvx " #a ",0," #c "\n\t"
#define STVX(a,b,c) "stvx " #a "," #b "," #c "\n\t"
#define LVX0(a,b,c) "lvx " #a ",0," #c "\n\t"
#define LVX(a,b,c) "lvx " #a "," #b "," #c "\n\t"
+#else /* apple */
+#define LI(a,b) "li r" #a "," #b "\n\t"
+#define STVX0(a,b,c) "stvx v" #a ",0,r" #c "\n\t"
+#define STVX(a,b,c) "stvx v" #a ",r" #b ",r" #c "\n\t"
+#define LVX0(a,b,c) "lvx v" #a ",0,r" #c "\n\t"
+#define LVX(a,b,c) "lvx v" #a ",r" #b ",r" #c "\n\t"
#endif
static void state_save_altivec (cpu_state_t * state)
diff --git a/libmpeg2/decode.c b/libmpeg2/decode.c
index 94cf010538..ebfcaaf6f8 100644
--- a/libmpeg2/decode.c
+++ b/libmpeg2/decode.c
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
diff --git a/libmpeg2/header.c b/libmpeg2/header.c
index 2df830b39b..5d59b3a193 100644
--- a/libmpeg2/header.c
+++ b/libmpeg2/header.c
@@ -21,7 +21,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
diff --git a/libmpeg2/idct.c b/libmpeg2/idct.c
index 46ecec8a68..df4979b63f 100644
--- a/libmpeg2/idct.c
+++ b/libmpeg2/idct.c
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
@@ -253,7 +253,7 @@ void mpeg2_idct_init (uint32_t accel)
mpeg2_idct_mmx_init ();
} else
#endif
-#if defined( ARCH_PPC ) && defined( HAVE_ALTIVEC )
+#ifdef ARCH_PPC
if (accel & MPEG2_ACCEL_PPC_ALTIVEC) {
mpeg2_idct_copy = mpeg2_idct_copy_altivec;
mpeg2_idct_add = mpeg2_idct_add_altivec;
diff --git a/libmpeg2/idct_alpha.c b/libmpeg2/idct_alpha.c
index 74ebedf43d..95d580fe1c 100644
--- a/libmpeg2/idct_alpha.c
+++ b/libmpeg2/idct_alpha.c
@@ -21,7 +21,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
diff --git a/libmpeg2/idct_altivec.c b/libmpeg2/idct_altivec.c
index 3eec6b49d0..6b1b8586c0 100644
--- a/libmpeg2/idct_altivec.c
+++ b/libmpeg2/idct_altivec.c
@@ -41,7 +41,7 @@ typedef vector unsigned short vector_u16_t;
typedef vector signed int vector_s32_t;
typedef vector unsigned int vector_u32_t;
-#if defined( HAVE_ALTIVEC_H ) && !defined( __APPLE_ALTIVEC__ ) && (__GNUC__ * 100 + __GNUC_MINOR__ < 303)
+#if defined(HAVE_ALTIVEC_H) && (__GNUC__ * 100 + __GNUC_MINOR__ < 303)
/* work around gcc <3.3 vec_mergel bug */
static inline vector_s16_t my_vec_mergel (vector_s16_t const A,
vector_s16_t const B)
@@ -56,10 +56,10 @@ static inline vector_s16_t my_vec_mergel (vector_s16_t const A,
#define vec_mergel my_vec_mergel
#endif
-#if defined( __APPLE_CC__ ) && defined( __APPLE_ALTIVEC__ ) /* apple */
-#define VEC_S16(a,b,c,d,e,f,g,h) (vector_s16_t) (a, b, c, d, e, f, g, h)
-#else /* gnu */
+#ifdef HAVE_ALTIVEC_H /* gnu */
#define VEC_S16(a,b,c,d,e,f,g,h) {a, b, c, d, e, f, g, h}
+#else /* apple */
+#define VEC_S16(a,b,c,d,e,f,g,h) (vector_s16_t) (a, b, c, d, e, f, g, h)
#endif
static const vector_s16_t constants ATTR_ALIGN(16) =
diff --git a/libmpeg2/idct_mmx.c b/libmpeg2/idct_mmx.c
index 8f6359c3f9..da477698ae 100644
--- a/libmpeg2/idct_mmx.c
+++ b/libmpeg2/idct_mmx.c
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
diff --git a/libmpeg2/libmpeg-0.4.0.diff b/libmpeg2/libmpeg-0.4.1.diff
index 64beba9310..7ea7e27784 100644
--- a/libmpeg2/libmpeg-0.4.0.diff
+++ b/libmpeg2/libmpeg-0.4.1.diff
@@ -170,21 +170,6 @@
mpeg2dec->fbuf[0] = &mpeg2dec->fbuf_alloc[0].fbuf;
mpeg2dec->fbuf[1] = &mpeg2dec->fbuf_alloc[1].fbuf;
mpeg2dec->fbuf[2] = &mpeg2dec->fbuf_alloc[2].fbuf;
-@@ -272,9 +272,11 @@
- if (!(buffer[2] & 2)) /* missing marker_bit */
- return 1;
-
-- sequence->display_width = (buffer[1] << 6) | (buffer[2] >> 2);
-- sequence->display_height =
-- ((buffer[2]& 1 ) << 13) | (buffer[3] << 5) | (buffer[4] >> 3);
-+ if( (buffer[1] << 6) | (buffer[2] >> 2) )
-+ sequence->display_width = (buffer[1] << 6) | (buffer[2] >> 2);
-+ if( ((buffer[2]& 1 ) << 13) | (buffer[3] << 5) | (buffer[4] >> 3) )
-+ sequence->display_height =
-+ ((buffer[2]& 1 ) << 13) | (buffer[3] << 5) | (buffer[4] >> 3);
-
- return 0;
- }
@@ -551,6 +558,7 @@
if (!(mpeg2dec->sequence.flags & SEQ_FLAG_PROGRESSIVE_SEQUENCE)) {
picture->nb_fields = (buffer[3] & 2) ? 3 : 2;
@@ -203,24 +188,6 @@
k * mpeg2dec->quantizer_matrix[index][j];
--- libmpeg2/idct.c 2006-06-16 20:12:26.000000000 +0200
+++ libmpeg2/idct.c 2006-06-16 20:12:50.000000000 +0200
-@@ -66,7 +70,7 @@
- } while (0)
- #endif
-
--static void inline idct_row (int16_t * const block)
-+static inline void idct_row (int16_t * const block)
- {
- int d0, d1, d2, d3;
- int a0, a1, a2, a3, b0, b1, b2, b3;
-@@ -119,7 +123,7 @@
- block[7] = (a0 - b0) >> 12;
- }
-
--static void inline idct_col (int16_t * const block)
-+static inline void idct_col (int16_t * const block)
- {
- int d0, d1, d2, d3;
- int a0, a1, a2, a3, b0, b1, b2, b3;
@@ -239,12 +239,15 @@
void mpeg2_idct_init (uint32_t accel)
@@ -257,24 +224,6 @@
mpeg2_idct_copy = mpeg2_idct_copy_alpha;
--- libmpeg2/idct_alpha.c 2006-06-16 20:12:26.000000000 +0200
+++ libmpeg2/idct_alpha.c 2006-06-16 20:12:50.000000000 +0200
-@@ -59,7 +63,7 @@
- } while (0)
- #endif
-
--static void inline idct_row (int16_t * const block)
-+static inline void idct_row (int16_t * const block)
- {
- uint64_t l, r;
- int_fast32_t d0, d1, d2, d3;
-@@ -116,7 +120,7 @@
- block[7] = (a0 - b0) >> 12;
- }
-
--static void inline idct_col (int16_t * const block)
-+static inline void idct_col (int16_t * const block)
- {
- int_fast32_t d0, d1, d2, d3;
- int_fast32_t a0, a1, a2, a3, b0, b1, b2, b3;
@@ -157,6 +161,7 @@
block[8*7] = (a0 - b0) >> 17;
}
@@ -324,8 +273,7 @@
+#ifdef HAVE_MMX
+ if (accel & MPEG2_ACCEL_X86_MMX)
mpeg2_mc = mpeg2_mc_mmx;
-- elseo
-+ else
+ else
#endif
-#ifdef ARCH_PPC
+#if defined(ARCH_PPC) && defined(HAVE_ALTIVEC)
@@ -406,15 +354,6 @@
decoder->quantizer_matrix[0] =
decoder->quantizer_prescale[0][quantizer_scale_code];
-@@ -1252,7 +1252,7 @@
- ref[0] + offset, decoder->stride, 16); \
- table[4] (decoder->dest[1] + decoder->offset, \
- ref[1] + offset, decoder->stride, 16); \
-- table[4] (decoder->dest[2] + (decoder->offset >> 1), \
-+ table[4] (decoder->dest[2] + decoder->offset, \
- ref[2] + offset, decoder->stride, 16)
-
- #define bit_buf (decoder->bitstream_buf)
@@ -1568,6 +1569,18 @@
#define NEXT_MACROBLOCK \
diff --git a/libmpeg2/motion_comp.c b/libmpeg2/motion_comp.c
index b6cc4bfcb9..a2fd71fec4 100644
--- a/libmpeg2/motion_comp.c
+++ b/libmpeg2/motion_comp.c
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
diff --git a/libmpeg2/motion_comp_mmx.c b/libmpeg2/motion_comp_mmx.c
index 8c47a142a8..4f2aacfc84 100644
--- a/libmpeg2/motion_comp_mmx.c
+++ b/libmpeg2/motion_comp_mmx.c
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
@@ -67,7 +67,7 @@ static mmx_t round4 = {0x0002000200020002LL};
* unrolling will help
*/
-static inline void mmx_zero_reg (void)
+static inline void mmx_zero_reg ()
{
/* load 0 into mm0 */
pxor_r2r (mm0, mm0);
diff --git a/libmpeg2/mpeg2.h b/libmpeg2/mpeg2.h
index af950df238..923c9facf6 100644
--- a/libmpeg2/mpeg2.h
+++ b/libmpeg2/mpeg2.h
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
@@ -29,7 +29,7 @@
#define MPEG2_H
#define MPEG2_VERSION(a,b,c) (((a)<<16)|((b)<<8)|(c))
-#define MPEG2_RELEASE MPEG2_VERSION (0, 4, 0) /* 0.4.0 */
+#define MPEG2_RELEASE MPEG2_VERSION (0, 4, 1) /* 0.4.1 */
#define SEQ_FLAG_MPEG2 1
#define SEQ_FLAG_CONSTRAINED_PARAMETERS 2
diff --git a/libmpeg2/mpeg2_internal.h b/libmpeg2/mpeg2_internal.h
index 2511e447ab..9238f630d0 100644
--- a/libmpeg2/mpeg2_internal.h
+++ b/libmpeg2/mpeg2_internal.h
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
diff --git a/libmpeg2/slice.c b/libmpeg2/slice.c
index 31a8250891..2b644540cd 100644
--- a/libmpeg2/slice.c
+++ b/libmpeg2/slice.c
@@ -21,7 +21,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
+ * Modified for use with MPlayer, see libmpeg-0.4.1.diff for the exact changes.
* detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/