Hallo,
kann ich denn mit dem SPDIF des Mini-Din direkt an den Receiver oder muss ich das Signal erst nach optisch wandeln (wegen der Pegel)?
Danke und Gruß,
beta
Hallo,
kann ich denn mit dem SPDIF des Mini-Din direkt an den Receiver oder muss ich das Signal erst nach optisch wandeln (wegen der Pegel)?
Danke und Gruß,
beta
Danke Euch für die Hilfe. Bild geht inzwischen. Allerdings verschwindet Audio nach 1-2 Sekunden. Gibts weitere Ideen.
Vielen Dank und herzliche Grüße,
beta
Hallo zusammen,
habe multiproto und letzten wrapper patch, hvr4000 patches ebenso.
Beim Umschalten auf Astra HD kommt immer Channel not available. DVB-S1 Sender funktionieren im xine. Jemand eine Idee?
Danke und Gruß,
beta
@giga_san: Schön, dass Du mitliest. Ich habe noch eine Idee, aber bevor ich das versuche möchte ich wissen, ob Du es schon probiert hast.
1.) Der Intel-Treiber hat ein Backend für den Focus-Chip, der diesen offensichtlich auf auf PAL-Auflösung setzen kann (oder ist hier schon mein erster gedanklicher Fehler?). Wenn das funktioniert, kann man die Register des Focus doch auslesen und genau so zurückschreiben. Ich könnte hierzu meinen Source anpassen, so, dass er alles ausliest, speichert und auch z.B. aus einer Datei wieder zurückschreiben kann. Dieses Setting könnte man dann mit dem Framebuffer-Treiber laden. Ich befürchte aber, dass dann die Clock der GPU fehlt, da der Focus vermutlich mit der GPU-clock läuft.
2.) Der focus intel backend trieber ist nicht gestrippt. Hast Du schonmal versucht, diesen zu disassemblieren? Evtl. gibts da so was wie init_focus oder init_PAL und man kommt an die Registersettings ran. "nm" sieht da schonmal ganz vielbersprechend aus. Ich möchte nur die Arbeit nicht doppelt machen.
Das ganze macht eben dann keinen Sinn, wenn der Focus Intel Treiber nur mit clock der GPU arbeitet und nicht seine eigene nutzt.
Gruß,
beta
Maniac
Dann bekomme ich ja doch noch Unterstützung. Wenn ich das richtig verstehe, dann gibt es 2 Modi. Einen, der den Takt von der GPU bekommt und einen, der seinen Takt selbst generieren kann. Mit dem 2. Modus sollte es unabhängig von der GraKa funktionieren. Die Frage, die sich mir immer noch stellt ist die: Warum ist das Bild zerschossen, wenn ich einen ausgelesenen Wert zurückschreibe? Spricht dafür, dass Register in einer bestimmten Reihenfolge beschrieben werden müssen. 2. Warum ändert sich das Bild jedesmal, wenn ich mein Programm mehrmals hintereinander aufrufe. Kann das ein Timing-Problem auf dem I2C-Bus sein, hilft es also, Wait states einzufügen?
Gruß,
beta
mase:
Hast Du vorher ein modprobe i2c-dev gemacht? Ohne tut sich nichts. Ich habe es nicht mit dem IEGD zusammen versucht, weil der ja einen backend-Treiber für den fs454 hat.
@giga_san, wenn Du mitliest:
Warum ändert sich der flackernde Bildschirm, wenn ich mehrfach hintereinander dasselbe in dieselben Register schreibe?
Gruß,
beta
kiwix: Alles Liebe zum Geburtstag Deiner Frau. Ich denke auch, dass das wichtiger ist und Priorität verdient!
Was mir noch aufgefallen ist: Wenn ich das Programm mehrmals aufrufe, ändern sich die gelben Flecken. Warum?
Das deckt sich mit der Aussage von Pilotfisch, der ja auch nur den vorhandenen Wert nochmal geschrieben hat.
Gruß,
beta
kiwix:
Wenn man direkt in die Register des FS454 schreibt, sollte es eigentlich egal sein, welchen Treiber man für den 810 nimmt. Mit dem intel-Treiber gibt es das Problem der hohen Prozessorlast, so dass mit offenem OSD das Bild ruckelt. Daher würde ich lieber auf den Intel-Treiber verzichten und einen framebuffer-Treiber nehmen.
Im Prinzip ist es auch egal, wie man die Werte in den Focus schreibt (i2cset geht auch). Wichtig ist, alle Register zu erwischen, die entscheidend sind. Keine Ahnung, ob das mit oben angehängten Code möglich ist, ich werde wahrscheinlich in ein paar Tagen zum Testen kommen. Aber ich muss ja nicht der einzige sein
-> Update: Im Anhang gibts eine Version, die bei mir zumindest compiliert. Ich kann es aber leider nicht testen.
Gruß,
beta
Hallo det,
das wäre die leichteste Übung. Ich kann im Moment leider nicht testen (nicht einmal, ob das Programm compiliert). Wenn wir es erst schaffen, den Focus auf PAL zu setzen ist die Implementierung in ein Plugin ein Kinderspiel.
Gruß,
beta
Ich habe folgende Bootsequenz gefunden:
1.) setup
// set clock level
fs454_write(FS454_CR, CR_GCC_CK_LVL, 2);
// soft reset
fs454_read(FS454_CR, &data, 2);
fs454_write(FS454_CR, data | CR_SRESET, 2);
fs454_write(FS454_CR, data & ~CR_SRESET, 2);
fs454_write(FS454_BYPASS, fs454_presets.bypass, 2);
// write QPR
fs454_write(FS454_QPR, fs454_presets.qpr, 2);
// setup PLL and NCO
fs454_write(FS454_NCON, fs454_presets.ncon, 4);
fs454_write(FS454_NCOD, fs454_presets.ncod, 4);
fs454_write(FS454_PLL_M_PUMP, fs454_presets.pllm, 2);
fs454_write(FS454_PLL_N, fs454_presets.plln, 2);
fs454_write(FS454_PLL_PDIV, fs454_presets.pllpd, 2);
//latch NCO and PLL
fs454_read(FS454_CR, &data, 2);
fs454_write(FS454_CR, data | CR_NCO_EN, 2);
fs454_write(FS454_CR, data & ~CR_NCO_EN, 2);
// set presets
fs454_write(FS454_PWR_MGNT, fs454_presets.pwr_mgmt, 2);
fs454_write(FS454_IHO, fs454_presets.iho, 2);
fs454_write(FS454_IVO, fs454_presets.ivo, 2);
fs454_write(FS454_IHW, fs454_presets.ihw, 2);
fs454_write(FS454_VSC, fs454_presets.vsc, 2);
fs454_write(FS454_HSC, fs454_presets.hsc, 2);
fs454_write(FS454_MISC, fs454_presets.misc, 2);
fs454_write(FS454_VID_CNTL0, fs454_presets.vid_cntl0, 2);
fs454_write(FS454_MISC_46, fs454_presets.misc46, 1);
fs454_write(FS454_MISC_47, fs454_presets.misc47, 1);
fs454_write(FS454_DAC_CNTL, fs454_presets.dac_cntl, 2);
fs454_write(FS454_FIFO_LAT, fs454_presets.fifo_lat, 2);
Danach die Presets für PAL laden:
qpr = 0x9c41
pwr_mgmt = 0x0200
misc = 0x0003
ncon = 0x00000001
ncod = 0x00000001
misc46 = 0x01
misc47 = 0x00
pllm = 0x4000 | (296 - 17)
plln = 30 - 1
pllpd = ((10 - 1) << | (10 - 1)
iho = 0
ivo = 19
ihw = 768
vsc = 8200
hsc = 0x0000
bypass = 0x000a
vid_cntl0 = 0x0340
dac_cntl = 0x00e4
fifo_lat = 0x0082
Die Registergrößen und -name sind aus dem Datenblatt bekannt.
Eine erste C-Implementierung habe ich angehängt.
Hat jemand Lust, mitzutesten?
Gruß,
beta
Was bei mir funktioniert ist, den x-server von giga_sans tars mit z.B. 800x600 laufen zu lassen. Der Focus macht dann nur einen Ausschnitt des oberen rechten Bildes (640x480). Gibt es denn eine Möglichkeit, den Focus umzustellen auf PAL oder andere Auflösung? Die Register stehen ja in den Datenblättern.
Gruß,
beta
GetItAll
ist der stv6412 denn identisch mit dem fs454?
Gruß,
beta
obelix
Ja, genau diesen. Ich brauche die Register des Chips, dann kann ich evtl. wa machen.
Gruß,
beta
mase
Genauso wenig. Beim Bild passiert rein gar nichts. Hast Du andere Auflösungen versucht als die 800x600? Vielleicht hat irgendjemand ein Datenblatt vom Focus-Chip. Dann wissen wir zumindest, was wir über den I2C-Bus schicken müssen, um das Ding einzustellen.
Gruß,
beta
mase: Ich habe die compilierte Version mal angehängt. Ich komme heute leider erst mal nicht zum Testen (evtl. heute Abend). Vielleicht kommst Du ja weiter.
Gruß,
beta
Ich habe 2.6.17 (zenslack). Es compiliert nur, wenn man das include ganz weg lässt, also ein einfaches gcc xxx.c.
Aber leider keine Auswirkungen im 800x600 mode, vielleicht funktioniert ja die modeline, die beschrieben ist?
Gruß,
beta
so wie es aussieht, kann der x-server ja die hohe Auflösung. Ich werde das Stück source code mal compilieren und schauen, ob es den fs454 umschaltet auf Vollbild, wenn der x-server auf 800x600 läuft.
-> Ergänzung: Ich habe es getestet, es funktioniert leider nicht (zumindest nicht mit x-server in 800x600 Mode, es ist nur die obere linke Ecke des Schirms sichtbar und das Bild schaltet nicht um, wenn ich bei laufendem x-server den Code (I2C) aufrufe. Schade.
Gruß,
beta
Hat mal jemand folgendes probiert?
792 x 576 pixel mode
If you have an Xbox with the Focus FS454 video encoder and use PAL output, you can follow the procedure described here to set it up for overscanned 792x576 resolution, which looks much nicer than the default 640x480. PAL video is usually captured in the resolution 720x576, so the picture lines are not scaled at all in the vertical direction if a frame height of 576 pixels is used. And in the horizontal direction the pixels are fuzzy anyway (since the signal is analog), so the horizontal downscaling is not very noticeable. A completely unscaled 720x576 mode could have been used instead, but the software becomes less messy if the pixels are square, so 720x576 is only used when actually playing video.
To calculate the number of horizontal pixels needed for a square-pixel frame, use the fact that 702 of the 720 pixels represent 4/3 of the frame height: for square pixels this means that (720/702)*(4/3)*576 = 787.6923 horizontal pixels are needed. This is rounded up to the nearest multiple of 8 (because of hardware requirements) which is 792.
Non-square pixels are rather tricky beasts. If you want to learn more about this subject, I recommend this excellent web page: A Quick Guide to Digital Video Resolution and Aspect Ratio Conversions.
Here is the procedure for setting up the 792x576 mode:
Make X11 recognize the mode. Use something like this in your XF86Config-4-xbox:
Mode "792x576"
DotClock 29.750
HTimings 792 832 912 952
VTimings 576 599 601 625
Flags "-Hsync" "-Vsync"
EndMode
Then set it as the default mode in the "Display" subsection in the "Screen" section.
You also need 720x576 so MPlayer can switch to this mode:
Mode "720x576"
DotClock 27.000
HTimings 720 760 824 864
VTimings 576 599 601 625
Flags "-Hsync" "-Vsync"
EndMode
At the end of the "append" line in your linuxboot.cfg, add video=xbox:hoc=0,voc=0
The linuxboot.cfg file is found in the same place as where you installed Xebian, e.g. E:\debian\linuxboot.cfg.
This change sets the horizontal and vertical overscan compensation to zero. It may work for Xboxes with Conexant chips also, I haven't tested that.
Now the picture needs to be positioned correctly on the TV screen, so that a 792x576 image from the Xbox looks exactly like a broadcast PAL image. I don't know how this is done for Conexant-equipped Xboxes, or if there may be a better way to do this, but here is a program that tells the Focus FS454 to position the picture so it is correctly centered. Try this only on boxes with the FS454 chip:
#include <fcntl.h>
#include "linux/i2c-dev.h"
int main(int argc, char *argv[]) {
int fd = open("/dev/i2c/0", O_RDWR);
ioctl(fd, I2C_SLAVE_FORCE, 0x6a);
i2c_smbus_write_word_data(fd, 0x00, 42);
i2c_smbus_write_word_data(fd, 0x02, 26);
close(fd);
}
Compile with -I/usr/src/linux/include
Run it (as root) after X11 has started, otherwise the settings will be overwritten.
Gruß,
beta
Hat den jemand DVB-S2 mit der Karte am laufen? DVB-S funktioniert ohne Probleme bei mir, DVB-S2 lockt, liefert aber keinen stream an dvr0.
Gruß,
beta
Hallo,
ja, die HD-S2 ist baugleich mit der HVR-4000, ausser dass das FM Radio und DVB-T fehlt. DVB-S funktioniert mit der Karte, DVB-S2 noch nicht (API-Änderungen im Treiber notwendig). Hier ist mal ein kleines HOWTO:
1.) Die Treiber von http://linuxtv.org/hg/~stoth/hvr4000/ downloaden.
2.) Die Dateien von http://dev.kewl.org/tmp/hvr4000/ downloaden. cx24116.c.patched ins Treiberverzeichnis (1.)) kopieren und an passender Stelle cx24116.c ersetzen (die Endung .patched weg!)
3.) wget-fw.sh ausführen. Das Script erstelle automatisch die benötigte Firmware (auch für HD-S2 gültig) namens dvb-fe-.... Diese nach /lib/firmare bzw. /usr/lib/hotplug/firmware (je nach Distribution) kopieren.
4.) Treiber übersetzen und mit make install installieren. Funktionierte bei mir mit OPensuse 10.2 problemlos.
5.) szap2 nutzen, um DVB-S Sender zu tunen (./szap -r -a adapternummer, also 0, 1,... "NAME des Programms", also z.B. ZDF. Ist die Karte die 2. (Adapter =1), z.B. ./szap2 -r -a1 "ZDF".
6.) Mit cat /dev/dvb/adapter1/dvr0 > test.ts kann man das Programm nach test.ts aufnehmen.
7.) mplayer test.ts spielt das ganze ab.
Bei mir funktioniert das mit DVB-S ohne Probleme. DVB-S2-Sender kann man tunen, das Device liefert aber noch nicht den Stream, auch nicht nach Angabe der Video-PID.
Solltest Du noch ne channels.conf für szap benötigen, melde Dich, ansosnten ist google Dein Freund.
Ich hoffe, ich konnte helfen. Ich habe übrigens unter Windoofs das Problem, dass Cybercinema, wenn ich nicht den Assistentenmodus starte, bei 92% Senderscan stehenbleibt. Im Assistentenmodus geht das. Ich habe Astra 19.2 und Hotbird 13.
Ach ja, Diseq sollte mit dem HVR-4000 Treiber (szap) auch funktionieren.
Gruß,
beta