2016-11-07 2 views
0

AndroidはオーディオHALの入力ストリームを開いてすぐに閉じます。 何が欠けているのか理解してください。新しいオーディオHALがNexusプレーヤーと連携していません

背景

これは私が成功したネクサス7にオーディオHALをVLOOPロードして、読んで、それをオーディオ書くことができましたprevious question here で議論ネクサス7タブレット上で動作するように継続しています。現在の問題について

情報:

ブート時に、または内蔵のマイクを接続する上で(setDeviceConnectionStateを呼び出すことによって)私は、入力ストリームがいくつかのパラメータが読み込まれ、開かれ、その後、ストリームinpuit速やかに閉じていることを確認します。

これ以降、Google/YouTubeは自分のHALから音声を読み込むことができません。

11-07 14:05:10.321 277-1263/? E/ATVAudioPolicyManager: setDeviceConnectionState 80000004 1 0 
11-07 14:05:10.321 277-1263/? D/audio_vloop: adev_open_input_stream(): 1546 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_sample_rate(): 1008 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_sample_rate(): samprate: 48000 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_channels(): 1047 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_channels: 0x0000000C 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_format(): 1059 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_format: 0x00000001 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_format(): 1059 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_format: 0x00000001 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_channels(): 1047 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_channels: 0x0000000C 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_buffer_size(): 1035 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_buffer_size: 4800 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_buffer_size(): 1035 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_buffer_size: 4800 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_format(): 1059 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_format: 0x00000001 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_sample_rate(): 1008 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_sample_rate(): samprate: 48000 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_channels(): 1047 
11-07 14:05:10.322 277-1263/? D/audio_vloop: in_get_channels: 0x0000000C 
11-07 14:05:10.323 277-2820/? I/AudioFlinger: AudioFlinger's thread 0xf314f008 ready to run 
11-07 14:05:10.323 277-2820/? D/audio_vloop: in_standby(): 1089 
11-07 14:05:10.323 277-2819/? D/audio_vloop: looper_in_thread(): 218: Entered 
11-07 14:05:10.324 277-2820/? D/audio_vloop: in_standby(): 1089 
11-07 14:05:10.325 277-2820/? D/audio_vloop: in_set_parameters(): 1150: [0] 
11-07 14:05:10.325 277-369/? D/audio_vloop: adev_set_parameters(): [0=;connect=-2147483644] 
11-07 14:05:10.327 277-1263/? D/audio_vloop: adev_close_input_stream(): 1638 
11-07 14:05:10.327 2781-2781/? D/AudioPlayer: ConnectLineIn(): 0 

これらがちょうどと呼ばれていたものを教えてログを追跡している、といくつかのケースでは、私が何を返さ:後

私のトレースログです。 私はこれらのすべての機能の成功をAndroidに返します。 audio_policy.confで

、私はこの追加:

global_configuration { 
    attached_output_devices AUDIO_DEVICE_OUT_SPEAKER 
    default_output_device AUDIO_DEVICE_OUT_SPEAKER 
    attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX 
} 

vloop { 
    inputs { 
     vloop { 
     sampling_rates 48000 
     channel_masks AUDIO_CHANNEL_IN_STEREO 
     formats AUDIO_FORMAT_PCM_16_BIT 
     devices AUDIO_DEVICE_IN_BUILTIN_MIC 
     } 
    } 
    outputs { 
     vloop { 
     sampling_rates 48000 
     channel_masks AUDIO_CHANNEL_OUT_STEREO 
     formats AUDIO_FORMAT_PCM_16_BIT 
     devices AUDIO_DEVICE_OUT_LINE 
     } 
    } 
    } 

答えて

0

を私はそう主要容疑者は、オーディオ・ポリシー・マネージャー(APM)であった、これは私のコード/ confに外の問題に気づきました。

私は徹底的にAPMコードを調べたところ、珍しい問題は見当たりませんでした。実際にはUSE_CUSTOM_AUDIO_POLICYというフラグがfuguフォルダのdevice.mkに混乱していることに気付きました。このフラグはデフォルトAPMを無効にし、Qualcomm APMを有効にします。 (トラフにソースを検索)

は、ふぐのAPMは、クアルコムAPMではありません実現するためにいくつかの時間がかかったが、それは問題を解決するには、ここATVAudioPolicyManager.cppを修正/device/asus/fugu/libaudio/

に座っています。次のように

変更は次のとおりです。関数内

audio_devices_t ATVAudioPolicyManager::getDeviceForInputSource(audio_source_t inputSource)

条件に以下を追加します。

else if (availableDeviceTypes & AUDIO_DEVICE_IN_BUILTIN_MIC) { 
      ALOGV("Use Builtin mic input"); 
      device = AUDIO_DEVICE_IN_BUILTIN_MIC; 
} 
関連する問題