+++ /dev/null
---- ffmpeg-0.cvs20050313.orig/libavcodec/utils.c
-+++ ffmpeg-0.cvs20050313/libavcodec/utils.c
-@@ -276,27 +276,10 @@
- buf->last_pic_num= *picture_number;
- }else{
- int h_chroma_shift, v_chroma_shift;
-- int pixel_size;
--
-+ int pixel_size, size[3];
-+ AVPicture picture;
-+
- avcodec_get_chroma_sub_sample(s->pix_fmt, &h_chroma_shift, &v_chroma_shift);
--
-- switch(s->pix_fmt){
-- case PIX_FMT_RGB555:
-- case PIX_FMT_RGB565:
-- case PIX_FMT_YUV422:
-- case PIX_FMT_UYVY422:
-- pixel_size=2;
-- break;
-- case PIX_FMT_RGB24:
-- case PIX_FMT_BGR24:
-- pixel_size=3;
-- break;
-- case PIX_FMT_RGBA32:
-- pixel_size=4;
-- break;
-- default:
-- pixel_size=1;
-- }
-
- avcodec_align_dimensions(s, &w, &h);
-
-@@ -304,21 +287,39 @@
- w+= EDGE_WIDTH*2;
- h+= EDGE_WIDTH*2;
- }
--
-+ avpicture_fill(&picture, NULL, s->pix_fmt, w, h);
-+ pixel_size= picture.linesize[0]*8 / w;
-+//av_log(NULL, AV_LOG_ERROR, "%d %d %d %d\n", (int)picture.data[1], w, h, s->pix_fmt);
-+ assert(pixel_size>=1);
-+ //FIXME next ensures that linesize= 2^x uvlinesize, thats needed because some MC code assumes it
-+ if(pixel_size == 3*8)
-+ w= ALIGN(w, STRIDE_ALIGN<<h_chroma_shift);
-+ else
-+ w= ALIGN(pixel_size*w, STRIDE_ALIGN<<(h_chroma_shift+3)) / pixel_size;
-+ size[1] = avpicture_fill(&picture, NULL, s->pix_fmt, w, h);
-+ size[0] = picture.linesize[0] * h;
-+ size[1] -= size[0];
-+ if(picture.data[2])
-+ size[1]= size[2]= size[1]/2;
-+ else
-+ size[2]= 0;
-+
- buf->last_pic_num= -256*256*256*64;
-+ memset(buf->base, 0, sizeof(buf->base));
-+ memset(buf->data, 0, sizeof(buf->data));
-
-- for(i=0; i<3; i++){
-+ for(i=0; i<3 && size[i]; i++){
- const int h_shift= i==0 ? 0 : h_chroma_shift;
- const int v_shift= i==0 ? 0 : v_chroma_shift;
-
-- //FIXME next ensures that linesize= 2^x uvlinesize, thats needed because some MC code assumes it
-- buf->linesize[i]= ALIGN(pixel_size*w>>h_shift, STRIDE_ALIGN<<(h_chroma_shift-h_shift));
-+ buf->linesize[i]= picture.linesize[i];
-
-- buf->base[i]= av_malloc((buf->linesize[i]*h>>v_shift)+16); //FIXME 16
-+ buf->base[i]= av_malloc(size[i]+16); //FIXME 16
- if(buf->base[i]==NULL) return -1;
-- memset(buf->base[i], 128, buf->linesize[i]*h>>v_shift);
--
-- if(s->flags&CODEC_FLAG_EMU_EDGE)
-+ memset(buf->base[i], 128, size[i]);
-+
-+ // no edge if EDEG EMU or not planar YUV, we check for PAL8 redundantly to protect against a exploitable bug regression ...
-+ if((s->flags&CODEC_FLAG_EMU_EDGE) || (s->pix_fmt == PIX_FMT_PAL8) || !size[2])
- buf->data[i] = buf->base[i];
- else
- buf->data[i] = buf->base[i] + ALIGN((buf->linesize[i]*EDGE_WIDTH>>v_shift) + (EDGE_WIDTH>>h_shift), STRIDE_ALIGN);
+++ /dev/null
-diff -uNr MPlayer-1.0pre7try2.orig/configure MPlayer-1.0pre7try2/configure
---- MPlayer-1.0pre7try2.orig/configure 2006-02-14 12:43:09.000000000 +0100
-+++ MPlayer-1.0pre7try2/configure 2006-02-14 12:44:16.978479750 +0100
-@@ -605,7 +605,7 @@
- cc_version="v. ?.??, bad"
- cc_verc_fail=yes
- ;;
-- 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9])
-+ 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9]|4.*)
- _cc_major=`echo $cc_version | cut -d '.' -f 1`
- _cc_minor=`echo $cc_version | cut -d '.' -f 2`
- _cc_mini=`echo $cc_version | cut -d '.' -f 3`
-diff -uNr MPlayer-1.0pre7try2.orig/liba52/imdct.c MPlayer-1.0pre7try2/liba52/imdct.c
---- MPlayer-1.0pre7try2.orig/liba52/imdct.c 2005-03-23 00:27:18.000000000 +0100
-+++ MPlayer-1.0pre7try2/liba52/imdct.c 2006-02-14 12:44:56.268935250 +0100
-@@ -937,7 +937,8 @@
- /* 4-7. iterations */
- for (m=3; m < 7; m++) {
- two_m = (1 << m);
-- two_m_plus_one = two_m<<1;
-+ int two_m_plus_four=two_m<<4;
-+ complex_t* buf_plus_128=buf+128;
- asm volatile(
- "movl %0, %%esi \n\t"
- ".balign 16 \n\t"
-@@ -963,7 +964,7 @@
- "addl %2, %%esi \n\t"
- "cmpl %1, %%esi \n\t"
- " jb 1b \n\t"
-- :: "g" (buf), "m" (buf+128), "m" (two_m_plus_one<<3), "r" (two_m<<3),
-+ :: "g" (buf), "m" (buf_plus_128), "m" (two_m_plus_four), "r" (two_m<<3),
- "r" (sseW[m])
- : "%esi", "%edi", "%edx"
- );
-diff -uNr MPlayer-1.0pre7try2.orig/libavcodec/libpostproc/postprocess_template.c MPlayer-1.0pre7try2/libavcodec/libpostproc/postprocess_template.c
---- MPlayer-1.0pre7try2.orig/libavcodec/libpostproc/postprocess_template.c 2005-04-16 22:41:13.000000000 +0200
-+++ MPlayer-1.0pre7try2/libavcodec/libpostproc/postprocess_template.c 2006-02-14 12:45:09.713775500 +0100
-@@ -2648,6 +2648,8 @@
- static always_inline void RENAME(do_a_deblock)(uint8_t *src, int step, int stride, PPContext *c){
- int64_t dc_mask, eq_mask;
- int64_t sums[10*8*2];
-+ int64_t dc_and_eq_mask;
-+
- src+= step*3; // src points to begin of the 8x8 Block
- //START_TIMER
- asm volatile(
-@@ -2754,8 +2756,9 @@
- : "r" (src), "r" ((long)step), "m" (c->pQPb), "m"(c->ppMode.flatnessThreshold)
- : "%"REG_a
- );
-+ dc_and_eq_mask=dc_mask & eq_mask;
-
-- if(dc_mask & eq_mask){
-+ if(dc_and_eq_mask){
- long offset= -8*step;
- int64_t *temp_sums= sums;
-
-@@ -2930,7 +2933,7 @@
- " js 1b \n\t"
-
- : "+r"(offset), "+r"(temp_sums)
-- : "r" ((long)step), "r"(src - offset), "m"(dc_mask & eq_mask)
-+ : "r" ((long)step), "r"(src - offset), "m"(dc_and_eq_mask)
- );
- }else
- src+= step; // src points to begin of the 8x8 Block
-@@ -3493,7 +3496,7 @@
- "prefetchnta 32(%%"REG_a", %0) \n\t"
- "prefetcht0 32(%%"REG_d", %2) \n\t"
- :: "r" (srcBlock), "r" ((long)srcStride), "r" (dstBlock), "r" ((long)dstStride),
-- "m" ((long)x), "m" ((long)copyAhead)
-+ "g" ((long)x), "g" ((long)copyAhead)
- : "%"REG_a, "%"REG_d
- );
-
-@@ -3639,7 +3642,7 @@
- "prefetchnta 32(%%"REG_a", %0) \n\t"
- "prefetcht0 32(%%"REG_d", %2) \n\t"
- :: "r" (srcBlock), "r" ((long)srcStride), "r" (dstBlock), "r" ((long)dstStride),
-- "m" ((long)x), "m" ((long)copyAhead)
-+ "g" ((long)x), "g" ((long)copyAhead)
- : "%"REG_a, "%"REG_d
- );
-
-diff -uNr MPlayer-1.0pre7try2.orig/libmpdemux/frequencies.h MPlayer-1.0pre7try2/libmpdemux/frequencies.h
---- MPlayer-1.0pre7try2.orig/libmpdemux/frequencies.h 2001-11-16 23:06:48.000000000 +0100
-+++ MPlayer-1.0pre7try2/libmpdemux/frequencies.h 2006-02-14 12:44:16.978479750 +0100
-@@ -104,7 +104,6 @@
- /* --------------------------------------------------------------------- */
-
- extern struct CHANLISTS chanlists[];
--extern struct STRTAB chanlist_names[];
-
- extern int chantab;
- extern struct CHANLIST *chanlist;
-diff -uNr MPlayer-1.0pre7try2.orig/libvo/aclib_template.c MPlayer-1.0pre7try2/libvo/aclib_template.c
---- MPlayer-1.0pre7try2.orig/libvo/aclib_template.c 2005-01-21 22:11:35.000000000 +0100
-+++ MPlayer-1.0pre7try2/libvo/aclib_template.c 2006-02-14 12:44:56.272935500 +0100
-@@ -249,8 +249,8 @@
- MOVNTQ" %%mm6, 48(%1)\n"
- MOVNTQ" %%mm7, 56(%1)\n"
- :: "r" (from), "r" (to) : "memory");
-- ((const unsigned char *)from)+=64;
-- ((unsigned char *)to)+=64;
-+ from=((const unsigned char *)from)+64;
-+ to=((unsigned char *)to)+64;
- }
-
- // printf(" %d %d\n", (int)from&1023, (int)to&1023);
-@@ -338,8 +338,8 @@
- MOVNTQ" %%mm6, 48(%1)\n"
- MOVNTQ" %%mm7, 56(%1)\n"
- :: "r" (from), "r" (to) : "memory");
-- ((const unsigned char *)from)+=64;
-- ((unsigned char *)to)+=64;
-+ from=((const unsigned char *)from)+64;
-+ to=((unsigned char *)to)+64;
- }
-
- #endif /* Have SSE */
-diff -uNr MPlayer-1.0pre7try2.orig/mmx.h MPlayer-1.0pre7try2/mmx.h
---- MPlayer-1.0pre7try2.orig/mmx.h 2001-10-28 12:47:21.000000000 +0100
-+++ MPlayer-1.0pre7try2/mmx.h 2006-02-14 12:44:16.978479750 +0100
-@@ -353,11 +353,11 @@
- #define mmx_m2r(op, mem, reg) \
- __asm__ __volatile__ (#op " %0, %%" #reg \
- : /* nothing */ \
-- : "X" (mem))
-+ : "m" (mem))
-
- #define mmx_r2m(op, reg, mem) \
- __asm__ __volatile__ (#op " %%" #reg ", %0" \
-- : "=X" (mem) \
-+ : "=m" (mem) \
- : /* nothing */ )
-
- #define mmx_r2r(op, regs, regd) \
-@@ -367,8 +367,8 @@
- __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
- #op " %1, %%mm0\n\t" \
- "movq %%mm0, %0" \
-- : "=X" (memd) \
-- : "X" (mems))
-+ : "=m" (memd) \
-+ : "m" (mems))
-
- #endif
-
-diff -uNr MPlayer-1.0pre7try2.orig/postproc/swscale_template.c MPlayer-1.0pre7try2/postproc/swscale_template.c
---- MPlayer-1.0pre7try2.orig/postproc/swscale_template.c 2005-02-17 00:47:00.000000000 +0100
-+++ MPlayer-1.0pre7try2/postproc/swscale_template.c 2006-02-14 12:45:09.717775750 +0100
-@@ -765,14 +765,14 @@
- asm volatile(
- YSCALEYUV2YV12X(0, CHR_MMX_FILTER_OFFSET)
- :: "r" (&c->redDither),
-- "r" (uDest), "m" ((long)chrDstW)
-+ "r" (uDest), "p" ((long)chrDstW)
- : "%"REG_a, "%"REG_d, "%"REG_S
- );
-
- asm volatile(
- YSCALEYUV2YV12X(4096, CHR_MMX_FILTER_OFFSET)
- :: "r" (&c->redDither),
-- "r" (vDest), "m" ((long)chrDstW)
-+ "r" (vDest), "p" ((long)chrDstW)
- : "%"REG_a, "%"REG_d, "%"REG_S
- );
- }
-@@ -780,7 +780,7 @@
- asm volatile(
- YSCALEYUV2YV12X(0, LUM_MMX_FILTER_OFFSET)
- :: "r" (&c->redDither),
-- "r" (dest), "m" ((long)dstW)
-+ "r" (dest), "p" ((long)dstW)
- : "%"REG_a, "%"REG_d, "%"REG_S
- );
- #else
-@@ -2136,6 +2136,7 @@
- else
- {
- long counter= -2*dstW;
-+ uint8_t* ptr=src+filterSize;
- // filter-= counter*filterSize/2;
- filterPos-= counter/2;
- dst-= counter/2;
-@@ -2177,7 +2178,7 @@
- " jnc 1b \n\t"
-
- : "+r" (counter), "+r" (filter)
-- : "m" (filterPos), "m" (dst), "m"(src+filterSize),
-+ : "m" (filterPos), "m" (dst), "m"(ptr),
- "m" (src), "r" ((long)filterSize*2)
- : "%"REG_b, "%"REG_a, "%"REG_c
- );
-@@ -2320,6 +2321,8 @@
- {
- #endif
- //NO MMX just normal asm ...
-+ int xInc_hi=xInc>>16;
-+ int xInc_lo=xInc&0xffff;
- asm volatile(
- "xor %%"REG_a", %%"REG_a" \n\t" // i
- "xor %%"REG_b", %%"REG_b" \n\t" // xx
-@@ -2356,7 +2359,7 @@
- " jb 1b \n\t"
-
-
-- :: "r" (src), "m" (dst), "m" (dstWidth), "m" (xInc>>16), "m" (xInc&0xFFFF)
-+ :: "r" (src), "m" (dst), "m" (dstWidth), "m" (xInc_hi), "m" (xInc_lo)
- : "%"REG_a, "%"REG_b, "%ecx", "%"REG_D, "%esi"
- );
- #ifdef HAVE_MMX2
-@@ -2515,6 +2518,8 @@
- else
- {
- #endif
-+ int xInc_hi=xInc>>16;
-+ int xInc_lo=xInc&0xffff;
- asm volatile(
- "xor %%"REG_a", %%"REG_a" \n\t" // i
- "xor %%"REG_b", %%"REG_b" \n\t" // xx
-@@ -2547,8 +2552,13 @@
- "add $1, %%"REG_a" \n\t"
- "cmp %2, %%"REG_a" \n\t"
- " jb 1b \n\t"
--
-- :: "m" (src1), "m" (dst), "m" ((long)dstWidth), "m" ((long)(xInc>>16)), "m" ((xInc&0xFFFF)),
-+/* GCC-3.3 makes MPlayer crash on IA-32 machines when using "g" operand here,
-+ which is needed to support GCC-4.0 */
-+#if defined(ARCH_X86_64) && ((__GNUC__ > 3) || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 4))
-+ :: "m" (src1), "m" (dst), "g" ((long)dstWidth), "m" (xInc_hi), "m" (xInc_lo),
-+#else
-+ :: "m" (src1), "m" (dst), "m" ((long)dstWidth), "m" ((long)(xInc_hi)), "m" ((xInc_lo)),
-+#endif
- "r" (src2)
- : "%"REG_a, "%"REG_b, "%ecx", "%"REG_D, "%esi"
- );
+++ /dev/null
-diff -burN MPlayer-1.0pre3.orig/configure MPlayer-1.0pre3/configure
---- MPlayer-1.0pre3.orig/configure 2004-01-02 15:29:02.000000000 +0100
-+++ MPlayer-1.0pre3/configure 2004-01-02 15:45:49.000000000 +0100
-@@ -314,8 +314,7 @@
- (e.g. /opt/bin/freetype-config)
- --with-fribidi-config=PATH path to fribidi-config
- (e.g. /opt/bin/fribidi-config)
-- --with-glib-config=PATH path to glib*-config (e.g. /opt/bin/glib-config)
-- --with-gtk-config=PATH path to gtk*-config (e.g. /opt/bin/gtk-config)
-+ --with-pkg-config=PATH path to pkg-config (e.g. /opt/bin/pkg-config)
- --with-sdl-config=PATH path to sdl*-config (e.g. /opt/bin/sdl-config)
- EOF
- exit 0
-@@ -1542,11 +1541,8 @@
- --with-fribidi-config=*)
- _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
- ;;
-- --with-gtk-config=*)
-- _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
-- ;;
-- --with-glib-config=*)
-- _glibconfig=`echo $ac_option | cut -d '=' -f 2`
-+ --with-pkg-config=*)
-+ _pkgconfig=`echo $ac_option | cut -d '=' -f 2`
- ;;
- # dvdnav disabled, it does not work
- # --with-dvdnav-config=*)
-@@ -5538,37 +5534,38 @@
- echores "$_xshape"
-
-
-- # Check for GTK:
-- echocheck "GTK version"
-- if test -z "$_gtkconfig" ; then
-- if ( gtk-config --version ) >/dev/null 2>&1 ; then
-- _gtkconfig="gtk-config"
-- elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
-- _gtkconfig="gtk12-config"
-- else
-- die "The GUI requires GTK devel packages (which were not found)."
-+ # Check for pkg-config
-+ echocheck "pkg-config"
-+ if test -z "$_pkgconfig"; then
-+ if ( pkg-config --version ) > /dev/null 2>&1; then
-+ _pkgconfig="pkg-config"
-+ else
-+ die "The GUI requires pkg-config (which was not found)."
- fi
- fi
-- _gtk=`$_gtkconfig --version 2>&1`
-- _inc_gtk=`$_gtkconfig --cflags 2>&1`
-- _ld_gtk=`$_gtkconfig --libs 2>&1`
-- echores "$_gtk (using $_gtkconfig)"
-+
-+ # Check for GTK
-+ if ( $_pkgconfig --modversion gtk+-2.0 ) > /dev/null 2>&1; then
-+ :
-+ else
-+ die "the GUI requires GTK (which was not found)"
-+ fi
-+ _gtk=`$_pkgconfig --modversion gtk+-2.0 2>&1`
-+ _inc_gtk=`$_pkgconfig --cflags gtk+-2.0 2>&1`
-+ _ld_gtk=`$_pkgconfig --libs gtk+-2.0 2>&1`
-+ echores "$_gtk (using $_pkconfig)"
-
- # Check for GLIB
- echocheck "glib version"
-- if test -z "$_glibconfig" ; then
-- if ( glib-config --version ) >/dev/null 2>&1 ; then
-- _glibconfig="glib-config"
-- elif ( glib12-config --version ) >/dev/null 2>&1 ; then
-- _glibconfig="glib12-config"
-- else
-- die "The GUI requires GLib devel packages (which were not found)"
-- fi
-+ if ( $_pkgconfig --modversion glib-2.0 ) > /dev/null 2>&1 ; then
-+ :
-+ else
-+ die "The GUI requires GLIB (which was not found)"
- fi
-- _glib=`$_glibconfig --version 2>&1`
-- _inc_glib=`$_glibconfig --cflags 2>&1`
-- _ld_glib=`$_glibconfig --libs 2>&1`
-- echores "$_glib (using $_glibconfig)"
-+ _glib=`$_pkgconfig --modversion glib-2.0 2>&1`
-+ _inc_glib=`$_pkgconfig --cflags glib-2.0 2>&1`
-+ _ld_glib=`$_pkgconfig --libs glib-2.0 2>&1`
-+ echores "$_glib (using $_pkgconfig)"
-
- _def_gui='#define HAVE_NEW_GUI 1'
- _ld_gui='$(GTKLIB) $(GLIBLIB)'
-diff -burN MPlayer-1.0pre3.orig/Gui/mplayer/gtk/about.c MPlayer-1.0pre3/Gui/mplayer/gtk/about.c
---- MPlayer-1.0pre3.orig/Gui/mplayer/gtk/about.c 2004-01-02 15:29:01.000000000 +0100
-+++ MPlayer-1.0pre3/Gui/mplayer/gtk/about.c 2004-01-02 15:56:07.000000000 +0100
-@@ -67,11 +67,20 @@
- gtk_box_pack_start( GTK_BOX( vbox ),scrolledwindow1,TRUE,TRUE,0 );
- gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow1 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC );
-
-+#ifdef USE_GTK1
- AboutText=gtk_text_new( NULL,NULL );
-+#else
-+ AboutText=gtk_text_view_new();
-+ gtk_text_view_set_editable( GTK_TEXT_VIEW( AboutText ), FALSE );
-+#endif
- gtk_widget_set_name( AboutText,"AboutText" );
- gtk_widget_show( AboutText );
- gtk_container_add( GTK_CONTAINER( scrolledwindow1 ),AboutText );
-+#ifdef USE_GTK1
- gtk_text_insert( GTK_TEXT( AboutText ),NULL,NULL,NULL,
-+#else
-+ gtk_text_buffer_set_text( gtk_text_view_get_buffer( AboutText),
-+#endif
- "\n"
- MSGTR_ABOUT_UHU
- " (http://www.uhulinux.hu/)\n"