stdout alternative??
-
hi...ich möchte gerne über linux einem programm informationen entnemen. es handelt sich um einen mediaplayer von einer speziellen linux-media-box.
leider spuckt das programm nicht immer meine gewünschten daten aus...also wenn ich vorspule und dann wieder play auswähle dann erscheint die aktuelle position (zeit) des filmes:
***************************** STC = 20683794 (229 secs) Video : Data 101a: st=26d80000 sz=16777216 wr=13949585 rd=2827630 --> f : 16.85 XFER 101a: st=27d84c2c sz=257 wr=256 rd=0 er=0 --> f : 0.00 Audio[0] : Data 1c: st=25c32000 sz=655360 wr=647 rd=654712 --> f : 99.90 XFER 1c: st=25cd9910 sz=65 wr=0 rd=64 er=0 --> f : 98.46 ***************************** now playing
nun möchte ich aber gerne dauerhaft die aktuelle zeit entnehmen...hat einer von euch einer idee wie man vielleicht über eine speicherauslesung oder ähnliches an diese kommen könnte. und wenns geht dann über linuxübliche boardmittel...also nur wenn
hoffentlich kann mir jemand helfen
thx
moes
-
Ähm... warum rechnest du die Zeit nicht einfach in deinem Programm mit?
-
da ich leider überhaupt gar keine angaben habe wie lange z.b. der film geht. der mediaplayer wird relativ einfach per kommandozeile ausgeführt z.b. play "movie.avi" und dann hab ichs noch mit > text.txt probiert...aber da spuckt er nur minimal aus. nur wenn ich vorspule und dann wie auf play drücke: dann gibt er mir das STC = 20683794 (229 secs). und das ist genau die info die ich dauerhaft bräuchte...zumindest in gewissen intervallen.
-
Hallo,
was du willst, nennt sich "Inter-process communication" (IPC).
http://en.wikipedia.org/wiki/Inter-process_communicationDafür gibt es verschiedene Realisierungen. Musst du das nehmen, was am besten auf dein Problem zugeschnitten ist.
Als erstes wirst du wohl im Quelltext von dem Player die Stelle finden müssen, wo er sich das Zeitsignal merkt und von dort dann die Schnittstelle nach außen legen. Z.B. kann der Player als Server fungieren und auf einem DGRAM Socket lauschen. Wenn sich auf diesen Port jemand verbindet, sendet der Server als Antwort die gerade aktuelle Spielzeit. So macht es z.B. der XMMS2.
-
oje...das klingt ziemlich kompliziert. ein weiteres problem: das programm ist closed source. da wirds wohl noch schwieriger an die stelle zu kommen.
gibts da vielleicht ne möglichkeit bei linux-applikationen den speicher auszulesen?
-
moes schrieb:
gibts da vielleicht ne möglichkeit bei linux-applikationen den speicher auszulesen?
/proc/<PID>/mem
Allerdings sehr unsauber.
-
außerdem ist der erfolg mehr als unwahrscheinlich. heute wird manches kryptographisch sicher zufällig im adressraum des prozesses verteilt.