summaryrefslogtreecommitdiff
authorzhenggang.luo <zhenggang.luo@amlogic.com>2014-08-01 09:19:30 (GMT)
committer tao.dong <tao.dong@amlogic.com>2014-08-07 06:47:28 (GMT)
commit9884a76287c8a653d5941c5bca58a652ae5705ac (patch)
treeb6b142a0f9d1b0428dda667f008c58e8835b7389
parent4bd0110c36824cdc60c0646609d63fd5aa430f77 (diff)
downloadaudio-9884a76287c8a653d5941c5bca58a652ae5705ac.zip
audio-9884a76287c8a653d5941c5bca58a652ae5705ac.tar.gz
audio-9884a76287c8a653d5941c5bca58a652ae5705ac.tar.bz2
PD #94489-1: DTSHD_96/88K PCM output using Directoutput
Change-Id: I4c2f71afbd5288d91386e2c7d2ccec7d5c58fe27
Diffstat
-rwxr-xr-xhdmi_audio_hw.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/hdmi_audio_hw.c b/hdmi_audio_hw.c
index 89ac1a4..58518e9 100755
--- a/hdmi_audio_hw.c
+++ b/hdmi_audio_hw.c
@@ -463,9 +463,11 @@ static int start_output_stream(struct aml_stream_out *out)
return -1;
}else{
struct aml_stream_out *pLastStreamOut=(struct aml_stream_out *)HdmiStreamState.pLastStreamOut;
- if(pLastStreamOut!=NULL && pLastStreamOut!=out && (codec_type||out->config.channels==8))//corruent output mode:digital_raw
+ if(pLastStreamOut!=NULL && pLastStreamOut!=out &&
+ (codec_type || out->config.channels==8 || (out->config.channels==2 && out->config.rate>48000 && codec_type==0))
+ )//corruent output mode:digital_raw
{
- ALOGI("[%s %d]Force standy LastStream/%p\n",pLastStreamOut);
+ ALOGI("[%s %d]Force standy LastStream/%p\n",__FUNCTION__,__LINE__,pLastStreamOut);
//------------------------------------------------------------
//do_output_standby(HdmiStreamState.pLastStreamOut);
struct aml_audio_device *adev_local =pLastStreamOut->dev;
@@ -493,6 +495,12 @@ static int start_output_stream(struct aml_stream_out *out)
{
HdmiStreamState.N8ch_out_flag=1;
}
+ if(out->config.channels==2 && out->config.rate>48000 && codec_type==0)
+ {
+ ALOGI("[%s %d]HD-PCM(Fs/%d>48000) use DirectOuput\n",__FUNCTION__,__LINE__,out->config.rate);
+ HdmiStreamState.LastStreamDirectFlag=1;
+ }
+
if(out->config.rate!=DEFAULT_OUT_SAMPLING_RATE){