XINE mit FPC ?
-
- 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)
XINE mit FPC ?
Hallo,
da ich noch kein Fertigs Packet für FPC gefunden habe für xine wollte ich das mal selbst versuchen. Der Grund ist: Mit XINE kann ich laut Dokumenation alle Formate abspielen.
Mit FMOD und ASC geht das nicht.
Ich möchte jetzt mal versuchen XINE für den FPC zu Portieren. Das Problem: Ich bin mir noch nicht sicher wo ich anfangen soll.
Ich möchte aber nur die Header übersetzten, also ich vermute das XINE über DLLS/SO Dateien laufen wird....
Ich habe mir jetzt den XINE Soruce runter geladen: xine-lib-1.1.10.1
und vermute mal das ich nur die Datei xine.h nach Object Pascal umwandeln muss.
Da ich sowas noch nie gemacht habe, wollte ich fragen ob ich mit meiner Vermutung richtig liege. Weil das suchen mit Goole bringt mir nicht viel. Das habe ich schon mehrer Stunden/Tage versucht.
da ich noch kein Fertigs Packet für FPC gefunden habe für xine wollte ich das mal selbst versuchen. Der Grund ist: Mit XINE kann ich laut Dokumenation alle Formate abspielen.
Mit FMOD und ASC geht das nicht.
Ich möchte jetzt mal versuchen XINE für den FPC zu Portieren. Das Problem: Ich bin mir noch nicht sicher wo ich anfangen soll.
Ich möchte aber nur die Header übersetzten, also ich vermute das XINE über DLLS/SO Dateien laufen wird....
Ich habe mir jetzt den XINE Soruce runter geladen: xine-lib-1.1.10.1
und vermute mal das ich nur die Datei xine.h nach Object Pascal umwandeln muss.
Da ich sowas noch nie gemacht habe, wollte ich fragen ob ich mit meiner Vermutung richtig liege. Weil das suchen mit Goole bringt mir nicht viel. Das habe ich schon mehrer Stunden/Tage versucht.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Tja google nimmt einem das denken halt (noch) nicht ab. Zum groben Header übersetzen kannst du h2pas nehmen. Es gibt dazu auch eine schöne Wiki Seite die du sicher aber schon lang gefunden hast...
Aber wenn du noch nicht mal weißt welche bzw ob xine Bibliotheken benutzt seh ich da schwarz.
Aber wenn du noch nicht mal weißt welche bzw ob xine Bibliotheken benutzt seh ich da schwarz.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- 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)
Das Spielt keine rolle. Ein versuch ist es wert und ich wollte ja erstmal nur wissen ob ich mit meiner Vermutung richtig liege oder nicht.
Danke für den tipp mit h2pas. Wenn es damit leichter geht versuche ich es mal.
Mir geht es ja erstmal darum eine Version zu habe die ich mit dem FPC zum laufen bekomme.
Dann stellt sich natürlich noch die Frage wie ich xine im allgemeinen verwende, aber ich denke da gibt es genügend Beispiele, da müsste ich nur reinschauen.
die Frage ist ja auch ob Xine.h und Xine.h.in die Dateien für die LIB im allgemeinen sind. und ob es reicht diese zu übersetzten.
Wobei ich habe in den Dateien keine Informationen gefunden die andeutet das es sich um eine oder mehrer LIB also dlls oder SO Dateien handelt.
Ich möchte es halt nur mal Versuche. Was sprecht dagegen ? Und wenn es gelingt währe es ein Praktisches und Tolles Addon für FPC... Da ja XINE meine ich auch unter Windows und MAC-OS läuft...
Mal sehen. Ich muss erstmal wissen welche Dateien für die DLL/SO Dateien verantwortliche sind, So viele Dateien sind im Soruce-Code gar nicht vorhanden. Zum Glück.
Wie gesagt ich vermute die Dateien im verzeichnis INCLUDE... sind es.
Danke für den tipp mit h2pas. Wenn es damit leichter geht versuche ich es mal.
Mir geht es ja erstmal darum eine Version zu habe die ich mit dem FPC zum laufen bekomme.
Dann stellt sich natürlich noch die Frage wie ich xine im allgemeinen verwende, aber ich denke da gibt es genügend Beispiele, da müsste ich nur reinschauen.
die Frage ist ja auch ob Xine.h und Xine.h.in die Dateien für die LIB im allgemeinen sind. und ob es reicht diese zu übersetzten.
Wobei ich habe in den Dateien keine Informationen gefunden die andeutet das es sich um eine oder mehrer LIB also dlls oder SO Dateien handelt.
Ich möchte es halt nur mal Versuche. Was sprecht dagegen ? Und wenn es gelingt währe es ein Praktisches und Tolles Addon für FPC... Da ja XINE meine ich auch unter Windows und MAC-OS läuft...
Mal sehen. Ich muss erstmal wissen welche Dateien für die DLL/SO Dateien verantwortliche sind, So viele Dateien sind im Soruce-Code gar nicht vorhanden. Zum Glück.
Wie gesagt ich vermute die Dateien im verzeichnis INCLUDE... sind es.
MFG
Michael Springwald
Michael Springwald
Re: XINE mit FPC ?
Also ich weiss ja nicht wie du googelst.pluto hat geschrieben:Weil das suchen mit Goole bringt mir nicht viel. Das habe ich schon mehrer Stunden/Tage versucht.

Bei mir dauert das 30 Sekunden:
http://www.mirrorservice.org/sites/down ... inepascal/" onclick="window.open(this.href);return false;
Ist zwar für Kylix, müsste aber zu schaffen sein.
-
- 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)
Vielen Dank theo !
Das habe ich nicht gefunden. Evlt. suche ich falsch. Habe z.b. nach XINE FPC oder Lzarus gesucht aber nur "Müll" gefunden. Sieht aber vielversprechend aus. Werde ich morgen mal testen ob es unter Lazarus läuft.
Soll Lazarus nicht auch Kylix kompatibel sein ?
Das habe ich nicht gefunden. Evlt. suche ich falsch. Habe z.b. nach XINE FPC oder Lzarus gesucht aber nur "Müll" gefunden. Sieht aber vielversprechend aus. Werde ich morgen mal testen ob es unter Lazarus läuft.
Soll Lazarus nicht auch Kylix kompatibel sein ?
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)
Endlich habe ich die xine unter Lazarus zum laufen bekommen !
Bei mir kann ich jetzt XINE nutzen. Ich werde es in den nächsten Tagen hochladen. ABER ES GEHT SCHONAML allerdings ist mir noch nicht ganz klar warum es anfangs in der xine.pas Fehler gab dort hat er Constaten nicht gefunden die aber in der Datei drin waren. Ich habe einfach den Wert direckt geschrieben.
Bei mir kann ich jetzt XINE nutzen. Ich werde es in den nächsten Tagen hochladen. ABER ES GEHT SCHONAML allerdings ist mir noch nicht ganz klar warum es anfangs in der xine.pas Fehler gab dort hat er Constaten nicht gefunden die aber in der Datei drin waren. Ich habe einfach den Wert direckt geschrieben.
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)
leider noch nicht. Aber der Ton. Ich weiß nicht warum.
Ich vermute da habe ich ein Fehler eingebaut.
im Orignal sah das so aus:
weißt du da weiter ?
Window kennt Lazarus nicht, nur TWindow. Aber eigentlich brauche ich nur ein HDC...
Code: Alles auswählen
var
xid: HDC;
s:Pchar;
str:String;
begin
if (myWidget <> NIL) then
begin
xid := TCustomControl(myWidget).Handle;
end
else
im Orignal sah das so aus:
Code: Alles auswählen
var
xid: Window;
begin
if (myWidget <> NIL) then
begin
xid := QWidget_winID(myWidget.Handle);
end
else
begin
Window kennt Lazarus nicht, nur TWindow. Aber eigentlich brauche ich nur ein HDC...
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)
so wenn ich xid := XCreateSimpleWindow (Display,
XDefaultRootWindow(Display),
defaultXpos, defaultYpos,
defaultWidth, defaultHeight,
0, clBlack, clBlack);
XMapWindow(Display, xid);
nutze geht es. Allerdings ist das Vidio dann in ein Extrans Fenster.
Beim Panel bin ich noch nicht viel weiter leider.
ich weiß einfach nicht was ich falsch mache. Aber es gibt Hoffnung. Evlt. Schaffe ich es doch noch mal sehen.
Ich habe ein cpp Datei gefunden die sehr hilfreich ist: videobox.cpp.... einfach mal mit google suchen... oder ich hänge sie hier dran.
XDefaultRootWindow(Display),
defaultXpos, defaultYpos,
defaultWidth, defaultHeight,
0, clBlack, clBlack);
XMapWindow(Display, xid);
nutze geht es. Allerdings ist das Vidio dann in ein Extrans Fenster.
Beim Panel bin ich noch nicht viel weiter leider.
ich weiß einfach nicht was ich falsch mache. Aber es gibt Hoffnung. Evlt. Schaffe ich es doch noch mal sehen.
Ich habe ein cpp Datei gefunden die sehr hilfreich ist: videobox.cpp.... einfach mal mit google suchen... oder ich hänge sie hier dran.
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)
Es geht immer noch nicht:
die Fehler Meldung kommt hier:
vo_driver := xine_open_video_driver(Xine,s, 1, @xvt);
und sie lautet:
Dann sehe ich das Fenster. Allerdings gibt es dort das Problem, sobald das Fenster bedekt wird durch ein anders bleibt dieser bereich Schwarz. Warum weiß ich nicht.
Mein Ziel ist es jedoch die Ausgabe auf ein Panel zu sehen und nicht in ein Externes Fenster
Ich komme einfach nicht weiter seit stunden versuche ich das jetzt.
Ich hoffe einer von euch kann mir weiter Helfen.
Code: Alles auswählen
procedure TxineVideoPlugin.Initialize(Xine: Pxine_t; UsrDta: Pointer );
var
xid: TWindow;
s:Pchar;
str:String;
begin
if (myWidget <> NIL) then
begin
writeln('TEST01');
// xid:=PGdkWindowPrivate(PGtkWidget(TCustomControl(myWidget).canvas.Handle)^.window)^.xwindow;
// xid := GDK_WINDOW_XWINDOW(PGdkWindowPrivate(PGtkWidget(TCustomControl(myWidget).canvas.Handle)));
xid:=myWidget.Handle;
writeln('TEST02:',xid);
end
else
begin
xid := XCreateSimpleWindow (Display,
XDefaultRootWindow(Display),
defaultXpos, defaultYpos,
defaultWidth, defaultHeight,
0, clBlack, clBlack);
XMapWindow(Display, xid);
end;
UserData := TxineUserData(UsrDta^);
if (XShmQueryExtension (Display) = 1) then begin
UserData.shmEventId := XShmGetEventBase (Display) + ShmCompletion;
end
else begin
UserData.shmEventId := -1;
end;
XSelectInput(Display,xid, ExposureMask or StructureNotifyMask);
// Select Video Plugin
xvt.display := Display;
xvt.screen := Screen;
xvt.d := xid;
ResH := XDisplayWidth(Display,Screen)*1000
/ XDisplayWidthMM(Display,Screen);
ResV := XDisplayHeight(Display,Screen)*1000
/ XDisplayHeightMM(Display,Screen);
DisplayRatio := ResV/ResH;
DisplayRatio := 1.0;
if ((Abs(DisplayRatio)-1.0) < 0.01) then
begin
DisplayRatio := 1.0;
end;
xvt.dest_size_cb := @DestSizeCB;
xvt.frame_output_cb := @FrameOutputCB;
// Add to user_data record
UserData.resizeFactor := 1.0;
UserData.displayRatio := DisplayRatio;
UserData.Display := Display;
xvt.user_data := @UserData;
s:=Pchar(vidNames[ord(myVideoDriver)]);
writeln(s);
writeln('OK01');
vo_driver := xine_open_video_driver(Xine,s,
1, @xvt);
writeln('OK02');
// writeln(
end;
vo_driver := xine_open_video_driver(Xine,s, 1, @xvt);
und sie lautet:
Ich weiß einfach nicht weiter erstelle ich ein XCreateSimpleWindow Fenster geht esGdk-ERROR **: BadWindow (invalid Window parameter)
serial 8 error_code 3 request_code 2 minor_code 0
Dann sehe ich das Fenster. Allerdings gibt es dort das Problem, sobald das Fenster bedekt wird durch ein anders bleibt dieser bereich Schwarz. Warum weiß ich nicht.
Mein Ziel ist es jedoch die Ausgabe auf ein Panel zu sehen und nicht in ein Externes Fenster
Ich komme einfach nicht weiter seit stunden versuche ich das jetzt.
Ich hoffe einer von euch kann mir weiter Helfen.
MFG
Michael Springwald
Michael Springwald