Auto refresh rate kicks in late and prevents smooth Live TV playback
FernetMenta
Team-XBMC Member Posts: 1,627 Joined: Jul 2010 Reputation: 34 Location: Munich |
2012-09-21 13:42
Post: #11
You need set display variable: export DISPLAY=:0
|
| find quote |
ChristianG
Junior Member Posts: 10 Joined: Sep 2012 Reputation: 0 |
2012-09-21 17:19
Post: #12
Okay, that worked. Here's the output:
cgrimm@server:~$ /usr/lib/xbmc/xbmc-xrandr <screen id="0" minimum_w="320" minimum_h="175" current_w="1920" current_h="1080" maximum_w="1920" maximum_h="1080"> <output name="default" connected="true" w="1920" h="1080" x="0" y="0" wmm="0" hmm="0"> <mode id="0x164" name="1920x1080" w="1920" h="1080" hz="50.00000" current="true" preferred="false"/> <mode id="0x165" name="1920x1080" w="1920" h="1080" hz="60.00000" current="false" preferred="false"/> <mode id="0x166" name="1920x1080" w="1920" h="1080" hz="24.00000" current="false" preferred="false"/> <mode id="0x167" name="1680x1050" w="1680" h="1050" hz="60.00000" current="false" preferred="false"/> <mode id="0x168" name="1440x900" w="1440" h="900" hz="60.00000" current="false" preferred="false"/> <mode id="0x169" name="1400x1050" w="1400" h="1050" hz="70.00000" current="false" preferred="false"/> <mode id="0x16a" name="1400x1050" w="1400" h="1050" hz="60.00000" current="false" preferred="false"/> <mode id="0x16b" name="1360x768" w="1360" h="768" hz="60.00000" current="false" preferred="false"/> <mode id="0x16c" name="1280x1024" w="1280" h="1024" hz="75.00000" current="false" preferred="false"/> <mode id="0x16d" name="1280x1024" w="1280" h="1024" hz="60.00000" current="false" preferred="false"/> <mode id="0x16e" name="1280x960" w="1280" h="960" hz="85.00000" current="false" preferred="false"/> <mode id="0x16f" name="1280x960" w="1280" h="960" hz="60.00000" current="false" preferred="false"/> <mode id="0x170" name="1280x720" w="1280" h="720" hz="60.00000" current="false" preferred="false"/> <mode id="0x171" name="1280x720" w="1280" h="720" hz="50.00000" current="false" preferred="false"/> <mode id="0x172" name="1152x864" w="1152" h="864" hz="100.00000" current="false" preferred="false"/> <mode id="0x173" name="1152x864" w="1152" h="864" hz="85.00000" current="false" preferred="false"/> <mode id="0x174" name="1152x864" w="1152" h="864" hz="75.00000" current="false" preferred="false"/> <mode id="0x175" name="1152x864" w="1152" h="864" hz="70.00000" current="false" preferred="false"/> <mode id="0x176" name="1152x864" w="1152" h="864" hz="60.00000" current="false" preferred="false"/> <mode id="0x177" name="1024x768" w="1024" h="768" hz="85.00000" current="false" preferred="false"/> <mode id="0x178" name="1024x768" w="1024" h="768" hz="87.00000" current="false" preferred="false"/> <mode id="0x179" name="1024x768" w="1024" h="768" hz="75.00000" current="false" preferred="false"/> <mode id="0x17a" name="1024x768" w="1024" h="768" hz="70.00000" current="false" preferred="false"/> <mode id="0x17b" name="1024x768" w="1024" h="768" hz="60.00000" current="false" preferred="false"/> <mode id="0x17c" name="960x600" w="960" h="600" hz="60.00000" current="false" preferred="false"/> <mode id="0x17d" name="960x540" w="960" h="540" hz="60.00000" current="false" preferred="false"/> <mode id="0x17e" name="840x525" w="840" h="525" hz="85.00000" current="false" preferred="false"/> <mode id="0x17f" name="840x525" w="840" h="525" hz="75.00000" current="false" preferred="false"/> <mode id="0x180" name="840x525" w="840" h="525" hz="70.00000" current="false" preferred="false"/> <mode id="0x181" name="840x525" w="840" h="525" hz="60.00000" current="false" preferred="false"/> <mode id="0x182" name="832x624" w="832" h="624" hz="75.00000" current="false" preferred="false"/> <mode id="0x183" name="800x600" w="800" h="600" hz="85.00000" current="false" preferred="false"/> <mode id="0x184" name="800x600" w="800" h="600" hz="75.00000" current="false" preferred="false"/> <mode id="0x185" name="800x600" w="800" h="600" hz="72.00000" current="false" preferred="false"/> <mode id="0x186" name="800x600" w="800" h="600" hz="60.00000" current="false" preferred="false"/> <mode id="0x187" name="800x600" w="800" h="600" hz="56.00000" current="false" preferred="false"/> <mode id="0x188" name="720x576" w="720" h="576" hz="50.00000" current="false" preferred="false"/> <mode id="0x189" name="720x480" w="720" h="480" hz="60.00000" current="false" preferred="false"/> <mode id="0x18a" name="720x450" w="720" h="450" hz="60.00000" current="false" preferred="false"/> <mode id="0x18b" name="720x400" w="720" h="400" hz="85.00000" current="false" preferred="false"/> <mode id="0x18c" name="700x525" w="700" h="525" hz="75.00000" current="false" preferred="false"/> <mode id="0x18d" name="700x525" w="700" h="525" hz="60.00000" current="false" preferred="false"/> <mode id="0x18e" name="680x384" w="680" h="384" hz="60.00000" current="false" preferred="false"/> <mode id="0x18f" name="640x480" w="640" h="480" hz="85.00000" current="false" preferred="false"/> <mode id="0x190" name="640x480" w="640" h="480" hz="75.00000" current="false" preferred="false"/> <mode id="0x191" name="640x480" w="640" h="480" hz="73.00000" current="false" preferred="false"/> <mode id="0x192" name="640x480" w="640" h="480" hz="60.00000" current="false" preferred="false"/> <mode id="0x193" name="640x400" w="640" h="400" hz="85.00000" current="false" preferred="false"/> <mode id="0x194" name="640x350" w="640" h="350" hz="85.00000" current="false" preferred="false"/> <mode id="0x195" name="512x384" w="512" h="384" hz="70.00000" current="false" preferred="false"/> <mode id="0x196" name="512x384" w="512" h="384" hz="87.00000" current="false" preferred="false"/> <mode id="0x197" name="512x384" w="512" h="384" hz="60.00000" current="false" preferred="false"/> <mode id="0x198" name="400x300" w="400" h="300" hz="72.00000" current="false" preferred="false"/> <mode id="0x199" name="320x240" w="320" h="240" hz="73.00000" current="false" preferred="false"/> <mode id="0x19a" name="320x240" w="320" h="240" hz="60.00000" current="false" preferred="false"/> <mode id="0x19b" name="320x175" w="320" h="175" hz="85.00000" current="false" preferred="false"/> </output> </screen> |
| find quote |
buzzer
Junior Member Posts: 6 Joined: May 2010 Reputation: 0 |
Same problem here
![]() I have this problem since ~ 1.5 years on "Ubuntu + XBMC" and openelec. And disable Auto refresh rate is a real pain in the ass because of 24p blurays |
| find quote |
FernetMenta
Team-XBMC Member Posts: 1,627 Joined: Jul 2010 Reputation: 34 Location: Munich |
2012-09-22 15:37
Post: #14
XBMC uses xrandr to switch refresh rates and xrandr won't do anything if you switch to the same refresh rate. I think the problem is in your setups. NVidia driver uses meta modes and has to sync them with xrandr. I have seen cases where this did not work correctly. You can verify this by setting the mode with xrandr. In the case of ChristianG this would be:
xrandr --output default --mode 0x164 to set it to 50hz. The screen won't go black if your are already on 50Hz and sync has worked. I prefer using xrandr for setting the mode before starting XBMC, modes in the screen section of xorg.conf are interpreted as meta modes by NVIdia driver. @ ChristianG boot your system, use xbmc-xrandr to check your current mode, then use xrandr to switch to the same mode. What do you see? ssh to your box and run xbmc-xrandr when XBMC is running. Then start a TV channel and check for changes in refresh rate. Check again with xbmc-xrandr. |
| find quote |
ChristianG
Junior Member Posts: 10 Joined: Sep 2012 Reputation: 0 |
2012-09-22 17:06
Post: #15
Results:
Step 1) System startup, checking current mode: cgrimm@server:~$ /usr/lib/xbmc/xbmc-xrandr <screen id="0" minimum_w="320" minimum_h="175" current_w="1920" current_h="1080" maximum_w="1920" maximum_h="1080"> <output name="default" connected="true" w="1920" h="1080" x="0" y="0" wmm="0" hmm="0"> <mode id="0x164" name="1920x1080" w="1920" h="1080" hz="50.00000" current="true" preferred="false"/> <mode id="0x165" name="1920x1080" w="1920" h="1080" hz="60.00000" current="false" preferred="false"/> ... </output> </screen> Step 2) Use xrandr to switch to the same mode (while in XBMC main menu): cgrimm@server:~$ /usr/lib/xbmc/xbmc-xrandr --output default --mode 0x164 Effect: None, no black screen. Xrandr seems to do nothing - good so far. Step 3) Start Live TV, switch to a channel and execute xrandr again cgrimm@server:~$ /usr/lib/xbmc/xbmc-xrandr --output default --mode 0x164 Effect: No black screen but the current live tv stream stutters slightly when setting the mode 0x164 again. I executed the same xrandr command multiple times to make sure of this - and yes, xrandr causes the live tv stream to quicky stutter (only visible on scrolling text, it probably wouldn't be notable on a regular tv movie). Step 4) Stop Live TV, go to "System"->"Settings"->"Video"->"Playback" and enable "Adjust display refresh rate to match video" (this option was disabled for all prior steps listed above). After this, I started Live TV again. Effect: After about 5 seconds of watching a Live TV channel the display quickly goes black for a couple of milliseconds. Output of xbmc-xrandr after the black-screen problem occured while still playing the same Live TV channel: cgrimm@server:~$ /usr/lib/xbmc/xbmc-xrandr <screen id="0" minimum_w="320" minimum_h="175" current_w="1920" current_h="1080" maximum_w="1920" maximum_h="1080"> <output name="default" connected="true" w="1920" h="1080" x="0" y="0" wmm="0" hmm="0"> <mode id="0x164" name="1920x1080" w="1920" h="1080" hz="50.00000" current="true" preferred="false"/> <mode id="0x165" name="1920x1080" w="1920" h="1080" hz="60.00000" current="false" preferred="false"/> ... </output> </screen> My personal conclusions: 1) The black screen issue seems to have nothing to do with changing display modes, but it's somehow related to the "Adjust display refresh rate to match video" feature. 2) Executing "xbmc-xrandr --output default --mode 0x1642" makes the Live TV playback stutter for quick moment. I personally think there's also room for improvement. Executing just "xbmc-xrandr" to query the current mode does not lead to a quick stuter. This leads me to the conclusion that "xbmc-xrandr --output default --mode 0x1642" certainly is doing something, even if the same mode is already set. It's not an issue for me right now (I just want to get rid of the black-screen thing) but I wanted to share this information with you - maybe an xbmc developer could optimize this in future releases. |
| find quote |
FernetMenta
Team-XBMC Member Posts: 1,627 Joined: Jul 2010 Reputation: 34 Location: Munich |
2012-09-22 19:01
Post: #16
Quote:Effect: After about 5 seconds of watching a Live TV channel the display quickly goes black for a couple of milliseconds. Now I got it, you are talking about milliseconds ![]() Yep, this is caused by a reconfiguration of renderer after player has calculated the actual fps. PVR streams have no hint for fps set when they start playing, so they default to 25fps which is fine in 50Hz. For interlaced material player will detect 50fps after a short while and reconfigures render. Now that PVR is merged this long known issue gets a higher priority. I will look into it. |
| find quote |
ChristianG
Junior Member Posts: 10 Joined: Sep 2012 Reputation: 0 |
2012-09-22 19:41
Post: #17
Okay, just some more input:
- It doesn't matter if the TV Channel is interlaced or not. I've just tested with 1080i and 720p PAL channels, both are suffering the black-screen issue. Doesn't this fact conflict your theory? Open questions: A) Is there any way to manually configure or override XBMC to NOT reconfigure the renderer for Live TV (and still having "Adjust display refresh rate to match video" enabled)? Is there any configuration for the backend (TVHeadend in my case) for improving the situation? B) I still have stuttering for Live TV sometimes after a channel switch. Any idea how I could solve this? (I can fix it manually by stopping Live TV and restarting playback for the Live TV channel - but I think you would agree this is a non-optimal workaround) Thanks again for your help |
| find quote |
FernetMenta
Team-XBMC Member Posts: 1,627 Joined: Jul 2010 Reputation: 34 Location: Munich |
2012-09-22 20:16
Post: #18
Both 1080i and 720p result into 50 fps. I had this fixed already in a testing branch some time ago.
A) It requires a fix in the XBMC code. B) I guess you should open a new thread for this. Hard to say anything without having more info. |
| find quote |
ChristianG
Junior Member Posts: 10 Joined: Sep 2012 Reputation: 0 |
2012-09-22 20:32
Post: #19
Okay, I think we should close this thread as "unsolved" in this case.
Thank you very much for helping me to isolate the root cause of the problem. I hope there will be a bugfix in the pulse-eight repo soon. By the way: Would you recommend me to switch to another repo? Thanks again! Was glad to have your support :-) Have a great weekend! |
| find quote |



Search
Help