Skip to content

Commit 8b14c5c

Browse files
committed
修改usb声卡,window配合驱动解决看电影声音延迟
1 parent 1e0b8c2 commit 8b14c5c

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

apps/player/audiousb.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ typedef void* (*PTHREAD_START_ROUTINE)(void*);
1717
#define logi(...)
1818
#endif
1919

20+
int gBytesPerSec = 0;
21+
2022
void openOrCloseWm8740Mute(bool enable);
2123
void startCloseCodecMute();
2224
int gRun = 1;
@@ -252,6 +254,11 @@ void startCloseCodecMute();
252254
return (mOut == mIn);
253255
}
254256

257+
unsigned int RingBuffer::getDataLen()
258+
{
259+
return mIn - mOut;
260+
}
261+
255262
#define USB_FUNCTION_PATH "/sys/class/android_usb/android0/functions"
256263
#define USB_STATE_PATH "/sys/class/android_usb/android0/state"
257264
#define USB_FUNCTION_HIFI "hifi\n"
@@ -485,7 +492,7 @@ void sendAudioMsg(int rate,int bit){
485492
int readlen;
486493
unsigned char buffer[512];
487494

488-
log_i("USBHiFi::USBHiFiReading");
495+
log_i("--->USBHiFi::USBHiFiReading");
489496

490497

491498
while(1)
@@ -500,6 +507,12 @@ void sendAudioMsg(int rate,int bit){
500507
{
501508
gReadingCount += readlen;
502509
WriteRingBuffer(buffer, readlen);
510+
511+
//如果buffer 的数据长于100ms 则睡50ms
512+
if (gBytesPerSec && gHiFiRing.getDataLen() > gBytesPerSec / 10)
513+
{
514+
usleep(1000 * 50);
515+
}
503516
}
504517
}
505518
else
@@ -675,6 +688,8 @@ void writePcm(unsigned char* buf,int size){
675688
continue;
676689
}
677690
lockWake(true);
691+
log_i("Channels=%d,SamplingRate=%d,BitPerSample=%d",gHiFiHeader.mChannels,gHiFiHeader.mSamplingRate,gHiFiHeader.mBitPerSample);
692+
gBytesPerSec = gHiFiHeader.mSamplingRate * gHiFiHeader.mBitPerSample / 8 * gHiFiHeader.mChannels;
678693

679694
while(1)
680695
{
@@ -696,6 +711,8 @@ void writePcm(unsigned char* buf,int size){
696711
}
697712
lockWake(false);
698713
hifi_pcm_close(mHiFiOut);
714+
715+
gBytesPerSec = 0;
699716
mHiFiOut = NULL;
700717
}
701718

0 commit comments

Comments
 (0)