From 6fecd53e99591775a4117e9e1ba18043fda36b27 Mon Sep 17 00:00:00 2001 From: Will Newton Date: Mon, 27 Jul 2009 12:20:27 +0100 Subject: [PATCH] mplayer: Update mplayer to version 1.0rc2. Closes #331. - Remove patches applied upstream - Add updated avr32 patch from Hans-Christian Egtvedt. Signed-off-by: Kelvin Cheung Signed-off-by: Will Newton Signed-off-by: Peter Korsgaard --- CHANGES | 1 + .../mplayer-1.0rc1-fix-alsa-output.patch | 150 ------ .../mplayer/mplayer-1.0rc1-index.patch | 21 - .../mplayer-1.0rc1-ppc-configure.patch | 27 -- ...patch => mplayer-1.0rc2-100-atmel.1.patch} | 438 +++++++----------- ...e.patch => mplayer-1.0rc2-largefile.patch} | 0 ... => mplayer-1.0rc2-remove-sys-timeb.patch} | 0 package/multimedia/mplayer/mplayer.mk | 3 +- 8 files changed, 159 insertions(+), 481 deletions(-) delete mode 100644 package/multimedia/mplayer/mplayer-1.0rc1-fix-alsa-output.patch delete mode 100644 package/multimedia/mplayer/mplayer-1.0rc1-index.patch delete mode 100644 package/multimedia/mplayer/mplayer-1.0rc1-ppc-configure.patch rename package/multimedia/mplayer/{mplayer-1.0rc1-atmel.3.patch => mplayer-1.0rc2-100-atmel.1.patch} (95%) mode change 100644 => 100755 rename package/multimedia/mplayer/{mplayer-1.0rc1-largefile.patch => mplayer-1.0rc2-largefile.patch} (100%) rename package/multimedia/mplayer/{mplayer-1.0rc1-remove-sys-timeb.patch => mplayer-1.0rc2-remove-sys-timeb.patch} (100%) diff --git a/CHANGES b/CHANGES index bf756a5e48..c83725b47f 100644 --- a/CHANGES +++ b/CHANGES @@ -17,6 +17,7 @@ #241: device mapper + lvm2: build together #271: Library 'libgcc_s.so.1' not installed in search path #287: New package libnl + #331: Update MPlayer to version 1.0rc2 #333: Bump sqlite package to 3.6.15 #349: update libsoup to version 2.26.2 #357: New package netstat-nat diff --git a/package/multimedia/mplayer/mplayer-1.0rc1-fix-alsa-output.patch b/package/multimedia/mplayer/mplayer-1.0rc1-fix-alsa-output.patch deleted file mode 100644 index d7b8f89e95..0000000000 --- a/package/multimedia/mplayer/mplayer-1.0rc1-fix-alsa-output.patch +++ /dev/null @@ -1,150 +0,0 @@ ---- a/libao2/ao_alsa.c -+++ b/libao2/ao_alsa.c -@@ -263,48 +263,49 @@ static int str_maxlen(strarg_t *str) { - return 1; - } - --/* change a PCM definition for correct AC-3 playback */ --static void set_non_audio(snd_config_t *root, const char *name_with_args) -+static int try_open_device(const char *device, int open_mode, int try_ac3) - { -- char *name, *colon, *old_value_str; -- snd_config_t *config, *args, *aes0, *old_def, *def; -- int value, err; -- -- /* strip the parameters from the PCM name */ -- if ((name = strdup(name_with_args)) != NULL) { -- if ((colon = strchr(name, ':')) != NULL) -- *colon = '\0'; -- /* search the PCM definition that we'll later use */ -- if (snd_config_search_alias_hooks(root, strchr(name, '.') ? NULL : "pcm", -- name, &config) >= 0) { -- /* does this definition have an "AES0" parameter? */ -- if (snd_config_search(config, "@args", &args) >= 0 && -- snd_config_search(args, "AES0", &aes0) >= 0) { -- /* read the old default value */ -- value = IEC958_AES0_CON_NOT_COPYRIGHT | -- IEC958_AES0_CON_EMPHASIS_NONE; -- if (snd_config_search(aes0, "default", &old_def) >= 0) { -- /* don't use snd_config_get_integer() because alsa-lib <= 1.0.12 -- * parses hex numbers as strings */ -- if (snd_config_get_ascii(old_def, &old_value_str) >= 0) { -- sscanf(old_value_str, "%i", &value); -- free(old_value_str); -- } -- } else -- old_def = NULL; -- /* set the non-audio bit */ -- value |= IEC958_AES0_NONAUDIO; -- /* set the new default value */ -- if (snd_config_imake_integer(&def, "default", value) >= 0) { -- if (old_def) -- snd_config_substitute(old_def, def); -- else -- snd_config_add(aes0, def); -- } -+ int err, len; -+ char *ac3_device, *args; -+ -+ if (try_ac3) { -+ /* to set the non-audio bit, use AES0=6 */ -+ len = strlen(device); -+ ac3_device = malloc(len + 7 + 1); -+ if (!ac3_device) -+ return -ENOMEM; -+ strcpy(ac3_device, device); -+ args = strchr(ac3_device, ':'); -+ if (!args) { -+ /* no existing parameters: add it behind device name */ -+ strcat(ac3_device, ":AES0=6"); -+ } else { -+ do -+ ++args; -+ while (isspace(*args)); -+ if (*args == '\0') { -+ /* ":" but no parameters */ -+ strcat(ac3_device, "AES0=6"); -+ } else if (*args != '{') { -+ /* a simple list of parameters: add it at the end of the list */ -+ strcat(ac3_device, ",AES0=6"); -+ } else { -+ /* parameters in config syntax: add it inside the { } block */ -+ do -+ --len; -+ while (len > 0 && isspace(ac3_device[len])); -+ if (ac3_device[len] == '}') -+ strcpy(ac3_device + len, " AES0=6}"); - } - } -- free(name); -+ err = snd_pcm_open(&alsa_handler, ac3_device, SND_PCM_STREAM_PLAYBACK, -+ open_mode); -+ free(ac3_device); - } -+ if (!try_ac3 || err < 0) -+ err = snd_pcm_open(&alsa_handler, device, SND_PCM_STREAM_PLAYBACK, -+ open_mode); -+ return err; - } - - /* -@@ -316,7 +317,6 @@ static int init(int rate_hz, int channel - int err; - int block; - strarg_t device; -- snd_config_t *my_config; - snd_pcm_uframes_t bufsize; - snd_pcm_uframes_t boundary; - opt_t subopts[] = { -@@ -496,24 +496,12 @@ static int init(int rate_hz, int channel - } - - if (!alsa_handler) { -- if ((err = snd_config_update()) < 0) { -- mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: cannot read ALSA configuration: %s\n", snd_strerror(err)); -- return 0; -- } -- if ((err = snd_config_copy(&my_config, snd_config)) < 0) { -- mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: cannot copy configuration: %s\n", snd_strerror(err)); -- return 0; -- } -- if (format == AF_FORMAT_AC3) -- set_non_audio(my_config, alsa_device); - //modes = 0, SND_PCM_NONBLOCK, SND_PCM_ASYNC -- if ((err = snd_pcm_open_lconf(&alsa_handler, alsa_device, -- SND_PCM_STREAM_PLAYBACK, open_mode, my_config)) < 0) -+ if ((err = try_open_device(alsa_device, open_mode, format == AF_FORMAT_AC3)) < 0) - { - if (err != -EBUSY && ao_noblock) { - mp_msg(MSGT_AO,MSGL_INFO,"alsa-init: open in nonblock-mode failed, trying to open in block-mode\n"); -- if ((err = snd_pcm_open_lconf(&alsa_handler, alsa_device, -- SND_PCM_STREAM_PLAYBACK, 0, my_config)) < 0) { -+ if ((err = try_open_device(alsa_device, 0, format == AF_FORMAT_AC3)) < 0) { - mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: playback open error: %s\n", snd_strerror(err)); - return(0); - } -@@ -522,12 +510,11 @@ static int init(int rate_hz, int channel - return(0); - } - } -- snd_config_delete(my_config); - - if ((err = snd_pcm_nonblock(alsa_handler, 0)) < 0) { - mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: error set block-mode %s\n", snd_strerror(err)); - } else { -- mp_msg(MSGT_AO,MSGL_V,"alsa-init: pcm opend in blocking mode\n"); -+ mp_msg(MSGT_AO,MSGL_V,"alsa-init: pcm opened in blocking mode\n"); - } - - snd_pcm_hw_params_alloca(&alsa_hwparams); -@@ -879,8 +866,8 @@ static int get_space(void) - } - - ret = snd_pcm_status_get_avail(status) * bytes_per_sample; -- if (ret > MAX_OUTBURST) -- ret = MAX_OUTBURST; -+ if (ret > ao_data.buffersize) // Buffer underrun? -+ ret = ao_data.buffersize; - return(ret); - } - diff --git a/package/multimedia/mplayer/mplayer-1.0rc1-index.patch b/package/multimedia/mplayer/mplayer-1.0rc1-index.patch deleted file mode 100644 index 44ae4b05bf..0000000000 --- a/package/multimedia/mplayer/mplayer-1.0rc1-index.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/stream/stream_dvb.c -+++ b/stream/stream_dvb.c -@@ -37,9 +37,7 @@ Foundation, Inc., 675 Mass Ave, Cambridg - #include - #include - #include --#include - #include --#include - - #include "stream.h" - #include "libmpdemux/demuxer.h" -@@ -168,7 +166,7 @@ static dvb_channels_list *dvb_get_channe - if((line[0] == '#') || (strlen(line) == 0)) - continue; - -- colon = index(line, ':'); -+ colon = strchr(line, ':'); - if(colon) - { - k = colon - line; diff --git a/package/multimedia/mplayer/mplayer-1.0rc1-ppc-configure.patch b/package/multimedia/mplayer/mplayer-1.0rc1-ppc-configure.patch deleted file mode 100644 index 053655dc41..0000000000 --- a/package/multimedia/mplayer/mplayer-1.0rc1-ppc-configure.patch +++ /dev/null @@ -1,27 +0,0 @@ -mplayer: configure: handle target=powerpc-linux as well as ppc-linux ---- - configure | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: MPlayer-1.0rc1/configure -=================================================================== ---- MPlayer-1.0rc1.orig/configure -+++ MPlayer-1.0rc1/configure -@@ -133,7 +133,7 @@ - - ppc() { - case "$host_arch" in -- ppc) return 0;; -+ ppc|powerpc) return 0;; - *) return 1;; - esac - } -@@ -1213,7 +1213,7 @@ - _optimizing='' - ;; - -- ppc) -+ ppc|powerpc) - _def_arch='#define ARCH_POWERPC 1' - _def_dcbzl='#define NO_DCBZL 1' - _target_arch='TARGET_ARCH_POWERPC = yes' diff --git a/package/multimedia/mplayer/mplayer-1.0rc1-atmel.3.patch b/package/multimedia/mplayer/mplayer-1.0rc2-100-atmel.1.patch old mode 100644 new mode 100755 similarity index 95% rename from package/multimedia/mplayer/mplayer-1.0rc1-atmel.3.patch rename to package/multimedia/mplayer/mplayer-1.0rc2-100-atmel.1.patch index 740298cb6e..0de695f81b --- a/package/multimedia/mplayer/mplayer-1.0rc1-atmel.3.patch +++ b/package/multimedia/mplayer/mplayer-1.0rc2-100-atmel.1.patch @@ -1,42 +1,7 @@ - cfg-common.h | 4 + - cfg-mencoder.h | 4 + - cfg-mplayer.h | 4 + - configure | 13 +- - libaf/af_format.c | 7 + - libavcodec/Makefile | 7 + - libavcodec/avr32/dsputil_avr32.c | 2678 ++++++++++++++++++++++++++++++++++++++ - libavcodec/avr32/fdct.S | 541 ++++++++ - libavcodec/avr32/h264idct.S | 451 +++++++ - libavcodec/avr32/idct.S | 829 ++++++++++++ - libavcodec/avr32/mc.S | 434 ++++++ - libavcodec/avr32/pico.h | 260 ++++ - libavcodec/bitstream.h | 77 +- - libavcodec/dsputil.c | 3 + - libavcodec/h264.c | 15 + - libavutil/common.h | 16 + - libavutil/internal.h | 9 + - libfaad2/common.h | 2 +- - libmpcodecs/ad_libmad.c | 5 + - libswscale/pico-avr32.h | 137 ++ - libswscale/swscale_internal.h | 2 +- - libswscale/yuv2rgb.c | 14 + - libswscale/yuv2rgb_avr32.c | 416 ++++++ - libvo/vo_fbdev2.c | 101 ++- - version.sh | 2 +- - 25 files changed, 6011 insertions(+), 20 deletions(-) - create mode 100644 libavcodec/avr32/dsputil_avr32.c - create mode 100644 libavcodec/avr32/fdct.S - create mode 100644 libavcodec/avr32/h264idct.S - create mode 100644 libavcodec/avr32/idct.S - create mode 100644 libavcodec/avr32/mc.S - create mode 100644 libavcodec/avr32/pico.h - create mode 100644 libswscale/pico-avr32.h - create mode 100644 libswscale/yuv2rgb_avr32.c - --- a/cfg-common.h +++ b/cfg-common.h -@@ -235,6 +235,10 @@ - {"tsprobe", &ts_probe, CONF_TYPE_POSITION, 0, 0, TS_MAX_PROBE_SIZE, NULL}, +@@ -240,6 +240,10 @@ + {"psprobe", &ps_probe, CONF_TYPE_POSITION, 0, 0, TS_MAX_PROBE_SIZE, NULL}, {"tskeepbroken", &ts_keep_broken, CONF_TYPE_FLAG, 0, 0, 1, NULL}, +#ifdef ARCH_AVR32 @@ -61,96 +26,70 @@ #endif --- a/cfg-mplayer.h +++ b/cfg-mplayer.h -@@ -4,6 +4,10 @@ - - #include "cfg-common.h" +@@ -7,6 +7,10 @@ + extern int key_fifo_size; + extern unsigned doubleclick_time; +#ifdef ARCH_AVR32 +extern int avr32_use_pico; +#endif + - extern int noconsolecontrols; - - #if defined(HAVE_FBDEV)||defined(HAVE_VESA) + #ifdef HAVE_FBDEV + extern char *fb_mode_cfgfile; + extern char *fb_mode_name; --- a/configure +++ b/configure -@@ -1203,6 +1203,15 @@ EOF +@@ -1631,7 +1631,7 @@ EOF + fi + + +-_arch_all='X86 X86_32 X86_64 IA64 SPARC ARM ARMV4L SH3 POWERPC PPC ALPHA SGI_MIPS PA_RISC S390 S390X VAX BFIN GENERIC' ++_arch_all='X86 X86_32 X86_64 IA64 SPARC ARM ARMV4L AVR32 SH3 POWERPC PPC ALPHA SGI_MIPS PA_RISC S390 S390X VAX BFIN GENERIC' + case "$host_arch" in + i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) + _arch='X86 X86_32' +@@ -1994,6 +1994,16 @@ EOF _optimizing="$proc" ;; + avr32) -+ _def_arch='#define ARCH_AVR32' -+ _target_arch='TARGET_ARCH_AVR32 = yes' ++ _arch='AVR32' ++ _target_arch='ARCH_AVR32 = yes' + iproc='avr32' + proc='' + _march='' + _mcpu='' + _optimizing='' + ;; - arm|armv4l|armv5tel) - _def_arch='#define ARCH_ARMV4L 1' - _target_arch='TARGET_ARCH_ARMV4L = yes' -@@ -1533,7 +1542,7 @@ echores $_named_asm_args - # Checking for CFLAGS - _stripbinaries=yes - if test "$_profile" != "" || test "$_debug" != "" ; then -- CFLAGS="-W -Wall -O2 $_march $_mcpu $_debug $_profile" -+ CFLAGS="-W -Wall -O4 $_march $_mcpu $_debug $_profile" - if test "$_cc_major" -ge "3" ; then - CFLAGS=`echo "$CFLAGS" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter/'` - fi -@@ -3794,7 +3803,7 @@ fi - - - echocheck "X11 headers presence" -- for I in `echo $_inc_extra | sed s/-I//g` /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do -+ for I in `echo $_inc_extra | sed s/-I//g`; do - if test -f "$I/X11/Xlib.h" ; then - _inc_x11="-I$I" - _x11_headers="yes" ---- a/libaf/af_format.c -+++ b/libaf/af_format.c -@@ -20,7 +20,14 @@ - // Integer to float conversion through lrintf() - #ifdef HAVE_LRINTF - #include + -+#ifdef ARCH_AVR32 -+#define lrintf(x) rint(x) -+#define llrint(x) (long long)rint(x) -+#else - long int lrintf(float); -+#endif -+ - #else - #define lrintf(x) ((int)(x)) - #endif + arm|armv4l|armv5tel) + _arch='ARM ARMV4L' + _target_arch='ARCH_ARMV4L = yes' --- a/libavcodec/Makefile +++ b/libavcodec/Makefile -@@ -360,6 +360,12 @@ OBJS-$(TARGET_ARCH_SPARC) + - - sparc/dsputil_vis.o: CFLAGS += -mcpu=ultrasparc -mtune=ultrasparc +@@ -372,6 +372,11 @@ ASM_OBJS-$(ARCH_ARMV4L) + + OBJS-$(ARCH_ARMV4L) += armv4l/dsputil_arm.o \ + armv4l/mpegvideo_arm.o \ -+# avr32 specific stuff -+ifeq ($(TARGET_ARCH_AVR32),yes) -+ASM_OBJS += avr32/idct.o avr32/fdct.o avr32/mc.o avr32/h264idct.o -+OBJS += avr32/dsputil_avr32.o -+endif -+ - # sun mediaLib specific stuff - OBJS-$(HAVE_MLIB) += mlib/dsputil_mlib.o \ ++ASM_OBJS-$(ARCH_AVR32) += avr32/idct.o avr32/fdct.o \ ++ avr32/mc.o avr32/h264idct.o ++ ++OBJS-$(ARCH_AVR32) += avr32/dsputil_avr32.o ++ + OBJS-$(HAVE_IWMMXT) += armv4l/dsputil_iwmmxt.o \ + armv4l/mpegvideo_iwmmxt.o \ -@@ -419,6 +425,7 @@ tests: apiexample $(TESTS) - clean:: +@@ -445,6 +450,7 @@ clean:: rm -f \ - i386/*.o i386/*~ \ -+ avr32/*.o avr32/*~ \ + alpha/*.o alpha/*~ \ armv4l/*.o armv4l/*~ \ ++ avr32/*.o avr32/*~ \ + bfin/*.o bfin/*~ \ + i386/*.o i386/*~ \ mlib/*.o mlib/*~ \ - alpha/*.o alpha/*~ \ --- /dev/null +++ b/libavcodec/avr32/dsputil_avr32.c -@@ -0,0 +1,2678 @@ +@@ -0,0 +1,2638 @@ +/* + * Copyright (c) 2007 Atmel Corporation. All rights reserved. + * @@ -189,8 +128,6 @@ + +int avr32_use_pico = 1; + -+//#define CHECK_DSP_FUNCS_AGAINST_C -+ +#ifdef CHECK_DSP_FUNCS_AGAINST_C +#define DSP_FUNC_NAME(name) test_ ## name +#else @@ -431,17 +368,6 @@ + + + -+static inline void copy_block4(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h) -+{ -+ int i; -+ for(i=0; i1 than the number of bits removed * is undefined */ @@ -5415,7 +5314,7 @@ #define GET_VLC(code, name, gb, table, bits, max_depth)\ {\ int n, index, nb_bits;\ -@@ -821,7 +859,7 @@ void free_vlc(VLC *vlc); +@@ -818,7 +856,7 @@ void free_vlc(VLC *vlc); code = table[index][0];\ n = table[index][1];\ \ @@ -5424,7 +5323,7 @@ LAST_SKIP_BITS(name, gb, bits)\ UPDATE_CACHE(name, gb)\ \ -@@ -843,7 +881,38 @@ void free_vlc(VLC *vlc); +@@ -840,7 +878,38 @@ void free_vlc(VLC *vlc); }\ SKIP_BITS(name, gb, n)\ } @@ -5463,7 +5362,7 @@ #define GET_RL_VLC(level, run, name, gb, table, bits, max_depth, need_update)\ {\ int n, index, nb_bits;\ -@@ -852,7 +921,7 @@ void free_vlc(VLC *vlc); +@@ -849,7 +918,7 @@ void free_vlc(VLC *vlc); level = table[index].level;\ n = table[index].len;\ \ @@ -5472,7 +5371,7 @@ SKIP_BITS(name, gb, bits)\ if(need_update){\ UPDATE_CACHE(name, gb)\ -@@ -867,7 +936,7 @@ void free_vlc(VLC *vlc); +@@ -864,7 +933,7 @@ void free_vlc(VLC *vlc); run= table[index].run;\ SKIP_BITS(name, gb, n)\ } @@ -5483,19 +5382,17 @@ * parses a vlc code, faster then get_vlc() --- a/libavcodec/dsputil.c +++ b/libavcodec/dsputil.c -@@ -4197,6 +4197,9 @@ void dsputil_init(DSPContext* c, AVCodec - #ifdef ARCH_BFIN - dsputil_init_bfin(c,avctx); - #endif -+#ifdef ARCH_AVR32 -+ dsputil_init_avr32(c,avctx); -+#endif +@@ -4155,6 +4155,7 @@ void dsputil_init(DSPContext* c, AVCodec - for(i=0; i<64; i++){ - if(!c->put_2tap_qpel_pixels_tab[0][i]) + if (ENABLE_MMX) dsputil_init_mmx (c, avctx); + if (ENABLE_ARMV4L) dsputil_init_armv4l(c, avctx); ++ if (ENABLE_AVR32) dsputil_init_avr32 (c, avctx); + if (ENABLE_MLIB) dsputil_init_mlib (c, avctx); + if (ENABLE_VIS) dsputil_init_vis (c, avctx); + if (ENABLE_ALPHA) dsputil_init_alpha (c, avctx); --- a/libavcodec/h264.c +++ b/libavcodec/h264.c -@@ -3258,7 +3258,12 @@ static void free_tables(H264Context *h){ +@@ -2043,7 +2043,12 @@ static void free_tables(H264Context *h){ static void init_dequant8_coeff_table(H264Context *h){ int i,q,x; @@ -5508,7 +5405,7 @@ h->dequant8_coeff[0] = h->dequant8_buffer[0]; h->dequant8_coeff[1] = h->dequant8_buffer[1]; -@@ -3281,7 +3286,13 @@ static void init_dequant8_coeff_table(H2 +@@ -2066,7 +2071,13 @@ static void init_dequant8_coeff_table(H2 static void init_dequant4_coeff_table(H264Context *h){ int i,j,q,x; @@ -5522,33 +5419,33 @@ for(i=0; i<6; i++ ){ h->dequant4_coeff[i] = h->dequant4_buffer[i]; for(j=0; js; + int i; +#ifdef ARCH_AVR32 -+ if ( 1 ){ ++ if(1){ +#else - if(s->dsp.h264_idct_add == ff_h264_idct_add_c){ //FIXME little ugly + if(s->dsp.h264_idct_add == ff_h264_idct_add_c){ //FIXME little ugly +#endif - memcpy(h->zigzag_scan, zigzag_scan, 16*sizeof(uint8_t)); - memcpy(h-> field_scan, field_scan, 16*sizeof(uint8_t)); - }else{ + memcpy(h->zigzag_scan, zigzag_scan, 16*sizeof(uint8_t)); + memcpy(h-> field_scan, field_scan, 16*sizeof(uint8_t)); + }else{ --- a/libavutil/common.h +++ b/libavutil/common.h -@@ -283,23 +283,39 @@ static inline int mid_pred(int a, int b, +@@ -174,23 +174,39 @@ static inline int mid_pred(int a, int b, * @param amax maximum value of the clip range - * @return cliped value + * @return clipped value */ +#if defined(ARCH_AVR32) -+#define clip(a, amin, amax) \ ++#define av_clip(a, amin, amax) \ + ({ int __tmp__; \ + asm ("min\t%0, %1, %2\n" \ + "max\t%0, %0, %3\n" \ + : "=&r"(__tmp__) : "r"(a), "r"(amax), "r"(amin)); \ + __tmp__; }) +#else - static inline int clip(int a, int amin, int amax) + static inline int av_clip(int a, int amin, int amax) { if (a < amin) return amin; else if (a > amax) return amax; @@ -5559,44 +5456,26 @@ /** * clip a signed integer value into the 0-255 range * @param a value to clip - * @return cliped value + * @return clipped value */ +#if defined(ARCH_AVR32) -+#define clip_uint8(a) \ ++#define av_clip_uint8(a) \ + ({ int __tmp__ = a; \ + asm ("satu\t%0 >> 0, 8" : "+r"(__tmp__)); \ + __tmp__; }) +#else - static inline uint8_t clip_uint8(int a) + static inline uint8_t av_clip_uint8(int a) { if (a&(~255)) return (-a)>>31; else return a; } +#endif - /* math */ - int64_t ff_gcd(int64_t a, int64_t b); ---- a/libavutil/internal.h -+++ b/libavutil/internal.h -@@ -210,6 +210,15 @@ if((y)<(x)){\ - }\ - } - -+/* XXX: Hack for uclibc which declares lrintf but does not implement it... */ -+#ifdef ARCH_AVR32 -+#undef HAVE_LRINTF -+#define HAVE_LRINTF 1 -+#define lrintf(x) rint(x) -+#define llrint(x) (long long)rint(x) -+#endif -+ -+ - #ifndef HAVE_LRINTF - /* XXX: add ISOC specific test to avoid specific BSD testing. */ - /* better than nothing implementation. */ + /** + * clip a signed integer value into the -32768,32767 range --- a/libfaad2/common.h +++ b/libfaad2/common.h -@@ -67,7 +67,7 @@ extern "C" { +@@ -69,7 +69,7 @@ extern "C" { /* Use if target platform has address generators with autoincrement */ //#define PREFER_POINTERS @@ -5761,7 +5640,7 @@ + --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h -@@ -173,7 +173,7 @@ typedef struct SwsContext{ +@@ -181,7 +181,7 @@ typedef struct SwsContext{ SwsFunc yuv2rgb_get_func_ptr (SwsContext *c); int yuv2rgb_c_init_tables (SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation); @@ -5769,10 +5648,10 @@ +char *sws_format_name(enum PixelFormat format); //FIXME replace this with something faster - #define isPlanarYUV(x) ((x)==PIX_FMT_YUV410P || (x)==PIX_FMT_YUV420P \ + #define isPlanarYUV(x) ( \ --- a/libswscale/yuv2rgb.c +++ b/libswscale/yuv2rgb.c -@@ -44,6 +44,10 @@ +@@ -47,6 +47,10 @@ #include "yuv2rgb_mlib.c" #endif @@ -5783,8 +5662,8 @@ #define DITHER1XBPP // only for mmx const uint8_t __attribute__((aligned(8))) dither_2x2_4[2][8]={ -@@ -601,6 +605,12 @@ SwsFunc yuv2rgb_get_func_ptr (SwsContext - if(t) return t; +@@ -646,6 +650,12 @@ SwsFunc yuv2rgb_get_func_ptr (SwsContext + if (t) return t; } #endif +#ifdef ARCH_AVR32 @@ -5796,7 +5675,7 @@ #ifdef HAVE_ALTIVEC if (c->flags & SWS_CPU_CAPS_ALTIVEC) { -@@ -678,6 +688,10 @@ int yuv2rgb_c_init_tables (SwsContext *c +@@ -736,6 +746,10 @@ int yuv2rgb_c_init_tables (SwsContext *c //printf("%lld %lld %lld %lld %lld\n", cy, crv, cbu, cgu, cgv); oy -= 256*brightness; @@ -5805,11 +5684,11 @@ +#endif + for (i = 0; i < 1024; i++) { - int j; + int j; --- /dev/null +++ b/libswscale/yuv2rgb_avr32.c -@@ -0,0 +1,416 @@ +@@ -0,0 +1,411 @@ +/* + * Copyright (c) 2007 Atmel Corporation. All rights reserved. + * @@ -5843,7 +5722,7 @@ + * DAMAGE. + */ +#include "pico-avr32.h" -+ ++#include "log.h" + +#define RGB(uv_part) \ + __asm__ volatile ( \ @@ -5856,7 +5735,6 @@ + : "r" (&c->table_gV[0]), "r" (&c->table_gU[0]),"r" (&c->table_bU[0]), \ + "r" (&c->table_rV[0]), "r" (V), "r" (U)); + -+ +#undef YUV2RGB1 +#define YUV2RGB1(dst, src, y, idx) \ + { int tmp2; __asm__ volatile ( \ @@ -5876,7 +5754,7 @@ + "st.b\t%7[6*%8 + 5], %1" /* dst_1[3] = tmp; */ \ + : "=&r" (y), "=&r" (tmp), "=&r" (tmp2) \ + : "r" (src), "r" (r), "r" (g), "r" (b), "r" (dst), "i" (idx)); } -+ ++ +#undef YUV2RGB2 +#define YUV2RGB2(dst, src, y, idx) \ + { int tmp2; __asm__ volatile ( \ @@ -5917,7 +5795,7 @@ + "st.b\t%7[6*%8 + 3], %1" /* dst_1[3] = tmp; */ \ + : "=&r" (y), "=&r" (tmp), "=&r" (tmp2) \ + : "r" (src), "r" (r), "r" (g), "r" (b), "r" (dst), "i" (idx)); } -+ ++ +#undef YUV2BGR2 +#define YUV2BGR2(dst, src, y, idx) \ + { int tmp2; __asm__ volatile ( \ @@ -5938,14 +5816,12 @@ + : "=&r" (y), "=&r" (tmp), "=&r" (tmp2) \ + : "r" (src), "r" (r), "r" (g), "r" (b), "r" (dst), "i" (idx)); } + -+ -+ -+int yuv2bgr24_avr32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, ++int yuv2bgr24_avr32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, + int srcSliceH, uint8_t* dst[], int dstStride[]){ + int y; -+ ++ + if(c->srcFormat == PIX_FMT_YUV422P){ -+ srcStride[1] *= 2; ++ srcStride[1] *= 2; + srcStride[2] *= 2; + } + @@ -5963,24 +5839,22 @@ + uint32_t U, V, Y1, Y2, tmp; + U = ((uint32_t*)pu)[0]; + V = ((uint32_t*)pv)[0]; -+ ++ + RGB("t") -+ YUV2BGR1(dst_1, py_1, Y1, 0) -+ YUV2BGR1(dst_2, py_2, Y2, 0) ++ YUV2BGR1(dst_1, py_1, Y1, 0) ++ YUV2BGR1(dst_2, py_2, Y2, 0) + + RGB("u") -+ YUV2BGR2(dst_1, py_1, Y1, 1) ++ YUV2BGR2(dst_1, py_1, Y1, 1) + YUV2BGR2(dst_2, py_2, Y2, 1) + + RGB("l") -+ YUV2BGR1(dst_1, py_1, Y1, 2) ++ YUV2BGR1(dst_1, py_1, Y1, 2) + YUV2BGR1(dst_2, py_2, Y2, 2) + + RGB("b") -+ YUV2BGR2(dst_1, py_1, Y1, 3) ++ YUV2BGR2(dst_1, py_1, Y1, 3) + YUV2BGR2(dst_2, py_2, Y2, 3) -+ -+ + + pu += 4; + pv += 4; @@ -5995,10 +5869,10 @@ + + + -+static int yuv2rgb24_avr32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, ++static int yuv2rgb24_avr32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, + int srcSliceH, uint8_t* dst[], int dstStride[]){ + int y; -+ ++ + if(c->srcFormat == PIX_FMT_YUV422P){ + srcStride[1] *= 2; + srcStride[2] *= 2; @@ -6016,23 +5890,23 @@ + uint32_t U, V, Y1, Y2, tmp; + U = ((uint32_t*)pu)[0]; + V = ((uint32_t*)pv)[0]; -+ ++ + RGB("t") -+ YUV2RGB1(dst_1, py_1, Y1, 0) -+ YUV2RGB1(dst_2, py_2, Y2, 0) ++ YUV2RGB1(dst_1, py_1, Y1, 0) ++ YUV2RGB1(dst_2, py_2, Y2, 0) + + RGB("u") -+ YUV2RGB2(dst_1, py_1, Y1, 1) ++ YUV2RGB2(dst_1, py_1, Y1, 1) + YUV2RGB2(dst_2, py_2, Y2, 1) + + RGB("l") -+ YUV2RGB1(dst_1, py_1, Y1, 2) ++ YUV2RGB1(dst_1, py_1, Y1, 2) + YUV2RGB1(dst_2, py_2, Y2, 2) + + RGB("b") -+ YUV2RGB2(dst_1, py_1, Y1, 3) ++ YUV2RGB2(dst_1, py_1, Y1, 3) + YUV2RGB2(dst_2, py_2, Y2, 3) -+ ++ + pu += 4; + pv += 4; + py_1 += 8; @@ -6065,20 +5939,20 @@ +} pico_coeff; + + -+static int yuv2bgr24_avr32_pico(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, ++static int yuv2bgr24_avr32_pico(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY, + int srcSliceH, uint8_t* dst[], int dstStride[]){ + int y; + static int first_time = 1; + + /* Initialize pico */ -+ PICO_LDCM_D(&pico_coeff, -+ PICO_REGVECT_COEFF0_A, PICO_REGVECT_COEFF0_B, ++ PICO_LDCM_D(&pico_coeff, ++ PICO_REGVECT_COEFF0_A, PICO_REGVECT_COEFF0_B, + PICO_REGVECT_COEFF1_A, PICO_REGVECT_COEFF1_B, -+ PICO_REGVECT_COEFF2_A, PICO_REGVECT_COEFF2_B); -+ -+ PICO_PUT_W(PICO_CONFIG, -+ (PICO_PACKED_MODE << PICO_OUTPUT_MODE -+ | PICO_TRANSFORMATION_MODE << PICO_INPUT_MODE ++ PICO_REGVECT_COEFF2_A, PICO_REGVECT_COEFF2_B); ++ ++ PICO_PUT_W(PICO_CONFIG, ++ (PICO_PACKED_MODE << PICO_OUTPUT_MODE ++ | PICO_TRANSFORMATION_MODE << PICO_INPUT_MODE + | OFFSET_FRAC_BITS << PICO_OFFSET_FRAC_BITS + | COEFF_FRAC_BITS << PICO_COEFF_FRAC_BITS)); + @@ -6117,7 +5991,7 @@ + PICO_OP(0, 3, 3, 7, 11); + PICO_PUT_W(PICO_INPIX0, *py_2_int++); + PICO_STCM_W(dst_1 + 12, PICO_REGVECT_OUTPIX2, PICO_REGVECT_OUTPIX1, PICO_REGVECT_OUTPIX0); -+ ++ + PICO_OP(0, 0, 0, 4, 8); + PICO_OP(0, 1, 1, 4, 8); + PICO_OP(0, 2, 2, 5, 9); @@ -6144,23 +6018,23 @@ + case PIX_FMT_BGR24: + { + if ( avr32_use_pico ){ -+ MSG_ERR("AVR32 BGR24: Using PICO for color space conversion\n"); ++ av_log(c, AV_LOG_INFO, "AVR32 BGR24: Using PICO for color space conversion\n"); + return yuv2bgr24_avr32_pico; + } else { -+ MSG_ERR("AVR32 BGR24: Using optimized color space conversion\n"); ++ av_log(c, AV_LOG_INFO, "AVR32 BGR24: Using optimized color space conversion\n"); + return yuv2bgr24_avr32; + } + } + break; + case PIX_FMT_RGB24: -+ { ++ { + if ( avr32_use_pico ){ -+ MSG_ERR("AVR32 RGB24: Using PICO for color space conversion\n"); ++ av_log(c, AV_LOG_INFO, "AVR32 RGB24: Using PICO for color space conversion\n"); + return yuv2bgr24_avr32_pico; + } else { -+ MSG_ERR("AVR32 RGB24: Using optimized color space conversion\n"); ++ av_log(c, AV_LOG_INFO, "AVR32 RGB24: Using optimized color space conversion\n"); + return yuv2rgb24_avr32; -+ } ++ } + } + } + return NULL; @@ -6169,19 +6043,19 @@ + +int yuv2rgb_c_init_tables_avr32 (SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation){ + const int isRgb = (c->dstFormat == PIX_FMT_RGB24); -+ ++ + int64_t crv = inv_table[0]; + int64_t cbu = inv_table[1]; + int64_t cgu = -inv_table[2]; + int64_t cgv = -inv_table[3]; + int64_t cy = 1<<16; + int64_t oy = 0; -+ ++ + if(!fullRange){ + cy= (cy*255) / 219; + oy= 16<<16; + } -+ ++ + cy = (cy *contrast )>>16; + crv= (crv*contrast * saturation)>>32; + cbu= (cbu*contrast * saturation)>>32; @@ -6189,37 +6063,37 @@ + cgv= (cgv*contrast * saturation)>>32; + + oy -= 256*brightness; -+ ++ + pico_coeff.coeff1_0 = SCALE(cy, 16 - COEFF_FRAC_BITS); /* G <- Y */ + pico_coeff.coeff1_1 = SCALE(cgu, 16 - COEFF_FRAC_BITS); /* G <- U */ -+ pico_coeff.coeff1_2 = SCALE(cgv, 16 - COEFF_FRAC_BITS); /* G <- V */ ++ pico_coeff.coeff1_2 = SCALE(cgv, 16 - COEFF_FRAC_BITS); /* G <- V */ + pico_coeff.coeff1_3 = (SCALE(-128*cgu - 128*cgv - 16*cy, 16 - OFFSET_FRAC_BITS) -+ + /*0.5*/(1 << (OFFSET_FRAC_BITS-1))); /* G offset */ -+ ++ + /*0.5*/(1 << (OFFSET_FRAC_BITS-1))); /* G offset */ ++ + if ( isRgb ){ + pico_coeff.coeff0_0 = SCALE(cy, 16 - COEFF_FRAC_BITS); /* R <- Y */ + pico_coeff.coeff0_1 = 0; /* R <- U */ -+ pico_coeff.coeff0_2 = SCALE(crv, 16 - COEFF_FRAC_BITS); /* R <- V */ ++ pico_coeff.coeff0_2 = SCALE(crv, 16 - COEFF_FRAC_BITS); /* R <- V */ + pico_coeff.coeff0_3 = (SCALE(-128*crv - 16*cy, 16 - OFFSET_FRAC_BITS) -+ + /*0.5*/(1 << (OFFSET_FRAC_BITS-1))); /* R offset */ -+ ++ + /*0.5*/(1 << (OFFSET_FRAC_BITS-1))); /* R offset */ ++ + pico_coeff.coeff2_0 = SCALE(cy, 16 - COEFF_FRAC_BITS); /* B <- Y */ + pico_coeff.coeff2_1 = SCALE(cbu, 16 - COEFF_FRAC_BITS); /* B <- U */ -+ pico_coeff.coeff2_2 = 0; /* B <- V */ -+ pico_coeff.coeff2_3 = (SCALE(-128*cbu - 16*cy, 16 - OFFSET_FRAC_BITS) -+ + /*0.5*/(1 << (OFFSET_FRAC_BITS-1)));/* B offset */ ++ pico_coeff.coeff2_2 = 0; /* B <- V */ ++ pico_coeff.coeff2_3 = (SCALE(-128*cbu - 16*cy, 16 - OFFSET_FRAC_BITS) ++ + /*0.5*/(1 << (OFFSET_FRAC_BITS-1)));/* B offset */ + } else { + pico_coeff.coeff2_0 = SCALE(cy, 16 - COEFF_FRAC_BITS); /* R <- Y */ + pico_coeff.coeff2_1 = 0; /* R <- U */ -+ pico_coeff.coeff2_2 = SCALE(crv, 16 - COEFF_FRAC_BITS); /* R <- V */ ++ pico_coeff.coeff2_2 = SCALE(crv, 16 - COEFF_FRAC_BITS); /* R <- V */ + pico_coeff.coeff2_3 = (SCALE(-128*crv - 16*cy, 16 - OFFSET_FRAC_BITS) -+ + /*0.5*/(1 << (OFFSET_FRAC_BITS-1))); /* R offset */ -+ ++ + /*0.5*/(1 << (OFFSET_FRAC_BITS-1))); /* R offset */ ++ + pico_coeff.coeff0_0 = SCALE(cy, 16 - COEFF_FRAC_BITS); /* B <- Y */ + pico_coeff.coeff0_1 = SCALE(cbu, 16 - COEFF_FRAC_BITS); /* B <- U */ -+ pico_coeff.coeff0_2 = 0; /* B <- V */ ++ pico_coeff.coeff0_2 = 0; /* B <- V */ + pico_coeff.coeff0_3 = (SCALE(-128*cbu - 16*cy, 16 - OFFSET_FRAC_BITS) -+ + /*0.5*/(1 << (OFFSET_FRAC_BITS-1))); /* B offset */ ++ + /*0.5*/(1 << (OFFSET_FRAC_BITS-1))); /* B offset */ + } + +} @@ -6300,7 +6174,7 @@ int i, out_offset = 0, in_offset = 0; - for (i = 0; i < in_height; i++) { -- memcpy(center + out_offset, next_frame + in_offset, +- fast_memcpy(center + out_offset, next_frame + in_offset, - in_width * fb_pixel_size); - out_offset += fb_line_len; - in_offset += in_width * fb_pixel_size; @@ -6311,7 +6185,7 @@ + if (fb_vinfo.yres_virtual == fb_vinfo.yres) { #endif + for (i = 0; i < in_height; i++) { -+ memcpy(center + out_offset, next_frame + in_offset, ++ fast_memcpy(center + out_offset, next_frame + in_offset, + in_width * fb_pixel_size); + out_offset += fb_line_len; + in_offset += in_width * fb_pixel_size; @@ -6336,10 +6210,10 @@ +static uint32_t get_image(mp_image_t *mpi) +{ + if(mpi->flags&MP_IMGFLAG_READABLE) -+ return VO_FALSE; // slow video ram ++ return VO_FALSE; // slow video ram + if(mpi->type==MP_IMGTYPE_STATIC) + return VO_FALSE; // it is not static -+ ++ + if (mpi->flags & (MP_IMGFLAG_ACCEPT_STRIDE | MP_IMGFLAG_ACCEPT_WIDTH)) { + // we're lucky or codec accepts stride => ok, let's go! + @@ -6380,7 +6254,9 @@ } --- a/version.sh +++ b/version.sh -@@ -1,2 +1,2 @@ +@@ -1,3 +1,3 @@ #!/bin/sh --echo "#define VERSION \"1.0rc1-$1\"" > version.h -+echo "#define VERSION \"1.0rc1.atmel.2-$1\"" > version.h +-echo "#define VERSION \"1.0rc2-$1\"" > version.h +-echo "#define MP_TITLE \"MPlayer 1.0rc2-$1 (C) 2000-2007 MPlayer Team\"" >> version.h ++echo "#define VERSION \"1.0rc2.atmel.1-$1\"" > version.h ++echo "#define MP_TITLE \"MPlayer 1.0rc2.atmel.1-$1 (C) 2000-2007 MPlayer Team\"" >> version.h diff --git a/package/multimedia/mplayer/mplayer-1.0rc1-largefile.patch b/package/multimedia/mplayer/mplayer-1.0rc2-largefile.patch similarity index 100% rename from package/multimedia/mplayer/mplayer-1.0rc1-largefile.patch rename to package/multimedia/mplayer/mplayer-1.0rc2-largefile.patch diff --git a/package/multimedia/mplayer/mplayer-1.0rc1-remove-sys-timeb.patch b/package/multimedia/mplayer/mplayer-1.0rc2-remove-sys-timeb.patch similarity index 100% rename from package/multimedia/mplayer/mplayer-1.0rc1-remove-sys-timeb.patch rename to package/multimedia/mplayer/mplayer-1.0rc2-remove-sys-timeb.patch diff --git a/package/multimedia/mplayer/mplayer.mk b/package/multimedia/mplayer/mplayer.mk index d9aad04941..dd0d0abec0 100644 --- a/package/multimedia/mplayer/mplayer.mk +++ b/package/multimedia/mplayer/mplayer.mk @@ -3,7 +3,7 @@ # mplayer # ############################################################# -MPLAYER_VERSION:=1.0rc1 +MPLAYER_VERSION:=1.0rc2 MPLAYER_SOURCE:=MPlayer-$(MPLAYER_VERSION).tar.bz2 MPLAYER_SITE:=http://www7.mplayerhq.hu/MPlayer/releases MPLAYER_DIR:=$(BUILD_DIR)/MPlayer-$(MPLAYER_VERSION) @@ -60,7 +60,6 @@ $(MPLAYER_DIR)/.configured: $(MPLAYER_DIR)/.unpacked $(MPLAYER_ENDIAN) \ $(MPLAYER_LARGEFILE) \ --enable-cross-compile \ - --disable-mpdvdkit \ --disable-ivtv \ --disable-tv \ --disable-live \ -- 2.30.2