Цитата Сообщение от aluver Посмотреть сообщение
Жаль... в случае с AC3 & DTS он их отправит на spdif в недекодированном виде, то есть неизменно... По крайней мере кино можно посмотреть
Преобразование WAV/RAW 2ch в PCM 2ch происходит по алгоритмам из одной библиотеки, что AC3 и DTS после "расщепления" видео и аудио ряда (DEMUX).


Список декодеров устанавливается в файлах /system/etc/media_codecs*.xml.

Стандартная конфигурация для 4.4.2 даже не определяет конкретного для "audio/wav", т.е. используется декодер по усмотрению плеера (?):

После прочтения съесть!

Код:
<MediaCodecs>
    <Decoders>
        <MediaCodec name="OMX.rk.video_decoder.avc" type="video/avc" />
        <MediaCodec name="OMX.rk.video_decoder.m2v" type="video/mpeg2" />
        <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" />
        <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" />
        <MediaCodec name="OMX.rk.video_decoder.h263" type="video/3gpp" />
        <MediaCodec name="OMX.rk.video_decoder.m4v" type="video/mp4v-es" />
        <MediaCodec name="OMX.rk.video_decoder.rv" type="video/vnd.rn-realvideo"/>
        <MediaCodec name="OMX.rk.video_decoder.flv1" type="video/flv"/>
        <MediaCodec name="OMX.rk.video_decoder.vp6" type="video/vp6"/>
        <MediaCodec name="OMX.rk.video_decoder.vc1" type="video/vc1"/>
        <MediaCodec name="OMX.rk.video_decoder.wmv3" type="video/x-ms-wmv"/>
        <MediaCodec name="OMX.rk.video_decoder.mjpeg" type="video/mjpeg"/>
        <MediaCodec name="OMX.rk.video_decoder.hevc" type="video/hevc" />

        <MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" />
        <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" />
        <MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm" />
        <MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw" />
        <MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw" />
        <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" />

    </Decoders>
</MediaCodecs>


Если вы WAV-декодирование не поддерживалось по умолчанию, пришлось бы добавить строку:
<MediaCodec name="OMX.google.raw.decoder" type="audio/raw" />
Для примера, в Андроиде 5.1 RK предлагается более "тонкая настройка":

После прочтения съесть!

Код:
<MediaCodecs>
    <Decoders>
        <MediaCodec name="RkVpuDecoder" type="video/avc" />
        <MediaCodec name="RkVpuDecoder" type="video/flv" />
        <MediaCodec name="RkVpuDecoder" type="video/mpeg2" />
        <MediaCodec name="RkVpuDecoder" type="video/vc1" />
        <MediaCodec name="RkVpuDecoder" type="video/3gpp" />
        <MediaCodec name="RkVpuDecoder" type="video/mp4v-es" />
        <MediaCodec name="RkVpuDecoder" type="video/mjpeg" />
        <MediaCodec name="RkVpuDecoder" type="video/x-vnd.on2.vp8" />
        <MediaCodec name="RkVpuDecoder" type="video/hevc" />
        <MediaCodec name="RkAudioDecoder_WAV" type="audio/wav" />
        <MediaCodec name="FLACDecoder" type="audio/flac" />
    </Decoders>
    <Encoders>
        <MediaCodec name="RkVpuEncoder" type="video/avc" />
    </Encoders>
</MediaCodecs>


Цитата Сообщение от aluver Посмотреть сообщение
Теперь только править Audiotrack.cpp?
Сейчас интересно проверить присвоенное значение
Код:
outputDesc = AudioSystem::gOutputs.valueFor(output); 
...
*samplingRate = outputDesc->samplingRate;
в функции AudioSystem::getSamplingRate из frameworks/av/media/libmedia/AudioSystem.cpp

---------- Сообщение добавлено 03.01.2016 в 00:56 ----------

Цитата Сообщение от linelect Посмотреть сообщение
Возник вопрос: как подцепить HiFiMeDIY Sabre U2 к андроид смартфону? Нужно какой то переходник с разъема смартфона с выходом USB? Или какой то хаб?
Для обычного смартфона буде достаточно обычного USB OTG кабеля
Нажмите на изображение для увеличения
Название: usb-otg-cable1.jpg
Просмотров: 0
Размер:	45.4 Кб
ID:	923564


---------- Сообщение добавлено 03.01.2016 в 01:15 ----------

Цитата Сообщение от HoSStiA Посмотреть сообщение
Сейчас интересно проверить присвоенное значение
Код:
outputDesc = AudioSystem::gOutputs.valueFor(output);
...
*samplingRate = outputDesc->samplingRate;
в функции AudioSystem::getSamplingRate из frameworks/av/media/libmedia/AudioSystem.cpp
И понять, почему происходит свистопляска между передаваемым из AudioTrack и назначаемым значениями в этой функции:

После прочтения съесть!

I/RkAudioPlayer( 134): mAudioSink->open in mSampleRate = 48000 channels = 2
I/RkAudioPlayer( 134): audio mode: 0
I/AudioSystem( 134): getOutputSamplingRate() reading from output desc
I/AudioSystem( 134): getSamplingRate() streamType 3, output 2, sampling rate 44100
I/AudioTrack( 134): set() streamType 3 frameCount 4458 flags 0000 channelMask 3 sampleRate 48000 format 1
I/AudioSystem( 134): getOutputSamplingRate() reading from output desc
I/AudioSystem( 134): getSamplingRate() streamType 3, output 2, sampling rate 44100
I/AudioSystem( 134): getOutputSamplingRate() reading from output desc
I/AudioSystem( 134): getSamplingRate() streamType 3, output 2, sampling rate 44100
D/FFplayer( 134): start ok
E/DecodeAudio( 134): mStream->codec->channels = 2 mStream->codec->sample_rate = 48000