Ich habe im Zusammenhang mit meinen AVARDS bzw. dvb-wss-overdrive ein kleines Problemchen, was ich nicht auf die Reihe kriege:
dvb-wss-overdrive soll dauerhaft laufen und Eingaben, die aus einer fifo kommen, an das vbi-Device der FF weitergeben, also
Eingespeist werden sollen in die fifo entweder automatisch generiertes (nohup dvb-aspect > /dev/dvb-wss-overdrive 2>&- &) oder auch statisches (killall dvb-aspect; echo "4:3" > /dev/dvb-wss-overdrive). Das dvb-wss-overdrive durch läuft ist wichtig, um das vbi-Device der FF dauerhaft zu belegen. Im Prinzip funktioniert das auch, aber...
Die Leseschleife in dvb-wss-overdrive sieht grob so aus:
Nach dem Starten wartet scanf auch schön auf die Eingaben. Hängt man dann dvb-aspect an die fifo ist auch noch alles in Ordnung, d.h. scanf wartet, bis eine Zeile in die fifo geschrieben wurde, liesst die aus...und das nächsten scanf blockiert wieder, bis wieder was in der fifo steht.
Wird jetzt aber der erste in die fifo einspeisende Prozess beendet, kehrt scanf ständig mit -1 (eof) zurück (wenn man noch ein while(1) drüber setzen würde)? Erst wenn man wieder einen Prozess an die fifo hängt, wartet scanf wieder braf auf Eingaben...?!