"Still Frame" audio issue resolved by hacking out 2 lines of code
#1
Guys

I have had a major problem over the last few months streaming live TV from a VUPlus box using the excellent VU+ client.

The issue is described in more detail here - in summary I was getting stuttering/broken audio on certain channels whilst others were fine - though critically, older versions of OpenElec (pre mid Jan 2013) were fine - I was fortunate enough to have kept an old version - any version later than Jan was virtually unusable.

Using VLC also showed stuttering audio and a debug on that app indicated there were PTS issues on the stream -XBMC didn't mention PTS and was pumping out the following errors constantly;

09:31:57 T:2702177376 INFO: COMXPlayerVideo - Stillframe detected, switching to forced 25.000000 fps
09:31:57 T:3042779136 DEBUG: PrepareNextRender no buffer, out: 0, current: 0, display: 4
09:31:58 T:2620388448 DEBUG: Previous line repeats 5 times.
09:31:58 T:2620388448 DEBUG: video stream stalled. start buffering
09:31:58 T:2620388448 DEBUG: COMXPlayer::SetCaching - caching state 2
09:31:58 T:2620388448 DEBUG: OMXClock::OMXSetSpeed 0 buffering 0
09:31:58 T:2620388448 DEBUG: COMXPlayer::HandleMessages - player started 2
09:31:58 T:2620388448 DEBUG: set caching from pvr to done. audio (1) = 17. video (1) = 6
09:31:58 T:2620388448 DEBUG: COMXPlayer::SetCaching - caching state 0
09:31:58 T:2620388448 DEBUG: OMXClock::OMXSetSpeed 1 buffering 0

The "fix" (workaround) was for me to comment out the following two lines of code (in bold) from OMXVideoPlayer.cpp;

//Okey, start rendering at stream fps now instead, we are likely in a stillframe
if( !m_stalled )
{
if(m_started)
CLog::Log(LOGINFO, "COMXPlayerVideo - Stillframe detected, switching to forced %f fps", m_fFrameRate);
m_stalled = true;
pts += frametime*4;

}

The previously unwatchable streams are now working perfectly... It certainly looks like I have a unique issue perhaps related to the combo of kit I'm using (VUPlus Solo2 running VIX or Blackhole, OpenElec running on RPi's (both 256 and 512)) - but the fact the stream is perfect without the above lines seems to indicate XBMC isn't faultless.

I'm assuming this is a fairly niche bug (I've trawled the forums for months looking for someone who is reporting the same issue) so I am not necessarily expecting this to be fixed (bigger fish etc) - I'm OK to keep applying my bespoke patch... but I'm more than happy to help troubleshoot this further if one of the XBMC gurus fancies getting involved.

Cheers

Sz
Reply
#2
You are right, the stillframe code is copied from dvdplayer and doesn't really make sense with omxplayer.
In normal circumstances that code path isn't excercised, but your setup obviously triggers it.

My testing branch has removed this code:
https://github.com/popcornmix/xbmc/commi...66afa13415

and there is a build here you can try:
http://forum.xbmc.org/showthread.php?tid...pid1372779
Reply
#3
(2013-03-21, 17:46)popcornmix Wrote: You are right, the stillframe code is copied from dvdplayer and doesn't really make sense with omxplayer.
In normal circumstances that code path isn't excercised, but your setup obviously triggers it.

My testing branch has removed this code:
https://github.com/popcornmix/xbmc/commi...66afa13415

and there is a build here you can try:
http://forum.xbmc.org/showthread.php?tid...pid1372779

Just wrapping up this thread - thanks very much, your release does indeed fix this

Much appreciated

Sz
Reply

Logout Mark Read Team Forum Stats Members Help
"Still Frame" audio issue resolved by hacking out 2 lines of code0