PLXINE-Unit

Zur Vorstellung von Komponenten und Units für Lazarus
pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

PLXINE-Unit

Beitrag von pluto »

Hallo,
ich möchte hier mein XINE-Projekt vorstellen. Nochmals vielen dank an Theo der mich vor einige Zeit auf die Pascal Header aufmerksam gemacht hat.

Im Archiv findet ihr zwei Units:
xine.pas > Pascal Header Datei für XINE
und plXINE.pas eine kleine Hilfst Klasse für xine.pas

Nach meinen Informationen läuft XINE im Moment nur unter Linux, kann aber sein das sich das inzwischen geändert hat. Es werden von plXine auch im Moment leider nur die Audio Funktionen von XINE unterstützt. Bei den Video habe ich noch große Probleme. Währe aber toll wenn da jemand weiter machen könnte bzw. würde. Z.B. kann XINE ja noch viel mehr. Z.B. DVD's anschauen, sowie TV und sowas halt alles.

Ich werde das Projekt erst mal eine weile nicht mehr weiter Entwickeln. Evtl. hilft es den ein oder anderen. Eine Beispiel Anwendung ist nicht enthalten, weil die plXINE selbst erklärend ist von der Benutzung her. xine.pas ist schon nicht so leicht zu verstehen.

Bei bedarf kann ich auch meine plPlayliste hochladen, die unterstützt 4 Playlisten Formate.

EDIT01: Mittwoch, 11.Februar.2009
Neue Version von PLXINE
- Lautstärke kann eingestellt werden(Auf Wunsch von _X_)
- Position kann verändert werden

Beispiel Programm Hochgeladen
Ihr müsst auf die Rechtemaustaste klicken und es gehen auch "nur" die Playlisten Funktionen.

Eigentlich war es ein Versuch ein eigenen MediaPlayer zu schreibe, aber ich habe mich entschlossen das jetzt als Beispiel hochzuladen.
Da anscheint doch einiges Interesse an der Unit besteht, werde ich sie weiter entwickeln.

Folgende Dinge plane ich einzubauen
- Direkte Playlisten Unterstützung
Entweder über XINE oder über meine eigene Playlisten Klasse. Im Moment arbeitet das Beispiel mit meiner eigenen Playlisten Klasse

- Ein Paar Komponenten
Zum einen eine eigene PLMediaPlayer Komponente, basieren auf meine PLXINE unit. Zum anderen eine Eigene Playliste Komponente im Styile von z.b. Winamp oder Amrarok.

- Tag's Unterstützung

EDIT02: Sonntag, der 07.Februar.2010
- plXINE Aktualisiert: Lautstärke und Position können geändert werde
- Die Datei Anhänge werden jetzt im Thread angezeigt
- xine.zip neu hochgeladen(Es gab jedoch keine Änderung)

Edit03: Montag, der 22.März.20010
Teekeks hat die Möglichkeiten dieser Unit erweitert: Bei GetLen und GetCurrTime kann man nun wahlweise das Format hh:mm:ss oder mm:ss haben. Vielen Dank.
Unit, habe ich Aktualisiert

PS00: Danke, an Monta fürs wieder freigeben des Thread's.
PS01: Danke, an Teekeks, für den Hinweis, das die Versionen nicht mehr auf den Aktuellen Stand waren...

plxine.pas
07.02.2010
(8.75 KiB) 130-mal heruntergeladen

XINE.zip
Version vom 07.02.2010
(38.4 KiB) 132-mal heruntergeladen

plMediaPlayer.zip
Beispiel Anwendung. Muss angepasst werden, vor dem Kompilieren !!!
(25.22 KiB) 138-mal heruntergeladen
Zuletzt geändert von pluto am Mo 22. Mär 2010, 16:30, insgesamt 6-mal geändert.
MFG
Michael Springwald

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Re: PLXINE-Unit

Beitrag von hanibal »

cool, ich werde mir das mal anschauen, wenn das leuft, währe das echt super.

danke schonmal im foraus für diese units :)

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Re: PLXINE-Unit

Beitrag von hanibal »

ich habs gerade getestet, leif beim ersten versuch :)

danke, danach hab ich schonlange gesucht. :) das ist auch alles super simpel mit deiner plXine :)

also tausend dank dafür :) :) :) :) :)


PS: darf man deine unit eigentlich bei einem gpl prog nutzen?

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: PLXINE-Unit

Beitrag von pluto »

ja, da gegen habe ich nichts. Ich denke auch das XINE auch nichts da gegen hat. solange du uns beide erwähnst in deinem Programm *G*

Vielen Dank, für dein Test. Aber wie gesagt: XINE läuft glaube ich im Moment nur unter Linux. Aber an einer Windows Version sind sie schon dran.
MFG
Michael Springwald

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

Re: PLXINE-Unit

Beitrag von Christian »

acs läuft auf windows und linux ?!
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Re: PLXINE-Unit

Beitrag von hanibal »

bei acs blicke ich allerdings nicht durch, und bei plutos xine habe ich das auf anhieb hinbekommen.

und eine windwosversion benötige ich auch nicht

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: PLXINE-Unit

Beitrag von pluto »

und XINE Spielt auch ALLE bekannten Audio Formate ab. Laut Dokumenation. und bei acs hatte ich am Anfang schon Probleme mit MP3. Egal aus welchen Grund. Bei XINE brauche ich nur die Notwendige Coder Dateien und Fertig.
MFG
Michael Springwald

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

Re: PLXINE-Unit

Beitrag von Christian »

Dafür läufts nichtmal auf windows das 955 aller nutzer nutzen lustig. Hab neulich nochmal probiert die Demos die ich vor 2 Jahren gemacht hab lassen sich immernoch einwandfrei übersetzen und laufen. Warum du da probleme hast kann ich dir auch nicht sagen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: PLXINE-Unit

Beitrag von pluto »

Ich finde das XINE Projekt nicht schlecht und es läuft. Ich nutzte kein Windows und hanibal anscheint auch nicht bzw. das vorhaben geht unter Linux.

Ich meine auch das meine ersten tests mit deinem Projekt nicht so gut gelaufen sind. z.B. konnte ich nicht alle Audio Formate abspielen die ich in meinem Musik Verzeichnis habe. XINE kann alle Abspielen und bald wird es auch eine Windows Version geben. Unter Linux hat XINE eine weite verbreitung. Und Windows wird untergehen. Klar noch nutzen es viele. Keine frage. XINE kann westlich mehr als dein Projekt. XINE unterstützt folgende Sachen:
01 ALLE Audio Formate(Laut Dokumenation)

02 Viele Video Formate(Darunter auch Windows Formate)
03 TV / DVB-T(Auch aufnehmen)
04 DVD

01 habe ich prima zum Laufen gebracht, die anderen Punkte leider noch nicht. Kann sein das ich es noch mal versuchen werde. Ich möchte ja keine Werbung machen, aber ich finde das Projekt gut. Es gibt auch noch GStremaer oder so ähnlich, aber wie das ist weiß ich nicht und ob das unter Windows läuft weiß ich auch nicht. Was ich gerne zum laufen bekommen würde währe mplayer unter Lazarus. Und zwar nicht als Externe aufgerufende Datei.

Aber XINE reicht mir voll und ganz. Wenn XINE auf dem Ziel Rechner läuft, müsste mein Projekt auch laufen. In der vergangenheit hatte ich Probleme mit der libC Datei. Weiß gar nicht was draus geworden ist.

Was davon hat dein Projekt ?

@hanibal
Wenn du noch Ideen, Vorschläge oder sowas hast, kannst du sie gerne äußern. Wenn ich kann werde ich sie versuchen einzubauen. Leider untersützt ich im Moment nur ein bruchteil davon was XINE alles kann. Ich hoffe das ich eines Tages alle unterstützen werde.
Im Moment ist das Projekt wie gesagt auf Eisgelegt. Aber ich kann es jeder zeit wieder Auftauen *G*
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: PLXINE-Unit

Beitrag von pluto »

Ich habe die xine.pas und die xine.inc wieder hinzugefügt. Danke _X_ für den Hinweis. Neuer Anhang(xine.zip)
MFG
Michael Springwald

stacho
Beiträge: 32
Registriert: Do 26. Nov 2009, 22:29

Re: PLXINE-Unit

Beitrag von stacho »

Hallo pluto,

ich bin gerade dabei die xine.pas auf den aktuellen Stand zu bringen. Kenne mich leider noch nicht genug mit bits und bitverschiebung aus.
Kannst du mir erklären wie ich bei dieser Konstante auf eine Paskalvariante komme:

C:

#define XINE_IMGFMT_XXMC (('C' <<24)) | ('M' << 16) | ('x' <<8) | 'X')

Pascal:

XINE_IMGFMT_XXMC = ?????;

Müsste doch ein logisches und sein, oder? Aber wie geht das? 'C', M x und binär darstellen? untereinader schreiben und dann logisches und?
Bin ratlos. :roll:

Schöne Grüße

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: PLXINE-Unit

Beitrag von pluto »

Tut mir Leid das sagt mir überhaupt nichts. Hier im Forum gibt es aber welche, die das übersetzten könnten(Hoffe ich *G*).

Wenn du die neue XINE.Pas Fertig hast, kann ich sie ja in meinen Beitrag oben Hinzufügen, wenn du nichts da gegen hast. Hast du schon erforderlich Videos abspielen können ? Bei mir gab es immer zwischendurch das Problem, dass sich mein X komplett aufgegangen hat mit mühe und Not konnte ich das Programm nur noch beenden.
MFG
Michael Springwald

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: PLXINE-Unit

Beitrag von theo »

Ich vermute so:
const XINE_IMGFMT_XXMC = ((Ord('C') shl 24)) or (Ord('M') shl 16) or (Ord('x') shl 8) or Ord('X');

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: PLXINE-Unit

Beitrag von pluto »

Ich vermute langsam, in meiner XINE unit muss ein Fehler vorliegen wegen den Datentypen..... ab und an, bei bestimmten Videos gibt es eine AV.... aber nur bei bestimmten....
MFG
Michael Springwald

stacho
Beiträge: 32
Registriert: Do 26. Nov 2009, 22:29

Re: PLXINE-Unit

Beitrag von stacho »

Hallo theo,

besser spät als nie :-)

danke für deine Antwort. So gehts.

Hallo Pluto,

in deiner PLXine ist mir aufgefallen, dass du xine nicht sauber beendest und deinen Threat nicht freigibst. Wenn du etwas mit create erzeugst, musst du es auch selber freigeben. Probier mal folgendes:

destructor TPLXine.Destroy;
begin
// stop playback, dispose all stream-related resources
// Pxine_stream_t no longer valid when after this
xine_dispose (myXStream);
If myThread <> nil Then myThread.Free;
inherited Destroy;
end; // TPLXine.Destroy



Ich versuche weiterhin, die xine pas zu überarbeiten. Xine.h müsste ich durch haben aber in der xine.pas sind noch sehr viele typen und proceduren aus anderen xine-headern. Da bin ich noch dran.

Ich versuche gerade das c-Beispiel von der xine-homepage 1:1 in pascal zu übersetzen aber das läuft gar nicht. Ich werde es hier mal posten.

schöne grüße

Antworten