diff options
25 files changed, 154 insertions, 369 deletions
diff --git a/addons/skin.confluence/sounds/sounds.xml b/addons/skin.confluence/sounds/sounds.xml index 2613a578dd..e9e53b046c 100644 --- a/addons/skin.confluence/sounds/sounds.xml +++ b/addons/skin.confluence/sounds/sounds.xml @@ -11,7 +11,7 @@ <!-- file to play when the action occurs. --> <!-- Valid entries for <name> can be found at --> -<!-- http://manual.xboxmediacenter.de/wakka.php?wakka=KeyMappingXML&v=6gu --> +<!-- http://wiki.xbmc.org/index.php?title=Keymap --> <!-- Also window specific sound can be played --> @@ -27,7 +27,7 @@ <!-- by setting the file to play. --> <!-- Valid entries for <name> can be found at --> -<!-- http://manual.xboxmediacenter.de/wakka.php?wakka=WindowList&v=13k6 --> +<!-- http://wiki.xbmc.org/?title=Window_IDs --> <!-- Note: Only wav files are supported --> diff --git a/lib/ffmpeg/libswresample/rematrix.c b/lib/ffmpeg/libswresample/rematrix.c index 51658cee21..8ab554cf90 100644 --- a/lib/ffmpeg/libswresample/rematrix.c +++ b/lib/ffmpeg/libswresample/rematrix.c @@ -116,6 +116,7 @@ av_cold static int auto_matrix(SwrContext *s) double maxcoef=0; char buf[128]; const int matrix_encoding = s->matrix_encoding; + float maxval; in_ch_layout = clean_layout(s, s->in_ch_layout); if(!sane_layout(in_ch_layout)){ @@ -300,8 +301,16 @@ av_cold static int auto_matrix(SwrContext *s) if(s->rematrix_volume < 0) maxcoef = -s->rematrix_volume; - if(( av_get_packed_sample_fmt(s->out_sample_fmt) < AV_SAMPLE_FMT_FLT - || av_get_packed_sample_fmt(s->int_sample_fmt) < AV_SAMPLE_FMT_FLT) && maxcoef > 1.0){ + if (s->rematrix_maxval > 0) { + maxval = s->rematrix_maxval; + } else if ( av_get_packed_sample_fmt(s->out_sample_fmt) < AV_SAMPLE_FMT_FLT + || av_get_packed_sample_fmt(s->int_sample_fmt) < AV_SAMPLE_FMT_FLT) { + maxval = 1.0; + } else + maxval = INT_MAX; + + if(maxcoef > maxval){ + maxcoef /= maxval; for(i=0; i<SWR_CH_MAX; i++) for(j=0; j<SWR_CH_MAX; j++){ s->matrix[i][j] /= maxcoef; diff --git a/lib/ffmpeg/libswresample/swresample.c b/lib/ffmpeg/libswresample/swresample.c index 9b71b2e122..b9c652a931 100644 --- a/lib/ffmpeg/libswresample/swresample.c +++ b/lib/ffmpeg/libswresample/swresample.c @@ -68,6 +68,7 @@ static const AVOption options[]={ {"lfe_mix_level" , "set LFE mix level" , OFFSET(lfe_mix_level ), AV_OPT_TYPE_FLOAT, {.dbl=0 }, -32 , 32 , PARAM}, {"rmvol" , "set rematrix volume" , OFFSET(rematrix_volume), AV_OPT_TYPE_FLOAT, {.dbl=1.0 }, -1000 , 1000 , PARAM}, {"rematrix_volume" , "set rematrix volume" , OFFSET(rematrix_volume), AV_OPT_TYPE_FLOAT, {.dbl=1.0 }, -1000 , 1000 , PARAM}, +{"rematrix_maxval" , "set rematrix maxval" , OFFSET(rematrix_maxval), AV_OPT_TYPE_FLOAT, {.dbl=0.0 }, 0 , 1000 , PARAM}, {"flags" , "set flags" , OFFSET(flags ), AV_OPT_TYPE_FLAGS, {.i64=0 }, 0 , UINT_MAX , PARAM, "flags"}, {"swr_flags" , "set flags" , OFFSET(flags ), AV_OPT_TYPE_FLAGS, {.i64=0 }, 0 , UINT_MAX , PARAM, "flags"}, diff --git a/lib/ffmpeg/libswresample/swresample_internal.h b/lib/ffmpeg/libswresample/swresample_internal.h index 17b85d5263..be36ba6802 100644 --- a/lib/ffmpeg/libswresample/swresample_internal.h +++ b/lib/ffmpeg/libswresample/swresample_internal.h @@ -82,6 +82,7 @@ struct SwrContext { float clev; ///< center mixing level float lfe_mix_level; ///< LFE mixing level float rematrix_volume; ///< rematrixing volume coefficient + float rematrix_maxval; ///< maximum value for rematrixing output enum AVMatrixEncoding matrix_encoding; /**< matrixed stereo encoding */ const int *channel_map; ///< channel index (or -1 if muted channel) map int used_ch_count; ///< number of used input channels (mapped channel count if channel_map, otherwise in.ch_count) diff --git a/lib/ffmpeg/libswresample/version.h b/lib/ffmpeg/libswresample/version.h index df9df480c7..8272b763b9 100644 --- a/lib/ffmpeg/libswresample/version.h +++ b/lib/ffmpeg/libswresample/version.h @@ -30,7 +30,7 @@ #define LIBSWRESAMPLE_VERSION_MAJOR 0 #define LIBSWRESAMPLE_VERSION_MINOR 17 -#define LIBSWRESAMPLE_VERSION_MICRO 102 +#define LIBSWRESAMPLE_VERSION_MICRO 103 #define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \ LIBSWRESAMPLE_VERSION_MINOR, \ diff --git a/lib/ffmpeg/patches/0057-backport-swresample-Make-rematrix-maxvalue-user-settable.patch b/lib/ffmpeg/patches/0057-backport-swresample-Make-rematrix-maxvalue-user-settable.patch new file mode 100644 index 0000000000..b826a613b0 --- /dev/null +++ b/lib/ffmpeg/patches/0057-backport-swresample-Make-rematrix-maxvalue-user-settable.patch @@ -0,0 +1,84 @@ +From e2b718464e92fcde3d21c6653c88ddec2ab21c3f Mon Sep 17 00:00:00 2001 +From: Michael Niedermayer <michaelni@gmx.at> +Date: Mon, 22 Jul 2013 03:23:54 +0200 +Subject: [PATCH] swresample: Make rematrix maxvalue user settable + +Signed-off-by: Michael Niedermayer <michaelni@gmx.at> +--- + libswresample/rematrix.c | 13 +++++++++++-- + libswresample/swresample.c | 1 + + libswresample/swresample_internal.h | 1 + + libswresample/version.h | 2 +- + 4 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c +index 48aff3b..33e2966 100644 +--- a/libswresample/rematrix.c ++++ b/libswresample/rematrix.c +@@ -120,6 +120,7 @@ av_cold static int auto_matrix(SwrContext *s) + double maxcoef=0; + char buf[128]; + const int matrix_encoding = s->matrix_encoding; ++ float maxval; + + in_ch_layout = clean_layout(s, s->in_ch_layout); + if(!sane_layout(in_ch_layout)){ +@@ -304,8 +305,16 @@ av_cold static int auto_matrix(SwrContext *s) + if(s->rematrix_volume < 0) + maxcoef = -s->rematrix_volume; + +- if(( av_get_packed_sample_fmt(s->out_sample_fmt) < AV_SAMPLE_FMT_FLT +- || av_get_packed_sample_fmt(s->int_sample_fmt) < AV_SAMPLE_FMT_FLT) && maxcoef > 1.0){ ++ if (s->rematrix_maxval > 0) { ++ maxval = s->rematrix_maxval; ++ } else if ( av_get_packed_sample_fmt(s->out_sample_fmt) < AV_SAMPLE_FMT_FLT ++ || av_get_packed_sample_fmt(s->int_sample_fmt) < AV_SAMPLE_FMT_FLT) { ++ maxval = 1.0; ++ } else ++ maxval = INT_MAX; ++ ++ if(maxcoef > maxval){ ++ maxcoef /= maxval; + for(i=0; i<SWR_CH_MAX; i++) + for(j=0; j<SWR_CH_MAX; j++){ + s->matrix[i][j] /= maxcoef; +diff --git a/libswresample/swresample.c b/libswresample/swresample.c +index ba2afdb..cdfe5bf 100644 +--- a/libswresample/swresample.c ++++ b/libswresample/swresample.c +@@ -68,6 +68,7 @@ + {"lfe_mix_level" , "set LFE mix level" , OFFSET(lfe_mix_level ), AV_OPT_TYPE_FLOAT, {.dbl=0 }, -32 , 32 , PARAM}, + {"rmvol" , "set rematrix volume" , OFFSET(rematrix_volume), AV_OPT_TYPE_FLOAT, {.dbl=1.0 }, -1000 , 1000 , PARAM}, + {"rematrix_volume" , "set rematrix volume" , OFFSET(rematrix_volume), AV_OPT_TYPE_FLOAT, {.dbl=1.0 }, -1000 , 1000 , PARAM}, ++{"rematrix_maxval" , "set rematrix maxval" , OFFSET(rematrix_maxval), AV_OPT_TYPE_FLOAT, {.dbl=0.0 }, 0 , 1000 , PARAM}, + + {"flags" , "set flags" , OFFSET(flags ), AV_OPT_TYPE_FLAGS, {.i64=0 }, 0 , UINT_MAX , PARAM, "flags"}, + {"swr_flags" , "set flags" , OFFSET(flags ), AV_OPT_TYPE_FLAGS, {.i64=0 }, 0 , UINT_MAX , PARAM, "flags"}, +diff --git a/libswresample/swresample_internal.h b/libswresample/swresample_internal.h +index 108f837..ab19f21 100644 +--- a/libswresample/swresample_internal.h ++++ b/libswresample/swresample_internal.h +@@ -82,6 +82,7 @@ struct SwrContext { + float clev; ///< center mixing level + float lfe_mix_level; ///< LFE mixing level + float rematrix_volume; ///< rematrixing volume coefficient ++ float rematrix_maxval; ///< maximum value for rematrixing output + enum AVMatrixEncoding matrix_encoding; /**< matrixed stereo encoding */ + const int *channel_map; ///< channel index (or -1 if muted channel) map + int used_ch_count; ///< number of used input channels (mapped channel count if channel_map, otherwise in.ch_count) +diff --git a/libswresample/version.h b/libswresample/version.h +index df9df48..8272b76 100644 +--- a/libswresample/version.h ++++ b/libswresample/version.h +@@ -30,7 +30,7 @@ + + #define LIBSWRESAMPLE_VERSION_MAJOR 0 + #define LIBSWRESAMPLE_VERSION_MINOR 17 +-#define LIBSWRESAMPLE_VERSION_MICRO 102 ++#define LIBSWRESAMPLE_VERSION_MICRO 103 + + #define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \ + LIBSWRESAMPLE_VERSION_MINOR, \ +-- +1.8.4 + diff --git a/system/asound.conf b/system/asound.conf deleted file mode 100644 index e3cd2e7c08..0000000000 --- a/system/asound.conf +++ /dev/null @@ -1,63 +0,0 @@ -# downmixing to 2 channels -pcm.xbmc_71to2 { - @args.0 SLAVE - @args.SLAVE { - type string - default "default" - } - type plug - slave.pcm $SLAVE - slave.channels 2 - route_policy duplicate - ttable.0.0 1 # front left speaker - ttable.1.1 1 # front right speaker - ttable.2.0 0.7 # rear left speaker - ttable.3.1 0.7 # rear right speaker - ttable.4.0 0.7 # center to left mapping - ttable.4.1 0.7 # center to right mapping - ttable.5.0 0.5 # LFE (base) to left mapping - ttable.5.1 0.5 # LFE to right mapping - ttable.6.0 0.6 # SL to left mapping - ttable.7.0 0.6 # SR to right mapping -} - -# downmixing to 2 channels -pcm.xbmc_51to2 { - @args.0 SLAVE - @args.SLAVE { - type string - default "default" - } - type plug - slave.pcm $SLAVE - slave.channels 2 - route_policy duplicate - ttable.0.0 1 # front left speaker - ttable.1.1 1 # front right speaker - ttable.2.0 0.7 # rear left speaker - ttable.3.1 0.7 # rear right speaker - ttable.4.0 0.7 # center to left mapping - ttable.4.1 0.7 # center to right mapping - ttable.5.0 0.5 # LFE (base) to left mapping - ttable.5.1 0.5 # LFE to right mapping -} - -# downmixing to 2 channels -pcm.xbmc_50to2 { - @args.0 SLAVE - @args.SLAVE { - type string - default "default" - } - type plug - slave.pcm $SLAVE - slave.channels 2 - route_policy duplicate - ttable.0.0 1 # front left speaker - ttable.1.1 1 # front right speaker - ttable.2.0 0.7 # rear left speaker - ttable.3.1 0.7 # rear right speaker - ttable.4.0 0.7 # center to left mapping - ttable.4.1 0.7 # center to right mapping -} - diff --git a/tools/arm/arm-scripts/create-pkgsfile.sh b/tools/arm/arm-scripts/create-pkgsfile.sh deleted file mode 100644 index 7a07d1ac0f..0000000000 --- a/tools/arm/arm-scripts/create-pkgsfile.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh - -# This will create a tar file that contains all the armel packages already extracted. - -# Dont go further if there are no packages, i.e install-pkgs.sh was not run! -if [ ! -e pkgs ] -then - echo "install-pkgs.sh was not run!!! Exiting!" - exit -fi - -# Cleanup -if [ -e pkgs-output.txt ] -then - rm pkgs-output.txt -fi - -# Cleanup -if [ -e pkgs.tar.bz2 ] -then - rm pkgs.tar.bz2 -fi - -# Extract all deb packages into a temporary directory. -# Keep the output log, incase something went wrong. -cd pkgs -mkdir tmp - -echo "Collecting all package data... please wait" -for i in `ls *.deb` -do - dpkg-deb -x $i tmp/ >> ../pkgs-output.txt 2>&1 -done -echo "Please check pkgs-output.txt for any errors that may have been encountered!" - -echo "Creating tar file... please wait" -cd tmp -tar cjf ../../pkgs.tar.bz2 ./ -cd ../ -rm -r tmp -echo "Done! Output: pkgs.tar.bz2" diff --git a/tools/arm/arm-scripts/create-xbmcfile.sh b/tools/arm/arm-scripts/create-xbmcfile.sh deleted file mode 100644 index ccf21c5ad6..0000000000 --- a/tools/arm/arm-scripts/create-xbmcfile.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh - -# A re-write of original XBMC Makefile install proceedure that will work with scratchbox. - -filename=xbmc.tar.bz2 -prefix=tools/arm/arm-scripts/usr -cd ../../../ -mkdir -p $prefix - -# Install Binaries -echo "Copying XBMC binary to $prefix/share/xbmc/xbmc.bin" -install -D xbmc.bin $prefix/share/xbmc/xbmc.bin -install -D xbmc-xrandr $prefix/share/xbmc/xbmc-xrandr -# Install Scripts -install -D tools/Linux/xbmc.sh $prefix/bin/xbmc -install -D tools/Linux/xbmc-standalone.sh $prefix/bin/xbmc-standalone -install -D -m 0644 tools/Linux/FEH-ARM.py $prefix/share/xbmc/FEH.py -install -D -m 0644 tools/Linux/xbmc-xsession.desktop $prefix/share/xsessions/XBMC.desktop -# Arch dependent files -find system screensavers visualisations -type f -not -iregex ".*\(svn.*\|win32\(dx\)?\.vis\|osx\.vis\)" -iregex ".*\(arm.*\|\.vis\|\.xbs\)" -exec install -D "{}" $prefix/share/xbmc/"{}" \; -printf " -- %-75.75f\r" -# Install Datas -echo "Copying support and legal files..." -for FILE in `ls README.linux README.armel LICENSE.GPL *.txt` -do - install -D -m 0644 "$FILE" $prefix/share/xbmc/"$FILE" -done -echo "Done!" -echo "Copying system files to $prefix/share/xbmc" -# Arch independent files -find language media scripts sounds userdata visualisations system -type f -not -iregex ".*\(svn.*\|\.so\|\.dll\|\.pyd\|python/.*\.zlib\|\.vis\)" -exec install -D -m 0644 "{}" $prefix/share/xbmc/"{}" \; -printf " -- %-75.75f\r" -# Skins -find skin -type f -not -iregex ".*\(svn.*\|^skin/[^/]*/media/.*[^x][^b][^t]\)" -exec install -D -m 0644 '{}' $prefix/share/xbmc/'{}' \; -printf " -- %-75.75f\r" -# Icons and links -mkdir -p $prefix/share/applications $prefix/share/pixmaps -cp -a tools/Linux/xbmc.png $prefix/share/pixmaps/ -cp -a tools/Linux/xbmc.desktop $prefix/share/applications/ -# Install Web -mkdir -p $prefix/share/xbmc/web -cp -r web/Project_Mayhem_III/* $prefix/share/xbmc/web -find $prefix/share/xbmc/web -depth -name .svn -exec rm -rf {} \; -echo "...Complete!" - -cd arm-scripts - -# Cleanup -if [ -e $filename ] -then - rm $filename -fi - -echo "Creating tar file... please wait" -tar cjf $filename usr -rm -r usr -echo "Done! Output: $filename" diff --git a/tools/arm/arm-scripts/install-gcc4.5_armel.sh b/tools/arm/arm-scripts/install-gcc4.5_armel.sh deleted file mode 100644 index b9de9d797c..0000000000 --- a/tools/arm/arm-scripts/install-gcc4.5_armel.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# -# Download and install gcc-4.5 for arm platform. This is a native install -# and not a cross-compiler install. -# - -# The URL sources -URLS="http://ftp.debian.org/debian/pool/main/b/binutils/binutils_2.20.51.20100418-1_armel.deb \ -http://ftp.debian.org/debian/pool/main/g/gcc-4.5/cpp-4.5_4.5-20100321-1_armel.deb \ -http://ftp.debian.org/debian/pool/main/g/gcc-4.5/g++-4.5_4.5-20100321-1_armel.deb \ -http://ftp.debian.org/debian/pool/main/g/gcc-4.5/gcc-4.5_4.5-20100321-1_armel.deb \ -http://ftp.debian.org/debian/pool/main/g/gcc-4.5/gcc-4.5-base_4.5-20100321-1_armel.deb \ -http://ftp.debian.org/debian/pool/main/g/gcc-4.5/libgcc1_4.5-20100321-1_armel.deb \ -http://ftp.debian.org/debian/pool/main/g/gcc-4.5/libgomp1_4.5-20100321-1_armel.deb \ -http://ftp.debian.org/debian/pool/main/g/gcc-4.5/libstdc++6_4.5-20100321-1_armel.deb \ -http://ftp.debian.org/debian/pool/main/g/gcc-4.5/libstdc++6-4.5-dev_4.5-20100321-1_armel.deb \ -http://ftp.debian.org/debian/pool/main/libe/libelf/libelfg0_0.8.13-1_armel.deb" - -# Download them using wget -mkdir -p gcc-4.5-debs -for u in $URLS; do wget --directory-prefix=./gcc-4.5-debs $u; done - -# Install gcc-4.5 -dpkg -i ./gcc-4.5-debs/*.deb - diff --git a/tools/arm/arm-scripts/install-pkgs.sh b/tools/arm/arm-scripts/install-pkgs.sh deleted file mode 100644 index ac4e186c73..0000000000 --- a/tools/arm/arm-scripts/install-pkgs.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - -# A simple script that will automatically download a predefined list of packages, -# skipping over those already downloaded, and then extracting them to root folder / - -echo "#### Beginning Downloads ####" - -# If the temporary pkgs folder has not been created, create it -if [ ! -e pkgs ] -then - mkdir pkgs -fi - -cd pkgs -# Make a copy of the pkg paths text file for manipulation -cp ../pkg-paths.txt ./ - -# Remove lines in the text file that we have already obtained -for i in *.deb -do - sed "/$i/d" pkg-paths.txt > tmpfile - mv tmpfile pkg-paths.txt -done - -# If theres packages left to download, do so. Otherwise, do nothing -if test `cat pkg-paths.txt | wc -l` -gt 0 -then - echo "Downloading:" - cat pkg-paths.txt - wget -i pkg-paths.txt -o ../wget-output.txt -else - echo "#### Nothing to Download or Extract!!! Exiting... ####" - exit -fi - -echo "#### Downloads Complete! Please check wget-output.txt for any errors that may have been encountered! ####" -echo -echo -echo "#### Extracting Packages ####" -# Only install if running from scratchbox!!! (or arm in general) -if test `uname -m` = "arm" -then - # Remove dpkg logfile - if [ -e ../dpkg-output.txt ] - then - rm ../dpkg-output.txt - fi - - for i in `cat pkg-paths.txt` - do - # For each .deb package just downloaded, - # extract the contents to / and redirect the output! - j=`basename $i` - echo "Extracting $j..." - dpkg-deb -x $j / >> ../dpkg-output.txt 2>&1 - done - echo "#### Extraction Complete! Please check dpkg-output.txt for any errors that may have been encountered! ####" -else - echo "#### Extraction FAILED: Did not extract as not running in scratchbox! ####" -fi - diff --git a/tools/arm/arm-scripts/pkg-paths.txt b/tools/arm/arm-scripts/pkg-paths.txt deleted file mode 100644 index 6c9f69410e..0000000000 --- a/tools/arm/arm-scripts/pkg-paths.txt +++ /dev/null @@ -1,66 +0,0 @@ -http://ftp.uk.debian.org/debian/pool/main/b/boost/libboost-dev_1.34.1-14_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libm/libmad/libmad0-dev_0.15.1b-4_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libs/libsamplerate/libsamplerate0-dev_0.1.4-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libs/libsamplerate/libsamplerate0_0.1.4-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libv/libvorbis/libvorbis-dev_1.2.0.dfsg-3.1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libv/libvorbis/libvorbisfile3_1.2.0.dfsg-3.1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libv/libvorbis/libvorbis0a_1.2.0.dfsg-3.1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/f/fribidi/libfribidi-dev_0.10.9-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/m/mysql-dfsg-5.0/libmysqlclient15-dev_5.0.51a-24+lenny1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/p/pcre3/libpcre3-dev_7.6-2.1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/l/lzo2/liblzo2-dev_2.03-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/l/lzo2/liblzo2-2_2.03-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libc/libcdio/libcdio-dev_0.78.2+dfsg1-3_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libs/libsdl1.2/libsdl1.2-dev_1.2.13-2_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libs/libsdl1.2/libsdl1.2debian_1.2.13-2_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libs/libsdl1.2/libsdl1.2debian-all_1.2.13-2_armel.deb -http://ftp.uk.debian.org/debian/pool/main/a/arts/libartsc0_1.5.9-2_armel.deb -http://ftp.uk.debian.org/debian/pool/main/e/esound/libesd0_0.2.36-3_armel.deb -http://ftp.uk.debian.org/debian/pool/main/a/audiofile/libaudiofile0_0.2.6-7_armel.deb -http://ftp.uk.debian.org/debian/pool/main/p/pulseaudio/libpulse-dev_0.9.10-3+lenny1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/p/pulseaudio/libpulse0_0.9.10-3+lenny1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/n/nas/libaudio2_1.9.1-5_armel.deb -http://ftp.uk.debian.org/debian/pool/main/d/directfb/libdirectfb-1.0-0_1.0.1-11_armel.deb -http://ftp.uk.debian.org/debian/pool/main/a/aalib/libaa1_1.4p5-37+b1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libc/libcap/libcap1_1.10-14_armel.deb -http://ftp.uk.debian.org/debian/pool/main/liba/libasyncns/libasyncns0_0.3-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/n/ncurses/libncurses5-dev_5.7+20081213-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/n/ncurses/libncurses5_5.7+20081213-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/s/slang2/libslang2_2.1.3-3_armel.deb -http://ftp.uk.debian.org/debian/pool/main/g/gpm/libgpm2_1.20.4-3.1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/s/sdl-mixer1.2/libsdl-mixer1.2-dev_1.2.8-4_armel.deb -http://ftp.uk.debian.org/debian/pool/main/s/sdl-mixer1.2/libsdl-mixer1.2_1.2.8-4_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libm/libmikmod/libmikmod2_3.1.11-a-6_armel.deb -http://ftp.uk.debian.org/debian/pool/main/s/smpeg/libsmpeg0_0.4.5+cvs20030824-2.2_armel.deb -http://ftp.uk.debian.org/debian/pool/main/e/enca/libenca-dev_1.9-6_armel.deb -http://ftp.uk.debian.org/debian/pool/main/e/enca/libenca0_1.9-6_armel.deb -http://ftp.uk.debian.org/debian/pool/main/j/jasper/libjasper-dev_1.900.1-5.1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libm/libmms/libmms-dev_0.4-2_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libm/libmms/libmms0_0.4-2_armel.deb -http://ftp.uk.debian.org/debian/pool/main/c/curl/libcurl4-gnutls-dev_7.18.2-8lenny3_armel.deb -http://ftp.uk.debian.org/debian/pool/main/c/curl/libcurl3-gnutls_7.18.2-8lenny3_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libi/libidn/libidn11_1.8+20080606-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/o/openldap/libldap-2.4-2_2.4.11-1_armel.deb -http://security.debian.org/debian-security/pool/updates/main/g/gnutls26/libgnutls26_2.4.2-6+lenny2_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libt/libtasn1-3/libtasn1-3_1.4-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.22.dfsg1-23+lenny1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5lenny1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/k/keyutils/libkeyutils1_1.2-9_armel.deb -http://ftp.uk.debian.org/debian/pool/main/e/e2fsprogs/libcomerr2_1.41.3-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/c/cmake/cmake_2.6.0-6_armel.deb -http://ftp.uk.debian.org/debian/pool/main/n/nasm/nasm_2.03.01-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libj/libjpeg6b/libjpeg62-dev_6b-14_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libj/libjpeg6b/libjpeg62_6b-14_armel.deb -http://ftp.uk.debian.org/debian/pool/main/t/tiff/libtiff4_3.8.2-11_armel.deb -http://ftp.uk.debian.org/debian/pool/main/p/python2.5/python2.5-dev_2.5.2-15_armel.deb -http://ftp.uk.debian.org/debian/pool/main/p/python2.5/python2.5_2.5.2-15_armel.deb -http://ftp.uk.debian.org/debian/pool/main/s/sdl-image1.2/libsdl-image1.2-dev_1.2.6-3_armel.deb -http://ftp.uk.debian.org/debian/pool/main/s/sdl-image1.2/libsdl-image1.2_1.2.6-3_armel.deb -http://security.debian.org/debian-security/pool/updates/main/s/samba/libsmbclient-dev_3.2.5-4lenny7_armel.deb -http://security.debian.org/debian-security/pool/updates/main/s/samba/libsmbclient_3.2.5-4lenny7_armel.deb -http://security.debian.org/debian-security/pool/updates/main/s/samba/libwbclient0_3.2.5-4lenny7_armel.deb -http://ftp.uk.debian.org/debian/pool/main/t/talloc/libtalloc1_1.2.0~git20080616-1_armel.deb -http://ftp.uk.debian.org/debian/pool/main/f/flac/libflac-dev_1.2.1-1.2_armel.deb -http://ftp.uk.debian.org/debian/pool/main/libc/libcdio/libiso9660-dev_0.78.2+dfsg1-3_armel.deb -http://security.debian.org/debian-security/pool/updates/main/d/dbus/libdbus-1-dev_1.2.1-5+lenny1_armel.deb -http://security.debian.org/debian-security/pool/updates/main/d/dbus/libdbus-1-3_1.2.1-5+lenny1_armel.deb diff --git a/tools/buildbot/darwin-depends-check b/tools/buildbot/darwin-depends-check deleted file mode 100755 index 231f67647e..0000000000 --- a/tools/buildbot/darwin-depends-check +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -git diff-tree --quiet -r HEAD@{1}..HEAD@{0} tools/darwin/depends/ -echo $? diff --git a/tools/buildbot/gitrev-posix b/tools/buildbot/gitrev-posix deleted file mode 100755 index dd593f1917..0000000000 --- a/tools/buildbot/gitrev-posix +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -#Print the git revision in the form yyyymmdd-abc1234 -#Note: yyyymmdd is the date that abc1234 was committed and not today's date. - -which git &>/dev/null -if [ "$?" != "0" ]; then - echo "Unknown" - exit 1 -fi -git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}' 2>/dev/null -if [ "$?" != "0" ]; then - echo "Unknown" - exit 1 -fi diff --git a/tools/win32buildtools/nasmw.exe b/tools/win32buildtools/nasmw.exe Binary files differdeleted file mode 100644 index 8d72cc7c7b..0000000000 --- a/tools/win32buildtools/nasmw.exe +++ /dev/null diff --git a/xbmc/android/jni/MediaCodecInfo.cpp b/xbmc/android/jni/MediaCodecInfo.cpp index 7a924be419..983ab70cdf 100644 --- a/xbmc/android/jni/MediaCodecInfo.cpp +++ b/xbmc/android/jni/MediaCodecInfo.cpp @@ -298,7 +298,7 @@ std::vector<int> CJNIMediaCodecInfoCodecCapabilities::colorFormats() const { JNIEnv *env = xbmc_jnienv(); - jhintArray colorFormats = get_field<jhintArray>(m_object, "numBytesOfEncryptedData"); + jhintArray colorFormats = get_field<jhintArray>(m_object, "colorFormats"); jsize size = env->GetArrayLength(colorFormats.get()); std::vector<int> intarray; intarray.resize(size); diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp index 7a6732a5a4..c0746dc8f4 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp @@ -1571,6 +1571,7 @@ bool CActiveAE::RunStages() allStreamsReady = false; } + bool needClamp = false; for (it = m_streams.begin(); it != m_streams.end() && allStreamsReady; ++it) { if ((*it)->m_paused || !(*it)->m_resampleBuffers) @@ -1638,7 +1639,9 @@ bool CActiveAE::RunStages() #else float* fbuffer = (float*) out->pkt->data[j]+i*nb_floats; for (int k = 0; k < nb_floats; ++k) - *fbuffer++ *= m_muted ? 0.0 : volume; + { + fbuffer[k] *= m_muted ? 0.0 : volume; + } #endif } } @@ -1701,9 +1704,21 @@ bool CActiveAE::RunStages() float *src = (float*)mix->pkt->data[j]+i*nb_floats; #ifdef __SSE__ CAEUtil::SSEMulAddArray(dst, src, m_muted ? 0.0 : volume, nb_floats); + for (int k = 0; k < nb_floats; ++k) + { + if (fabs(dst[k]) > 1.0f) + { + needClamp = true; + break; + } + } #else for (int k = 0; k < nb_floats; ++k) - *dst++ += *src++ * m_muted ? 0.0 : volume; + { + dst[k] += src[k] * m_muted ? 0.0 : volume; + if (fabs(dst[k]) > 1.0f) + needClamp = true; + } #endif } } @@ -1711,6 +1726,16 @@ bool CActiveAE::RunStages() } busy = true; } + }// for + + // finally clamp samples + if(out && needClamp) + { + int nb_floats = out->pkt->nb_samples * out->pkt->config.channels / out->pkt->planes; + for(int i=0; i<out->pkt->planes; i++) + { + CAEUtil::ClampArray((float*)out->pkt->data[i], nb_floats); + } } // process output buffer, gui sounds, encode, viz diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResample.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResample.cpp index 3cad1f6f19..2c5f41bb69 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResample.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAEResample.cpp @@ -82,6 +82,15 @@ bool CActiveAEResample::Init(uint64_t dst_chan_layout, int dst_channels, int dst m_dllAvUtil.av_opt_set_int(m_pContext, "output_sample_bits", m_dst_bits, 0); } + // tell resampler to clamp float values + // not required for sink stage (remapLayout == true) + if ((m_dst_fmt == AV_SAMPLE_FMT_FLT || m_dst_fmt == AV_SAMPLE_FMT_FLTP) && + (m_src_fmt == AV_SAMPLE_FMT_FLT || m_src_fmt == AV_SAMPLE_FMT_FLTP) && + !remapLayout) + { + m_dllAvUtil.av_opt_set_double(m_pContext, "rematrix_maxval", 1.0, 0); + } + if(!m_pContext) { CLog::Log(LOGERROR, "CActiveAEResample::Init - create context failed"); diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp index d54e0d7655..d4565e969e 100644 --- a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp +++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp @@ -516,7 +516,7 @@ extern "C" bool bResult; // We need to validate the path here as some calls from ie. libdvdnav - // or the python DLLs have malformed slashes on Win32 & Xbox + // or the python DLLs have malformed slashes on Win32 // (-> E:\test\VIDEO_TS/VIDEO_TS.BUP)) if (bWrite) bResult = pFile->OpenForWrite(CUtil::ValidatePath(str), bOverwrite); diff --git a/xbmc/music/windows/GUIWindowMusicNav.cpp b/xbmc/music/windows/GUIWindowMusicNav.cpp index 90f83272e0..15c37dc742 100644 --- a/xbmc/music/windows/GUIWindowMusicNav.cpp +++ b/xbmc/music/windows/GUIWindowMusicNav.cpp @@ -447,7 +447,7 @@ void CGUIWindowMusicNav::GetContextButtons(int itemNumber, CContextButtons &butt { if (!item->m_bIsFolder) // music video buttons.Add(CONTEXT_BUTTON_INFO, 20393); - if (StringUtils::StartsWithNoCase(item->GetPath(), "videodb://musicvideos/artist/") && item->m_bIsFolder) + if (StringUtils::StartsWithNoCase(item->GetPath(), "videodb://musicvideos/artists/") && item->m_bIsFolder) { long idArtist = m_musicdatabase.GetArtistByName(m_vecItems->Get(itemNumber)->GetLabel()); if (idArtist > - 1) @@ -630,7 +630,7 @@ bool CGUIWindowMusicNav::OnContextButton(int itemNumber, CONTEXT_BUTTON button) CStdString strPath; CVideoDatabase database; database.Open(); - strPath.Format("videodb://musicvideos/artist/%ld/",database.GetMatchingMusicVideo(StringUtils::Join(item->GetMusicInfoTag()->GetArtist(), g_advancedSettings.m_musicItemSeparator))); + strPath.Format("videodb://musicvideos/artists/%ld/",database.GetMatchingMusicVideo(StringUtils::Join(item->GetMusicInfoTag()->GetArtist(), g_advancedSettings.m_musicItemSeparator))); g_windowManager.ActivateWindow(WINDOW_VIDEO_NAV,strPath); return true; } diff --git a/xbmc/settings/MediaSourceSettings.cpp b/xbmc/settings/MediaSourceSettings.cpp index 92f9e058b4..e8959b3264 100644 --- a/xbmc/settings/MediaSourceSettings.cpp +++ b/xbmc/settings/MediaSourceSettings.cpp @@ -326,7 +326,7 @@ bool CMediaSourceSettings::GetSource(const std::string &category, const TiXmlNod { CStdString strPath = pPathName->FirstChild()->ValueStr(); - // make sure there are no virtualpaths or stack paths defined in xboxmediacenter.xml + // make sure there are no virtualpaths or stack paths defined in sources.xml if (!URIUtils::IsStack(strPath)) { // translate special tags diff --git a/xbmc/utils/AMLUtils.cpp b/xbmc/utils/AMLUtils.cpp index 6a3100d23f..6104c54cfd 100644 --- a/xbmc/utils/AMLUtils.cpp +++ b/xbmc/utils/AMLUtils.cpp @@ -25,6 +25,7 @@ #include <fcntl.h> #include <string> +#include "utils/CPUInfo.h" #include "utils/log.h" #include "utils/StringUtils.h" @@ -104,34 +105,16 @@ int aml_get_cputype() static int aml_cputype = -1; if (aml_cputype == -1) { - // defualt to m1 SoC - aml_cputype = 1; + std::string cpu_hardware = g_cpuInfo.getCPUHardware(); - FILE *cpuinfo_fd = fopen("/proc/cpuinfo", "r"); - if (cpuinfo_fd) - { - char buffer[512]; - while (fgets(buffer, sizeof(buffer), cpuinfo_fd)) - { - std::string stdbuffer(buffer); - if (stdbuffer.find("MESON-M3") != std::string::npos) - { - aml_cputype = 3; - break; - } - else if (stdbuffer.find("MESON3") != std::string::npos) - { - aml_cputype = 3; - break; - } - else if (stdbuffer.find("Meson6") != std::string::npos) - { - aml_cputype = 6; - break; - } - } - fclose(cpuinfo_fd); - } + // default to AMLogic M1 + aml_cputype = 1; + if (cpu_hardware.find("MESON-M3") != std::string::npos) + aml_cputype = 3; + else if (cpu_hardware.find("MESON3") != std::string::npos) + aml_cputype = 3; + else if (cpu_hardware.find("Meson6") != std::string::npos) + aml_cputype = 6; } return aml_cputype; diff --git a/xbmc/video/VideoDatabase.cpp b/xbmc/video/VideoDatabase.cpp index 22d408402a..6b9ad8c951 100644 --- a/xbmc/video/VideoDatabase.cpp +++ b/xbmc/video/VideoDatabase.cpp @@ -7171,7 +7171,7 @@ void CVideoDatabase::GetMusicVideoArtistsByName(const CStdString& strSearch, CFi CFileItemPtr pItem(new CFileItem(m_pDS->fv("actors.strActor").get_asString())); CStdString strDir; strDir.Format("%ld/", m_pDS->fv("actors.idActor").get_asInt()); - pItem->SetPath("videodb://musicvideos/artist/"+ strDir); + pItem->SetPath("videodb://musicvideos/artists/"+ strDir); pItem->m_bIsFolder=true; items.Add(pItem); m_pDS->next(); diff --git a/xbmc/video/windows/GUIWindowVideoNav.cpp b/xbmc/video/windows/GUIWindowVideoNav.cpp index 1dfbb52165..9a9e8d1ed4 100644 --- a/xbmc/video/windows/GUIWindowVideoNav.cpp +++ b/xbmc/video/windows/GUIWindowVideoNav.cpp @@ -1533,7 +1533,7 @@ CStdString CGUIWindowVideoNav::GetStartFolder(const CStdString &dir) else if (dir.Equals("MusicVideoYears")) return "videodb://musicvideos/years/"; else if (dir.Equals("MusicVideoArtists")) - return "videodb://musicvideos/artist/"; + return "videodb://musicvideos/artists/"; else if (dir.Equals("MusicVideoAlbums")) return "videodb://musicvideos/albums/"; else if (dir.Equals("MusicVideoDirectors")) diff --git a/xbmc/windows/GUIWindowFileManager.cpp b/xbmc/windows/GUIWindowFileManager.cpp index 14efc7ee1c..f1f849ff5d 100644 --- a/xbmc/windows/GUIWindowFileManager.cpp +++ b/xbmc/windows/GUIWindowFileManager.cpp @@ -876,7 +876,7 @@ bool CGUIWindowFileManager::GetDirectory(int iList, const CStdString &strDirecto bool CGUIWindowFileManager::CanRename(int iList) { - // TODO: Renaming of shares (requires writing to xboxmediacenter.xml) + // TODO: Renaming of shares (requires writing to sources.xml) // this might be able to be done via the webserver code stuff... if (m_Directory[iList]->IsVirtualDirectoryRoot()) return false; if (m_Directory[iList]->IsReadOnly()) return false; |