Dieser Beitrag hat mir mein damaliges Vorhaben wieder in Erinnerung gerufen und ich möchte mich nun damit etwas tiefergehender beschäftigen.
Ziel ist es die X-Modeline über xrandr umzuschalten auf eine Modeline mit entsprechender Framerate zum abgespielten Stream. Die Auflösung könnte man bei Bedarf natürlich auch mit schalten lassen (bei VDPAU aber nur progressiv, interlaced Ausgabe ist dort ja nicht möglich).
Für das Modeswitching ansich kann der alte Patch von durchflieger als Vorlage genutzt werden. Dieser ist hier zu finden [patch] SDTV/HDTV video mode switching für das vdr-xinliboutput-plugin
Er läuft zwar zur Zeit nicht mit den aktuelleren xineliboutput-Versionen, das sollte sich aber anpassen lassen.
Mein Problem dabei ist aber auszulesen welche Framerate der zur Zeit wiedergegebene Stream besitzt.
Da ich mich im xine selbst aber nicht so auskenne dieser Hilferuf an unsere xine Experten hier.
Ich bräuchte ein paar Tips wie man die Framerate von xine bekommen kann.
Mein erster Versuch war es das über xine_get_stream_info auszuelesen.
Dazu habe ich in der xine_frontend.c in der Funktion fe_frame_output_cb folgende zeilen eingefügt.
uint32_t frame_duration = xine_get_stream_info (this->stream, XINE_STREAM_INFO_FRAME_DURATION);
printf ("frame duration: %d\n", frame_duration);
Die Ausgabe davon ist aber leider 0. Wo sollte den dieser Wert gesetzt werden? Macht dies das Demux-Plugin, das Decoder-Plugin, das Output-Plugin oder etwas komplett anderes?
Komme ich darüber überhaupt weiter?
Gibt es evtl. eine andere Funktion die mir diese Information liefert?