

#!/bin/bash
#
# Simple wrapper to fix problems with distorted/crackling/choppy sound when
# playing flash clips with flash plugin from a browser.
# You can test with e.g. the myspace player by running
# /path/to/this/script firefox http://www.myspace.com/igotyouontape
# and chosing one of the play buttons
# Original location
MEMCPYWRAP='/usr/lib/libc/memcpy-preload.so'
# New location
MEMCPYWRAPARCH='/usr/lib/x86_64-linux-gnu/libc/memcpy-preload.so'
# Try each wrapper location in turn and warn user if neither is there
if [ -e "$MEMCPYWRAP" ]; then
export LD_PRELOAD="$MEMCPYWRAP"
elif [ -e "$MEMCPYWRAPARCH" ]; then
export LD_PRELOAD="$MEMCPYWRAPARCH"
else
echo "no memcpy wrapper found - sure this is a 64-bit flash problem?"
fi
exec $@
chmod 755 ~/flash-audio-workaround.sh~/flash-audio-workaround.sh firefox




hozomean wrote:Here is a short summary of my adventures with flash on XFCE LMDE 64bit (though I'm certain this is not specific to the XFCE version, but to all debian 64bit systems):
First of all, there are multiple flash players in the repos. For this fix, I am using mint-flashplugin-x64.
With all of the 64bit versions of the flash plugin, including the "Square" version downloaded from adobe, I get incredibly annoying distortion on 90% of flash websites I go to.
I was able to use the solution of downloading the 32-bit version and installing it using nspluginwrapper. However, with this solution flash does not play nicely with pulseaudio, which means if you're listening to music and simultaneously try to visit a youtube video, flash will not have any audio until you kill any other app using the soundcard.
Ultimately I discovered via this post on the debian forums which basically says that there was a change to eglibc that modifies how a memcpy() call works that only affects amd64, which evidently flash is affected by. So, until flash is updated, I have 2 (relatively) painless fixes that make flash audio work without distortion and let it coexist peacefully with other audio apps.
The first is easier, but could potentially affect other apps on the system (though from my understanding of what I've read these effects would be positive in that it would fix memory issues in other apps that use that call improperly). The second solution won't survive updates, but will only apply to the browsers. They are respectively labeled 1 and 2 below.
1. edit /etc/ld.so.preload as root (this file does not exist on a stock version of LMDE). add this single line:
/usr/lib/x86_64-linux-gnu/libc/memcpy-preload.so
This will apply the patch system-wide.
2. Each web browser on your system is started by a bash script of the same name in /usr/bin (if you don't know what this means, fear not). You can add environment variables to these bash scripts like defining exactly this type of library preload. so if you edit, say, /usr/bin/firefox as root (or via sudo), you just need to add a line like this:
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libc/memcpy-preload.so
toward the top of the file (the export probably isn't necessary in all cases, but just in case). I've tested this with iceweasel, firefox, opera, and chromium. All now produce flawless sound and the flashplayer can play at the same time as other apps if you've setup pulseaudio to do so.
Hope this helps people to not have to go through all the potential fixes I did!









jack.herbert wrote:I had the same sound issue on LMDE x64 with Firefox4 x64 and Opera, but not Chromium. Go figure
Cheers for the links. It all seems a bit complicated so I just
downloaded the 32bit version of flash http://get.adobe.com/flashplayer/,
extracted libflashplayer.so into /usr/lib/mozilla/plugins (being root and all)
Now the sound is okay.


Users browsing this forum: No registered users and 3 guests