24p in XBMC met Nvidia ION.

Inleiding.

De meeste 1080p mkv’s hebben een refreshrate van 24p, maar XBMC stuurt standaard 1080p60 naar Cellie’s Full HDTV als er 24p content word afgespeeld.
De ION chipset en de TV zijn allebei in staat 24p weer te geven, maar toch is de deze refreshrate niet te kiezen in de instellingen van XBMC. Daar gaan we wat aan doen.

Let op, 24p werkt alleen als je een TV hebt die ook 24p content aan kan. Het voorbeeld gaat uit van een Samsung LE40A565 TV verbonden via hdmi met een PC met een POV ION moederbord met XBMC 9.11 Live op de harde schijf geinstalleerd.

Backup.

We gaan de geldige resoluties van de monitor door X window server laten opslaan en dan deze gegevens in /etc/X11/xorg.conf toevoegen. Dit is het hoofd configuratie bestand van X.
Daarom maken we als eerste een backup van /etc/X11/xorg.conf.

cellie@XBMCLive:~$ cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Resoluties loggen.

Voeg daarna het volgende toe aan het bestand /etc/X11/xorg.conf in de “Screen” sectie om de multi-monitor support uit te schakelen:

Section "Screen"
    Option         "DynamicTwinView" "false"
    ...
EndSection

Dan stoppen we XBMC en daarmee(?) de X server.
Daarna starten we X weer op en sturen de uitvoer naar ons eigen logbestand.

cellie@XBMCLive:~$ sudo stop xbmc-live
cellie@XBMCLive:~$ sudo X -verbose 6 > ~/xlog.txt 2>&1

Stop X na ongeveer 5 seconden met ‘CTRL+c’.

HSync/VRefresh.

Dan zoeken we in het bestand xlog.txt naar de HSync en VRefresh van de TV:

(--) Jan 31 13:12:47 NVIDIA(0): Valid HSync Range            : 26.0 kHz - 68.0 kHz
(--) Jan 31 13:12:47 NVIDIA(0): Valid VRefresh Range         : 23 Hz - 61 Hz

Dit gebruiken we in xorg.conf. Vul de waarden in die je op je eigen HTPC ziet! Gebruik alleen de waarden uit het voorbeeld als je ook een Samsung LE40A565 TV hebt, anders loop je grote kans zonder beeld te komen zitten.

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Samsung"
    ModelName      "LE40A565"
    HorizSync       26.0 - 68.0
    VertRefresh     23.0 - 61.0
    ...
EndSection

ModeLines toevoegen.

Daarna zoeken we in xlog.txt de juiste resolutie op. De 24p resolutie op een Samsung LE40A565 ziet er als volgt uit:

(II) Jan 31 13:12:47 NVIDIA(0):   Validating Mode "1920x1080":
(II) Jan 31 13:12:47 NVIDIA(0):     1920 x 1080 @ 24 Hz
(II) Jan 31 13:12:47 NVIDIA(0):     For use as DFP backend.
(II) Jan 31 13:12:47 NVIDIA(0):     Mode Source: EDID
(II) Jan 31 13:12:47 NVIDIA(0):       Pixel Clock      : 74.16 MHz
(II) Jan 31 13:12:47 NVIDIA(0):       HRes, HSyncStart : 1920, 2558
(II) Jan 31 13:12:47 NVIDIA(0):       HSyncEnd, HTotal : 2602, 2750
(II) Jan 31 13:12:47 NVIDIA(0):       VRes, VSyncStart : 1080, 1084
(II) Jan 31 13:12:47 NVIDIA(0):       VSyncEnd, VTotal : 1089, 1125
(II) Jan 31 13:12:47 NVIDIA(0):       H/V Polarity     : +/+
(II) Jan 31 13:12:47 NVIDIA(0):     Mode is valid.

Let er op dat de mode die je toevoegt valid is!

Met deze gegevens kunnen we nu een Modeline in de sectie “Monitor” maken.
De getallen vanaf PixelClock tot en met VTotal achter de naam van de resolutie invullen, gescheiden door een spatie. Daarachter nog de horizontale en verticale synchronisatie.

Section "Monitor"
    ...
    ModeLine "1920x1080@24p" 74.16 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync
    ModeLine "1920x1080@60p" 148.35 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
    ModeLine "1920x1080@50p" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
EndSection

Resoluties beschikbaar maken.

Nu alleen nog de resoluties beschikbaar maken in de “Screen” sectie, onder  SubSection "Display". Gebruik de exacte naam van de ModeLine.

Section "Screen"
    ...
    SubSection     "Display"
        Depth       24
        Modes       "1920x1080@24p" "1920x1080@50p" "1920x1080@60p"
        ...
    EndSubSection
EndSection

Zet de composite uitgang uit.

Als extra schakelen we nog de composite video uit, dit _zou_ het renderen ten goede komen. We voegen een extra sectie toe aan xorg.conf:

Section "Extensions"
    Option         "Composite" "Disable"
EndSection

Sla /etc/X11/xorg.conf op.
Nu kun je XBMC weer opstarten met de volgende commando:

cellie@XBMCLive:~$ sudo /etc/init.d/xbmc-live restart

Nu zou XMBC 1080p op 24p, 50p en 60p moeten kunnen uitsturen.

Met de ‘Z’ toets kun je in XBMC de refreshrate weergeven.

Deze thread op het AVS forum en deze op het XBMC forum zijn onder andere gebruikt als uitgangspunt.
http://www.xbmcfreak.nl/xbmc-artikelen/xbmc-en-auto-refresh-rate/

4 thoughts on “24p in XBMC met Nvidia ION.

  1. Inderdaad, de TV geeft nog steeds 1080p60Hz aan. Hmm, daar moet nog wat gedebugged. De judder is wel weg. Cellie duikt erin, want snapt het niet. Will be back.

  2. Het artikel is aangepast.
    Cellie ziet nu 24p in het info menu van de TV. De judder is ook nog steeds weg. Zelfs het geluid loopt synchroon.

  3. Cellie, wat heb je gewijzigd dat het nu wel 24p ziet op de tv als je op de info knop van de AB van de TV drukt? Ik heb de 32C530 van samsung en die zou ook 24p moeten kunnen displayen, maar ik blijf “1920×1080@60hz” zien als ik de info opvraag op m’n samsung 🙁

Comments are closed.