[Galaxy S 4 i9505 Original Android Development] wpyh:
No, sorry :) I don't think I would be a good tester right now. I'm testing the blob libbt-vendor.so from a custom TW ROM, as I mentioned above... maybe someone else can test your new build :)

Since libbt-vendor.so is obtained from Samsung, then if we can find some libbt-vendor.so that fixes the Bluetooth problem, we can use it, right?

I'm testing a few mp3 files, playing them with TC Media Player (from Total Commander) to my mono bluetooth headset. At the beginning, I get some stutters, and this shows up in my logcat: (auditd logs removed, too many of them)

D/StatusBar( 1586): Clicked on content of 0|com.ghisler.android.TotalCommander|2|null|10078
I/ActivityManager( 705): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.ghisler.android.TotalCommander/.MediaPlayerActivity} from uid 10078 on display 0
W/InputMethodManagerService( 705): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@2d69b233 attribute=null, token = android.os.BinderProxy@1755f03a
V/WindowManager( 705): addAppToken: AppWindowToken{33aedb69 token=Token{10be99f0 ActivityRecord{1e9ac5a2 u0 com.ghisler.android.TotalCommander/.MediaPlayerActivity t19}}} to stack=1 task=19 at 1
D/PhoneStatusBar( 1586): disable: < expand icons* alerts system_info* back home recent clock search >
V/WindowManager( 705): Adding window Window{21033e8f u0 com.ghisler.android.TotalCommander/com.ghisler.android.TotalCommander.MediaPlayerActivity} at 11 of 14 (after Window{25a524eb u0 com.ghisler.android.TotalCommander/com.ghisler.android.TotalCommander.TotalCommander})
I/ActivityManager( 705): Displayed com.ghisler.android.TotalCommander/.MediaPlayerActivity: +395ms
I/Timeline( 705): Timeline: Activity_windows_visible id: ActivityRecord{1e9ac5a2 u0 com.ghisler.android.TotalCommander/.MediaPlayerActivity t19} time:17875048
I/Timeline(18687): Timeline: Activity_idle id: android.os.BinderProxy@26657f93 time:17875110
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
V/NotificationService( 705): pkg=com.mortisapps.trayvolume canInterrupt=false intercept=true
E/bt-btif ( 4523): [media task tx timer] ts 35967488843, diff : 00038269, queue sz 78
W/ActivityManager( 705): getRunningAppProcesses: caller 10069 does not hold REAL_GET_TASKS; limiting output
D/HeadsetPhoneState( 4523): sendDeviceStateChanged. mService=1 mSignal=3 mRoam=0 mBatteryCharge=1
D/HeadsetStateMachine( 4523): Connected process message: 11, size: 1
D/bt-btif ( 4523): BTHF: device_status_notification
D/bt-btif ( 4523): AG evt (hdl 0x0001): State 2, Event 0x0506
D/bt-btif ( 4523): bta_ag_hfp_result : res = 5
D/bt-btif ( 4523): AG evt (hdl 0x0001): State 2, Event 0x0506
D/bt-btif ( 4523): bta_ag_hfp_result : res = 5
D/bt-btif ( 4523): AG evt (hdl 0x0001): State 2, Event 0x0506
D/bt-btif ( 4523): bta_ag_hfp_result : res = 5
D/bt-btif ( 4523): AG evt (hdl 0x0001): State 2, Event 0x0506
D/bt-btif ( 4523): bta_ag_hfp_result : res = 5
E/bt-btif ( 4523): [media task tx timer] ts 35968624860, diff : 00032867, queue sz 75
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
V/NotificationService( 705): pkg=com.mortisapps.trayvolume canInterrupt=false intercept=true
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
E/bt-btif ( 4523): [media task tx timer] ts 35984634107, diff : 00035462, queue sz 78
E/bt-btif ( 4523): [media task tx timer] ts 35985881635, diff : 00048920, queue sz 76
E/bt-btif ( 4523): [media task tx timer] ts 35988797345, diff : 00079254, queue sz 78
W/bt-btif ( 4523): btif_get_num_aa_frame() - Limiting frames to be sent from 30 to 18
W/bt-btif ( 4523): btif_get_num_aa_frame() - Limiting frames to be sent from 19 to 18
E/bt-btif ( 4523): [media task tx timer] ts 35988937299, diff : 00059906, queue sz 77
W/bt-btif ( 4523): btif_get_num_aa_frame() - Limiting frames to be sent from 22 to 18
E/bt-btif ( 4523): [media task tx timer] ts 35989984449, diff : 00038910, queue sz 74
E/bt-btif ( 4523): [media task tx timer] ts 35990110120, diff : 00064972, queue sz 73
W/bt-btif ( 4523): btif_get_num_aa_frame() - Limiting frames to be sent from 30 to 18
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
E/bt-btif ( 4523): [media task tx timer] ts 35991038251, diff : 00042328, queue sz 77
V/NotificationService( 705): pkg=com.mortisapps.trayvolume canInterrupt=false intercept=true
E/bt-btif ( 4523): [media task tx timer] ts 35992755628, diff : 00032684, queue sz 77
W/ActivityManager( 705): getRunningAppProcesses: caller 10069 does not hold REAL_GET_TASKS; limiting output
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
V/NotificationService( 705): pkg=com.mortisapps.trayvolume canInterrupt=false intercept=true
I/ClearcutLoggerApiImpl( 1817): disconnect managed GoogleApiClient
I/art ( 705): Background partial concurrent mark sweep GC freed 162565(8MB) AllocSpace objects, 66(1072KB) LOS objects, 26% free, 44MB/60MB, paused 4.119ms total 492.340ms
E/bt-btif ( 4523): [media task tx timer] ts 36011148023, diff : 00049225, queue sz 82
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
W/bt-btif ( 4523): btif_get_num_aa_frame() - Limiting frames to be sent from 30 to 18
E/bt-btif ( 4523): [media task tx timer] ts 36011181562, diff : 00033539, queue sz 78
W/bt-btif ( 4523): btif_get_num_aa_frame() - Limiting frames to be sent from 20 to 18
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
V/NotificationService( 705): pkg=com.mortisapps.trayvolume canInterrupt=false intercept=true
E/bt-btif ( 4523): [media task tx timer] ts 36021619764, diff : 00040894, queue sz 82
E/bt-btif ( 4523): [media task tx timer] ts 36027372846, diff : 00035126, queue sz 84
W/ActivityManager( 705): getRunningAppProcesses: caller 10069 does not hold REAL_GET_TASKS; limiting output
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
E/Sensors ( 705): Acc old sensor_state 128, new sensor_state : 129 en : 1
D/WifiService( 705): acquireWifiLockLocked: WifiLock{NlpWifiLock type=2 binder=android.os.BinderProxy@39a0f8c6}
W/ActivityManager( 705): getRunningAppProcesses: caller 10095 does not hold REAL_GET_TASKS; limiting output
D/WifiService( 705): releaseWifiLockLocked: WifiLock{NlpWifiLock type=2 binder=android.os.BinderProxy@39a0f8c6}
V/NotificationService( 705): pkg=com.mortisapps.trayvolume canInterrupt=false intercept=true
E/Sensors ( 705): Acc old sensor_state 129, new sensor_state : 128 en : 0
I/GCoreUlr( 1817): Starting service, intent=Intent { act=com.google.android.location.reporting.ACTION_UPDATE_ACTIVE_STATE cmp=com.google.android.gms/com.google.android.location.reporting.service.DispatchingService (has extras) }, extras=Bundle[{source=PowerModeReceiver}]
E/Sensors ( 705): SigMotionSensor old sensor_state 128, new sensor_state : 2176 en : 1
I/GCoreUlr( 1817): DispatchingService.updateActiveState+PowerModeReceiver: Ensuring that reporting is active for [account#9#]
I/GCoreUlr( 1817): GMS FLP location and AR updates requested: {"description":"stationary","newRequest":true,"samplePeriodMs":2160000,"sampleReason":"stationary","sampleSource":"internal","timestampMs":1444263160436}
I/GCoreUlr( 1817): GMS BLE scans enabled.
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
E/bt-btif ( 4523): [media task tx timer] ts 36047664655, diff : 00045837, queue sz 88
V/NotificationService( 705): pkg=com.mortisapps.trayvolume canInterrupt=false intercept=true
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
W/ActivityManager( 705): getRunningAppProcesses: caller 10069 does not hold REAL_GET_TASKS; limiting output
V/NotificationService( 705): pkg=com.mortisapps.trayvolume canInterrupt=false intercept=true
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
E/bt-btif ( 4523): [media task tx timer] ts 36072076551, diff : 00045990, queue sz 91
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
V/NotificationService( 705): pkg=com.mortisapps.trayvolume canInterrupt=false intercept=true
D/HeadsetStateMachine( 4523): Connected process message: 10, size: 1
W/ActivityManager( 705): getRunningAppProcesses: caller 10069 does not hold REAL_GET_TASKS; limiting output
E/bt-btif ( 4523): [media task tx timer] ts 36091674878, diff : 00031616, queue sz 93
E/bt-btif ( 4523): [media task tx timer] ts 36094123212, diff : 00056366, queue sz 90
W/bt-btif ( 4523): btif_get_num_aa_frame() - Limiting frames to be sent from 23 to 18

After the first few stutters, playback is fine except for the occasional glitch in the sound.

On the other hand, what is the problem with auditd? I see this over and over again in logcat, but only when screen is on:

I/auditd (18829): Starting up
E/auditd (18829): Failed on audit_set_pid with error: Protocol not supported
I/auditd (18829): Exiting
I/auditd (18844): Starting up
E/auditd (18844): Failed on audit_set_pid with error: Protocol not supported
I/auditd (18844): Exiting
I/auditd (18863): Starting up
E/auditd (18863): Failed on audit_set_pid with error: Protocol not supported
I/auditd (18863): Exiting

...