Laz_mpv

Rund um die LCL und andere Komponenten

Laz_mpv

Beitragvon hubblec4 » 26. Apr 2019, 13:15 Laz_mpv

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
hubblec4
 
Beiträge: 234
Registriert: 25. Jan 2014, 18:50

Beitragvon pluto » 27. Apr 2019, 15:12 Re: Laz_mpv

Ich wollte mal fragen ob es möglich ist für ein C projekt die header Datein nach FPC/Lazarus zu transformieren.

Dir geht es doch um sowas hier, oder?
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 28. Apr 2019, 22:53, insgesamt 3-mal geändert.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon creed steiger » 28. Apr 2019, 22:28 Re: Laz_mpv

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.


ohne Worte ........


aber zur Sache ... mit der Frage bist du im englischen Forum besser aufgehoben .. grad mit c Konvertierung spezifischen Sachen
creed steiger
 
Beiträge: 953
Registriert: 11. Sep 2006, 22:56

Beitragvon pluto » 28. Apr 2019, 22:40 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.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon pluto » 28. Apr 2019, 23:29 Re: Laz_mpv

wenn ich versuche die client.h mit h2pas zu konvertieren bekomme ich bei Zeile 777 diese Fehler Meldung:
at line 777 error : syntax error
An unhandled exception occurred at $00000000004047D4:
EAccessViolation: Access violation
$00000000004047D4

Die Zeile 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;


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:
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;
 


Ob die Pascal Datei auch läuft weiß ich nicht.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

Beitragvon hubblec4 » 29. Apr 2019, 00:49 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?
hubblec4
 
Beiträge: 234
Registriert: 25. Jan 2014, 18:50

Beitragvon pluto » 29. Apr 2019, 10:18 Re: Laz_mpv

Denke mal das stört sicher, aber dann müsste man diese ja auch erst konvertieren und vorallem erstmal haben oder?

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.
MFG
Michael Springwald
Aktuelles Projekt: ContentManager2(Ehmals NoteManager2).
pluto
Lazarusforum e. V.
 
Beiträge: 6998
Registriert: 19. Nov 2006, 13:06
Wohnort: Oldenburg(Oldenburg)
OS, Lazarus, FPC: Linux Mint 19.2 | 
CPU-Target: AMD
Nach oben

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried