Hallo Lazarusgemeinde
Ich wollte mal fragen ob es möglich ist für ein C projekt die header Datein nach FPC/Lazarus zu transformieren.
Ja ich habe mich ein wenig in das Thema eingelesen und auch in Lazarus selbst gibt es ja ein Package dafür, was C Dateien nach pas umwandelt.
Leider liest man immer das das nicht immer 100% umgewandelt werden kann und vieles manuell vorher/nachher noch umbegaubt werden muss.
Daher hatte ich auch kein Erfog mit dem konvertieren.
Aber ich würde das eigentlich auch lieber gerne mauell machen wollen, da ich so gleich noch bissl C lernen kann.
Also die eigentlich Frage ob man das alles nach Lazarus portieren kann ist die, ob es überhaupt geht, von den Schnittstellen her, verwendete include-Dateien in den Headern, usw...?
mpv hat sich in den letzten Monaten sehr stark entwickelt, ist auf sehr vielen OS's verfügbar und hat eine umfangreiche Doku.
Im Dateianhang ist das Dev-Packet ohne die dll.
Gruß
hubble
Laz_mpv
Laz_mpv
- Dateianhänge
-
mpv-dev.7z
- (49.06 KiB) 122-mal heruntergeladen
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Laz_mpv
Dir geht es doch um sowas hier, oder?Ich wollte mal fragen ob es möglich ist für ein C projekt die header Datein nach FPC/Lazarus zu transformieren.
https://wiki.ubuntuusers.de/mpv/
Edit2:
vielleicht wäre das mPlayer-Control was?
http://wiki.freepascal.org/TMPlayerControl
EDIT: Beitrag geändert auf Grund einer Fehle Einschätzung.
Zuletzt geändert von pluto am So 28. Apr 2019, 22:53, insgesamt 3-mal geändert.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: Laz_mpv
ohne Worte ........Ich würde erst mal schauen, ob es Alternativen gibt, z.b. die VLC-Lib kann sehr viele Formate abspielen, ich denke da sollte auch mpv drunter sein.
aber zur Sache ... mit der Frage bist du im englischen Forum besser aufgehoben .. grad mit c Konvertierung spezifischen Sachen
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Laz_mpv
Ich kann noch diese wiki Seite empfehlen:
http://wiki.freepascal.org/Pascal_for_C_users
und natürlich die bekannten Tools: Wie h2pas
habe noch eben diese Wiki Seite gefunden:
http://wiki.freepascal.org/Creating_bin ... _libraries
Es dürfte aber auch mit tools nicht einfach werden...
edit:
ups, ich dachte mpv wäre ein Dateiformat *G*, damit lage ich wohl daneben....
edit2: habe mein ersten Beitrag überarbeitet.
http://wiki.freepascal.org/Pascal_for_C_users
und natürlich die bekannten Tools: Wie h2pas
habe noch eben diese Wiki Seite gefunden:
http://wiki.freepascal.org/Creating_bin ... _libraries
Es dürfte aber auch mit tools nicht einfach werden...
edit:
ups, ich dachte mpv wäre ein Dateiformat *G*, damit lage ich wohl daneben....
edit2: habe mein ersten Beitrag überarbeitet.
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Laz_mpv
wenn ich versuche die client.h mit h2pas zu konvertieren bekomme ich bei Zeile 777 diese Fehler Meldung:
Ob die Pascal Datei auch läuft weiß ich nicht.
Die Zeile sieht so aus:at line 777 error : syntax error
An unhandled exception occurred at $00000000004047D4:
EAccessViolation: Access violation
$00000000004047D4
Edit: Wenn ich die besagte Zeile raus nehme und die nächste auch, klappt das mit den Konvertieren und die stelle in Pascal sieht so aus:typedef struct mpv_node {
union {
char *string; /** valid if format==MPV_FORMAT_STRING */
int flag; /** valid if format==MPV_FORMAT_FLAG */
int64_t int64; /** valid if format==MPV_FORMAT_INT64 */ // Hier kommt die Fehler Meldung.
double double_; /** valid if format==MPV_FORMAT_DOUBLE */
/**
* valid if format==MPV_FORMAT_NODE_ARRAY
* or if format==MPV_FORMAT_NODE_MAP
*/
struct mpv_node_list *list;
/**
* valid if format==MPV_FORMAT_BYTE_ARRAY
*/
struct mpv_byte_array *ba;
} u;
/**
* Type of the data stored in this struct. This value rules what members in
* the given union can be accessed. The following formats are currently
* defined to be allowed in mpv_node:
*
* MPV_FORMAT_STRING (u.string)
* MPV_FORMAT_FLAG (u.flag)
* MPV_FORMAT_INT64 (u.int64)
* MPV_FORMAT_DOUBLE (u.double_)
* MPV_FORMAT_NODE_ARRAY (u.list)
* MPV_FORMAT_NODE_MAP (u.list)
* MPV_FORMAT_BYTE_ARRAY (u.ba)
* MPV_FORMAT_NONE (no member)
*
* If you encounter a value you don't know, you must not make any
* assumptions about the contents of union u.
*/
mpv_format format;
} mpv_node;
Code: Alles auswählen
mpv_node = record
u : record
case longint of
0 : ( _string : ^char );
1 : ( flag : longint );
2 : ( list : ^mpv_node_list );
3 : ( ba : ^mpv_byte_array );
end;
format : mpv_format;
end;
- Dateianhänge
-
- client.pp
- (89.14 KiB) 125-mal heruntergeladen
MFG
Michael Springwald
Michael Springwald
Re: Laz_mpv
Hi pluto
Bin erst jetzt zum lesen gekommen. Sorry ich hatte vergessen in der Eile ein paar Links zu setzen. Aber ich lese du weist nun was mit mpv gemeint ist.
Mir geht es eigentlich nicht wirklich darum einen Player zu schreiben, davon gibt es ja nun bereits sooo viele. Viele können die Basis Matroska Sachen verarbeiten, und dann ist auf viele Player und Splitter all die tollen Matroska Sachen verteilt.
Da mpv bereits ein Player ist (ja ich weis, ist auch so wie bei VLC und das interne LazVLC) würde ich viellicht dochmal einen Matroska Player schreiben.
Das mpv.net Project sieht ja nun nicht so riesig aus.
https://github.com/stax76/mpv.net
Danke auch das du schon mal eine Konvertierung vorgenommen hast. Muss ich mir erst noch anschauen.
EDIT:
Da sind noch die include Einträge zu den .h Dteien drin
{$include <stddef.h>}
{$include <stdint.h>}
Denke mal das stört sicher, aber dann müsste man diese ja auch erst konvertieren und vorallem erstmal haben oder?
Bin erst jetzt zum lesen gekommen. Sorry ich hatte vergessen in der Eile ein paar Links zu setzen. Aber ich lese du weist nun was mit mpv gemeint ist.
Mir geht es eigentlich nicht wirklich darum einen Player zu schreiben, davon gibt es ja nun bereits sooo viele. Viele können die Basis Matroska Sachen verarbeiten, und dann ist auf viele Player und Splitter all die tollen Matroska Sachen verteilt.
Da mpv bereits ein Player ist (ja ich weis, ist auch so wie bei VLC und das interne LazVLC) würde ich viellicht dochmal einen Matroska Player schreiben.
Das mpv.net Project sieht ja nun nicht so riesig aus.
https://github.com/stax76/mpv.net
Danke auch das du schon mal eine Konvertierung vorgenommen hast. Muss ich mir erst noch anschauen.
EDIT:
Da sind noch die include Einträge zu den .h Dteien drin
{$include <stddef.h>}
{$include <stdint.h>}
Denke mal das stört sicher, aber dann müsste man diese ja auch erst konvertieren und vorallem erstmal haben oder?
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Laz_mpv
ich denke nicht, da es mit Sicherheit alternativen gibt. nehme die einfach mal raus und schau wo FPC meckert. Diese Funktionen kannst du dann im FPC-SRC suchen.Denke mal das stört sicher, aber dann müsste man diese ja auch erst konvertieren und vorallem erstmal haben oder?
MFG
Michael Springwald
Michael Springwald