RK3399 HDMI 和 rk809 codec 音频同时输出,部分应用场景需要同时让hdmi和codec都有声音。可以按以下的方法进行修改:
diff --git a/tinyalsa_hal/audio_hw.c b/tinyalsa_hal/audio_hw.c
index 3e183e0..2e0b765 100644
--- a/tinyalsa_hal/audio_hw.c
+++ b/tinyalsa_hal/audio_hw.c
@@ -987,8 +987,8 @@ static int start_output_stream(struct stream_out *out)
#endif
route_pcm_card_open(adev->dev_out[SND_OUT_SOUND_CARD_SPEAKER].card, getRouteFromDevice(out->device));
- if (out->device & AUDIO_DEVICE_OUT_AUX_DIGITAL) {
- if (true) {
+ //if (out->device & AUDIO_DEVICE_OUT_AUX_DIGITAL) {
+ // if (true) {
#ifdef BOX_HAL
#ifdef USE_DRM
int ret = 0;
@@ -1014,15 +1014,15 @@ static int start_output_stream(struct stream_out *out)
} else {
ALOGD("%s: the number of HDMI is invalid,please check",__FUNCTION__);
}
- } else {
- ALOGD("The current HDMI is DVI mode");
- out->device |= AUDIO_DEVICE_OUT_SPEAKER;
- }
- }
-
- if (out->device & (AUDIO_DEVICE_OUT_SPEAKER |
- AUDIO_DEVICE_OUT_WIRED_HEADSET |
- AUDIO_DEVICE_OUT_WIRED_HEADPHONE)) {
+ // } else {
+ // ALOGD("The current HDMI is DVI mode");
+ // out->device |= AUDIO_DEVICE_OUT_SPEAKER;
+ // }
+ //}
+
+ //if (out->device & (AUDIO_DEVICE_OUT_SPEAKER |
+ // AUDIO_DEVICE_OUT_WIRED_HEADSET |
+ // AUDIO_DEVICE_OUT_WIRED_HEADPHONE)) {
card = adev->dev_out[SND_OUT_SOUND_CARD_SPEAKER].card;
device = adev->dev_out[SND_OUT_SOUND_CARD_SPEAKER].device;
if(card != (int)SND_OUT_SOUND_CARD_UNKNOWN) {
@@ -1036,7 +1036,7 @@ static int start_output_stream(struct stream_out *out)
}
}
- }
+ //}
if (out->device & AUDIO_DEVICE_OUT_SPDIF) {
card = adev->dev_out[SND_OUT_SOUND_CARD_SPDIF].card;