So I'm having this weird buffering problem.

Here is the prequel to destruction:

I'm starting streaming playback with my symbian phone, example from my own 
server.

Initial Buffering goes OK playback starts, because of configuration this 
happens almost instantly. (This wont happen if there is enough bandwidth, ex 
wlan in use)

Anyways audio is saying that it is going to underflow, helix will start 
accelerated event delivery and sets REBUFFER_WARNING on.

- Eventually CHXAudioSession::GoingToUnderflow will return TRUE because 
nBlocksRemaining will be less than m_ulMinBlocksTobeQueuedAtStart.
- It stops accelerated event delivery. 
- HxFeedbackbufferControl Changes state to Rebuffering
- REBUFFER_REQUIRED is set to the rebufferstatus.
- AudioRenderer says StartRebuffering.

It will buffer both audio and video buffers 100% (GetPercentDone returns 100)

Now engine should change state back to play and resumeaudio, however something 
goes wrong. 
Playback is never resumed, There will be no other messages from AudioRenderer 
(ex. EndBuffering etc), There will never be 
HXFeedbackBufferControl::OnBufferingDone() , it will never set m_rebufferStatus 
back to REBUFFER_NONE.

Piece of log:

[16:55:31.282] xti1:MCU_ASCII_PRINTF; channel:0xE0; 
msg:TRAN¿565155¿0512¿HXSource::IsRebufferDone() called, m_rebufferStatus = 2| 
(REBUFFER_REQUIRED)
[16:55:31.282] xti1:MCU_ASCII_PRINTF; channel:0xE0; msg:TRAN¿565156¿0512¿Check 
that streams are done with rebuffering, stream 0 status: m_unNeeded (0) 
m_unAvailable (0)| (Video)
[16:55:31.282] xti1:MCU_ASCII_PRINTF; channel:0xE0; msg:TRAN¿565156¿0512¿Check 
that streams are done with rebuffering, stream 1 status: m_unNeeded (1) 
m_unAvailable (0)| (Audio)
[16:55:31.282] xti1:MCU_ASCII_PRINTF; channel:0xE0; 
msg:BUFF¿565157¿0512¿HXNetSource::IsRebufferDone = FALSE
[16:55:31.297] xti1:MCU_ASCII_PRINTF; channel:0xE0; 
msg:BUFF¿565158¿0512¿HXNetSource::GetStatus, status at exit: m_rebufferStatus 
2, statusCode 4, uStatusCode 2, m_uLastStatusCode 2|
[16:55:31.360] xti1:MCU_ASCII_PRINTF; channel:0xE0; 
msg:CORE¿565236¿0512¿HXBufferingState[video/MP4V-ES-0x16aa058]::GetPercentDone()
 return 100|
[16:55:31.375] xti1:MCU_ASCII_PRINTF; channel:0xE0; 
msg:CORE¿565237¿0512¿HXBufferingState[audio/AMR-WB-0x16aa360]::GetPercentDone() 
return 100|

It loops above until timeout.

Any idea what could cause the problem? I Think that for some reason audio side 
is not reporting that buffering is complete, and thats why engine stays in 
indefinite buffering mode.. 
What could cause above? but i'm 100% sure that what ever it is, it is because 
of audio side. 

Best Regards,
Jussi



_______________________________________________
Audio-dev mailing list
Audio-dev@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/audio-dev

Reply via email to