[FIX] Fix poor AAC streaming performance (Pandora, Slacker, etc) on Froyo

Search This thread

mrcrassic

Senior Member
Sep 28, 2007
353
32
New York
When I installed Froyo on my N1, I found that streaming quality over Pandora suffered tremendously; low-quality was unbearable, and high-quality sounded worse than low-quality normally does. The change to StageFright from OpenCore is to blame here, while it improves HTTP streaming, it's AAC decoder doesn't decode LC-AAC streams properly.

To disable it temporarily, use
Code:
adb setprop media.stagefright.enable-player false
and restart any applications actively playing anything. To disable it permanently, pull build.prop from /system and change the value there. When you restart, it should be disabled; use adb getprop to verify.

Of course, the phone needs to be rooted for this to happen, as r/w access to /system is required.
 
Last edited:
  • Like
Reactions: Drew5150

propain4444

Senior Member
Jun 28, 2010
113
10
THANK YOU!!!

I was so completely frustrated by this, as my phone is my primary source of music in my car via Rhapsody, that i had just rolled back to 2.1 yesterday.

I just verified your 'fix' and my sound is now perfect again!

Side note to everyone out there, setprop is a shell command, so you actual command to set the property is:
adb shell setprop media.stagefright.enable-player false

But there's no reason you shouldn't change the property in your build.prop file if you listen to streaming music regularly.

Again, THANK YOU for this fix!!

One other side note: this change also appears to fix the bluetooth "skipping" issue that appeared in 2.2 as well.
 
Last edited:

Chopes

Senior Member
Apr 11, 2010
440
9
When I installed Froyo on my N1, I found that streaming quality over Pandora suffered tremendously; low-quality was unbearable, and high-quality sounded worse than low-quality normally does. The change to StageFright from OpenCore is to blame here, while it improves HTTP streaming, it's AAC decoder doesn't decode LC-AAC streams properly.

To disable it temporarily, use
Code:
adb setprop media.stagefright.enable-player false
and restart any applications actively playing anything. To disable it permanently, pull build.prop from /system and change the value there. When you restart, it should be disabled; use adb getprop to verify.

Of course, the phone needs to be rooted for this to happen, as r/w access to /system is required.

Thanks for the info man :)


Just curious though, does anyone know the cause of why this is? Maybe a different decoder would have more success?
 

PeRRiiN

Senior Member
Apr 5, 2010
455
1
CA
I'm rooted and pulled the build.prop file, but what program do I need to open the build.prop file and edit it?
 

venelar

Senior Member
Jan 27, 2007
1,884
492
Baton Rouge
Thanks for this! Having some trouble pulling it off though :( I'm new to android.

I have root/unlocked, and have successfully used the adb pull command to pull the build.prop file. I've got the file edited, but cannot seem to get it to push back to the device.

Here is my problem if anyone would be willing to point me to the correct method.
adbhatesme.png
 

PeRRiiN

Senior Member
Apr 5, 2010
455
1
CA
Thanks for this! Having some trouble pulling it off though :( I'm new to android.

I have root/unlocked, and have successfully used the adb pull command to pull the build.prop file. I've got the file edited, but cannot seem to get it to push back to the device.

I believe you have to type this command before you push it

adb remount
 

stealthopts17

Member
Feb 18, 2010
15
0
I can confirm that this works! Thanks!

I think it would be a good idea to include these instructions in the OP for those who don't know the commands.


Here's what I did. For those following these steps, the file locations on your computer may be slightly different.

On Windows:
1. Open Command Prompt
2. Type cd [location of tools folder in android sdk] Example cd C:\Documents and Settings\Administrator\My Documents\Nexus One\android-sdk-windows\tools
3. Type adb pull /system/build.prop c:\build.prop [This will place build.prop in your C Drive]
4. Using any text editor, open the file, make the necessary changes, then save.
5. Type adb remount
6. Type adb push c:\build.prop /system/build.prop
7. Type adb reboot
8. To verify that it is disabled, type adb shell getprop

After a few scrolls, you will see the following:
[media.stagefright.enable-player]: [false]

This means that everything was done correctly.

I'm pretty n00bish at this stuff. If something doesn't look right, let me know.


Thanks again for the fix!
 
Last edited:

craigacgomez

Senior Member
Jan 29, 2010
2,215
3,924
Tustin
Thanks for this! Having some trouble pulling it off though :( I'm new to android.

I have root/unlocked, and have successfully used the adb pull command to pull the build.prop file. I've got the file edited, but cannot seem to get it to push back to the device.

Here is my problem if anyone would be willing to point me to the correct method.
adbhatesme.png

Which ROM are you using? And which boot image are you using. Just root access is not enough. The ro.secure value in default.prop should be set to 0 (zero) to allow remount with read-write permissions. Check the value of ro.secure in /default.prop. If it is 1 (one), you need to flash a new boot.img which has the value set as 0 (zero)
 

mixer5911

Senior Member
Jun 14, 2009
158
8
I can confirm that this works! Thanks!

I think it would be a good idea to include these instructions in the OP for those who don't know the commands.


Here's what I did. For those following these steps, the file locations on your computer may be slightly different.

On Windows:
1. Open Command Prompt
2. Type cd [location of tools folder in android sdk] Example cd C:\Documents and Settings\Administrator\My Documents\Nexus One\android-sdk-windows\tools
3. Type adb pull /system/build.prop c:\build.prop [This will place build.prop in your C Drive]
4. Using any text editor, open the file, make the necessary changes, then save.
5. Type adb remount
6. Type adb push c:\build.prop /system/build.prop
7. Type adb reboot
8. To verify that it is disabled, type adb shell getprop

After a few scrolls, you will see the following:
[media.stagefright.enable-player]: [false]

This means that everything was done correctly.

I'm pretty n00bish at this stuff. If something doesn't look right, let me know.


Thanks again for the fix!

awesome! although i have to say i don't really see (hear) a difference using pandora on cm6rc2
 
  • Like
Reactions: asjshenry

voodoo55

Senior Member
Jul 24, 2010
178
72
Super gratefull for this! Worked like a charm. ;)

Sent from my PC36100 using XDA App
 

mempf

Member
Mar 23, 2010
49
29
Vancouver
Thanks so much. :D

Sounds so much better now.

What real life consequences does making this change this have? The OP mentions HTTP streaming, can you elaborate?

Thanks!
 

arich

Senior Member
May 16, 2010
280
28
Noob question: canine just access the build.prop file with root explorer and edit it that way?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 2
    Moto Droid (Simply Stunning v4.6).

    I just applied this update... Didn't blow up, booted fine.

    Will test the sound quality once I get to my car.

    Just an FYI.
    1
    When I installed Froyo on my N1, I found that streaming quality over Pandora suffered tremendously; low-quality was unbearable, and high-quality sounded worse than low-quality normally does. The change to StageFright from OpenCore is to blame here, while it improves HTTP streaming, it's AAC decoder doesn't decode LC-AAC streams properly.

    To disable it temporarily, use
    Code:
    adb setprop media.stagefright.enable-player false
    and restart any applications actively playing anything. To disable it permanently, pull build.prop from /system and change the value there. When you restart, it should be disabled; use adb getprop to verify.

    Of course, the phone needs to be rooted for this to happen, as r/w access to /system is required.
    1
    I can confirm that this works! Thanks!

    I think it would be a good idea to include these instructions in the OP for those who don't know the commands.


    Here's what I did. For those following these steps, the file locations on your computer may be slightly different.

    On Windows:
    1. Open Command Prompt
    2. Type cd [location of tools folder in android sdk] Example cd C:\Documents and Settings\Administrator\My Documents\Nexus One\android-sdk-windows\tools
    3. Type adb pull /system/build.prop c:\build.prop [This will place build.prop in your C Drive]
    4. Using any text editor, open the file, make the necessary changes, then save.
    5. Type adb remount
    6. Type adb push c:\build.prop /system/build.prop
    7. Type adb reboot
    8. To verify that it is disabled, type adb shell getprop

    After a few scrolls, you will see the following:
    [media.stagefright.enable-player]: [false]

    This means that everything was done correctly.

    I'm pretty n00bish at this stuff. If something doesn't look right, let me know.


    Thanks again for the fix!

    awesome! although i have to say i don't really see (hear) a difference using pandora on cm6rc2