Неожиданная замена GPU с Mali на PoverVR под вопросом. Но,с PoverVR SGX530 было дело помучиться на TI Beaglebone Black, поэтому и к G6110 заочно отношусь с опаской, тем более на сырой 64-bit платформе.
Allwinner A80 также не представляет явной конкуренции RK3288,
, хотя пару месяцев назад подумывал взять Cubieboard 8 для экспериментов.
Но сейчас намного привлекательнее по соотношению цена/качество выглядит Orange Pi 2 на Allwinner H3:
---------- Сообщение добавлено 30.12.2015 в 17:46 ----------
Сообщение от aluver
Neutron Music Player тоже должен декодировать сам.
По крайней мере, NeutronMP работает напрямую через AudioSystem (в обход FFplayer), но все равно преобразовывает к 44100.
Следовательно, проблемы не в декодере, а где-то на этом уровне, либо все-таки audio_policy (HAL).
После прочтения съесть!
Код:
I/ActivityManager( 483): START u0 {act=android.intent.action.VIEW dat=file:///mnt/internal_sd/Music/110408__sandyrb__tubular-009.wav typ=audio/x-wav flg=0x4000000 cmp=com.neutroncode.mp/.NeutronMPCore (has extras)} from pid 1543
I/ActivityManager( 483): Displayed com.neutroncode.mp/.NeutronMPCore: +91ms
I/NeutronMP( 1871): - VISIBLE=(TRUE) begin...
I/NeutronMP( 1871): Player| stop passive updater
I/NeutronMP( 1871): Player| trying to play file: /mnt/internal_sd/Music/110408__sandyrb__tubular-009.wav
W/NeutronMP( 1871): Player| _UpdateDisplayOnNewTrack: no current playlist
W/NeutronMP( 1871): Player| _UpdateDisplayOnNewTrack: no current playlist entry
I/NeutronMP( 1871): Player| cancel hibernation...
I/NeutronMP( 1871): Player| starting DSP visual services
I/NeutronMP( 1871): Player| cancel hibernation - done
I/NeutronMP( 1871): Player| audio focus: request
I/NeutronMP( 1871): Player| Idle state: 0
I/NeutronMP( 1871): MP| OnUpdaterThreadChanged | attached[0]
I/NeutronMP( 1871): Player| stop passive updater - done
I/NeutronMP( 1871): SFX| -------------------------
I/NeutronMP( 1871): MP| OnUpdaterThreadChanged | attached[1]
I/MediaFocusControl( 483): AudioFocus requestAudioFocus() from android.media.AudioManager@41991090null
I/NeutronMP( 1871): MP| APP_UICreate | creating UI
I/NeutronMP( 1871): MP| - creating GFX Device
I/NeutronMP( 1871): SFX| HW buffer:
I/NeutronMP( 1871): SFX| device: hw-frames | 11150
I/NeutronMP( 1871): SFX| device: hw-bytes | 44600
I/NeutronMP( 1871): SFX| device: sw-latency| 27 ms
I/NeutronMP( 1871): MP| - creating GFX Renderer
I/NeutronMP( 1871): SFX| device: hw-latency| 252 ms
I/NeutronMP( 1871): SFX| -------------------------
I/AudioTrack( 1871): set() streamType 3 frameCount 11150 flags 0000 channelMask 3 sampleRate 44100 format 1
I/NeutronMP( 1871): MP| - creating GFX Camera
I/NeutronMP( 1871): MP| - creating GFX GUIManager
I/NeutronMP( 1871): MP| - loading UI layout base
I/NeutronMP( 1871): MP| - loading UI layout
I/AudioHardwareALSA( 133): Audio exiting sandby will open audio device
V/ALSAModule( 133): SAMPLERATE:44100
D/ALSAModule( 133): open called for devices 00000800 in mode 0...
D/ALSAModule( 133): DevName: AndroidPlayback_Spdif_normal
E/ALSAModule( 133): buffersize: 3072, periodsize:1024
V/ALSAModule( 133): Set PLAYBACK PCM format to S16_LE (Signed 16 bit Little Endian)
V/ALSAModule( 133): Using 2 channels for PLAYBACK.
V/ALSAModule( 133): Set PLAYBACK sample rate to 44100 HZ
E/ALSAModule( 133): audio type flag: 0
V/ALSAModule( 133): Buffer size: 3072(frames) period Size: 1024(frames) periods: 3 (buffersize=periodSize*periods)
V/ALSAModule( 133): Latency: 69659 periodTime: 23219
D/ALSAModule( 133):
D/ALSAModule( 133): DumpHandleInfo:
D/ALSAModule( 133): devices: 0xbfff
D/ALSAModule( 133): format: 0x2
D/ALSAModule( 133): channels: 2
D/ALSAModule( 133): sampleRate: 44100
D/ALSAModule( 133): latency: 69659
D/ALSAModule( 133): periodSize:1024
D/ALSAModule( 133): bufferSize:3072
I/NeutronMP( 1871): MP| - initializing Input
I/NeutronMP( 1871): MP| - finalizing UI
I/NeutronMP( 1871): Player| changing display to Normal
W/NeutronMP( 1871): Player| _UpdateDisplayOnNewTrack: no current playlist
W/NeutronMP( 1871): Player| _UpdateDisplayOnNewTrack: no current playlist entry
I/NeutronMP( 1871): Player| started CPU power saving
I/NeutronMP( 1871): Player| stopped CPU power saving
W/NeutronMP( 1871): Player| _UpdateDisplayOnNewTrack: no current playlist
W/NeutronMP( 1871): Player| _UpdateDisplayOnNewTrack: no current playlist entry
I/NeutronMP( 1871): Player| AGP status: resume
I/NeutronMP( 1871): Player| activating preamp[OFF]
I/NeutronMP( 1871): Player| activating crossfeed[OFF]
I/NeutronMP( 1871): Player| activating crossfeed[OFF]
I/NeutronMP( 1871): Player| activating fade[OFF]
I/NeutronMP( 1871): Player| activating crossfade[OFF]
I/NeutronMP( 1871): Player| activating dithering[OFF]
I/NeutronMP( 1871): Player| activating pback mode[OFF]
I/NeutronMP( 1871): Player| activating shuffle[OFF]
I/NeutronMP( 1871): Player| changing display to Large
W/NeutronMP( 1871): Player| _UpdateDisplayOnNewTrack: no current playlist
W/NeutronMP( 1871): Player| _UpdateDisplayOnNewTrack: no current playlist entry
I/NeutronMP( 1871): MP| APP_UICreate | creating UI - done
W/NeutronMP( 1871): Player| _UpdateDisplayOnNewTrack: no current playlist
W/NeutronMP( 1871): Player| _UpdateDisplayOnNewTrack: no current playlist entry
I/NeutronMP( 1871): Player| Idle state: 0
I/NeutronMP( 1871): Player| Idle state: 1
Кроме того, в SDK RK Android 5.1 код FFplayer в интерпретации RK полностью немного более открытый, равно как и все что связано с декодерами через libvpu. Что также упрощает поиски.
Социальные закладки