Thread Perl Funktion von XS aufrufen
(16 answers)
Opened by Max_Perlbeginner at 2019-01-02 16:28
Kleines Update:
Ich konnte mit Hilfe des Entwicklers des MPV Media Player das Problem lösen. Ich habe im Constructor des MPV::Simple Objects folgendermaßen eine Pipe in C erstellt: Code: (dl
)
1 static int pipes[2]; Im nun reinen C-Callback, dem ich der Funktion mpv_set_wakeup_callback übergebe, wird nun immer ein kleines Byte in diese Pipe hineingeschrieben: in meinem Perl Modul wird nun mittels der folgenden XS Funktion has_events innerhalb einer while Schleife stets neu abgefragt, ob Ereignisse vorhanden sind, und wenn ja, werden diese ausgewertet: Code: (dl
)
1 has_events(MPV__Simple* ctx) Nochmals herzlichen Dank an alle, die mir geholfen haben. Das war ein echt hartes Stück Arbeit, Max PS: Die Perl Anbindung für MPV ist nun fertig (siehe hier). Ich habe auch noch eine Anbindung an das JSON IPC Interface von MPV hinzugefügt. Die nächsten Tage geht es auf CPAN. Ein Video Player sollte mit Perl nun also problemlos möglich sein ;-) Da es mein erstes C/XS Modul ist, würde ich mich natürlich über jedes Feedback freuen (gleichwohl ob positiv oder kritisch...) Last edited: 2020-04-25 08:15:15 +0200 (CEST) |