2013-08-21, 23:51
(2013-08-21, 23:18)popcornmix Wrote: I took a guess, that if the regression is in omxplayer code, then bisecting the frodo_rbp_backports tree should find it.
And as all omxplayer commits are consecutive there, the bisect will be quicker than on gotham.
Using a file with an unused TrueHD audio track, the frodo end of frodo_rbp_backports is buffering less than the newest end.
So I should be able to track this down.
Found it. We update buffering stats once per packet received. Typically there are 24 of these for video, and slightly more for audio per second.
The stats info involves querying the gpu for the current media time. Talking to the gpu is a little expensive (but fine for ~100 call per second).
However TrueHD audio generates thousands of packets per second. We discard them after receiving them, but they still trigger the media time request to gpu.
Thousands of gpu requests per second is enough to slow things down.
I need to add a rate limiter so gpu is only queried a maximum of, say, 50 or 100 times per second.