Audio-Schnittstelle gesucht. ( gstreamer )
-
- Beiträge: 609
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: Audio-Schnittstelle gesucht. ( gstreamer )
Guten Morgen Mathias,
kannst du mir erklären wie ich die Datei gst einbinden muss damit ich deine Beispiele probieren kann? Ich hab die zwar in meinem Lazarus unter ....ccr/pas2js-rtl/compiler/packages/gstreamer gefunden. Da ist dann auch eine Makefile. Mir fehlt da einfach das Wissen um weiter zu kommen.
Viele Grüße
Bernd
kannst du mir erklären wie ich die Datei gst einbinden muss damit ich deine Beispiele probieren kann? Ich hab die zwar in meinem Lazarus unter ....ccr/pas2js-rtl/compiler/packages/gstreamer gefunden. Da ist dann auch eine Makefile. Mir fehlt da einfach das Wissen um weiter zu kommen.
Viele Grüße
Bernd
-
- Beiträge: 6955
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Audio-Schnittstelle gesucht. ( gstreamer )
Lazarus-Seitig eigentlich nur "uses gst".kannst du mir erklären wie ich die Datei gst einbinden muss damit ich deine Beispiele probieren kann?
Versuche mal dies auszuführen. Läuft (momentan) nur unter Linux.
Läuft dies, oder kommt da ein Fehler ?
Code: Alles auswählen
program project1;
const
{$ifdef Linux}
gstreamerlib = 'libgstreamer-1.0';
{$endif}
{$ifdef Windows}
gstreamerlib = 'gstreamer-1.0-0.dll';
{$endif}
GST_STATE_PLAYING = 4;
procedure gst_init(argc: Plongint; argv: PPPAnsiChar); cdecl; external gstreamerlib;
function gst_parse_launch(pipeline_description: PChar; error: Pointer): Pointer; cdecl; external gstreamerlib;
function gst_element_set_state(element: Pointer; state: longint): Integer; cdecl; external gstreamerlib;
procedure gst_object_unref(object_: pointer); cdecl; external gstreamerlib;
var
pipeline: Pointer;
begin
gst_init(@argc, @argv);
pipeline := gst_parse_launch('playbin uri=file:/home/tux/Schreibtisch/sound/test.mp3 ! volume', nil);
gst_element_set_state(pipeline, GST_STATE_PLAYING);
ReadLn;
gst_object_unref(pipeline);
end.
Da hast du gerade etwas interessantes entdeckt. Die ist ein Pfad für Webbroser Apps.....ccr/pas2js-rtl/compiler/packages/gstreamer
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 609
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: Audio-Schnittstelle gesucht. ( gstreamer )
Hallo,
wenn ich das teste kommt:
Viele Grüße
Bernd
PS: Hab eben nochmal geschaut installiert ist es in Mint.
wenn ich das teste kommt:
Und in den Beispielen von dir findet er bei mir die unit gst nicht. Bin unter Linux Mint.project1.lpr(29,1) Error: Error while linking
Viele Grüße
Bernd
PS: Hab eben nochmal geschaut installiert ist es in Mint.
-
- Beiträge: 6955
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Audio-Schnittstelle gesucht. ( gstreamer )
Du musst noch irgend eine libxxx-dev installieren.
Kannst du die ganze Fehlermeldung Posten.
Das steht sicher was von -Lxxx.
Kannst du die ganze Fehlermeldung Posten.
Das steht sicher was von -Lxxx.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 609
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: Audio-Schnittstelle gesucht. ( gstreamer )
ja, hab ich übersehen:
Warning: linker: /usr/bin/ld: -lgstreamer-1.0 kann nicht gefunden werden
-
- Beiträge: 609
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: Audio-Schnittstelle gesucht. ( gstreamer )
So jetzt hab ich die libgstreamer1.0-dev installiert. Jetzt kompilliert es ohne zu meckern.
Hören tu ich aber noch nix.
Edit: Hab jetzt einen Pfad auf meine Festplatte eingegeben. Musik ist zu hören!
Noch mal Edit: die unit gst wird nicht gefunden.
Viele Grüße
Bernd
Hören tu ich aber noch nix.
Edit: Hab jetzt einen Pfad auf meine Festplatte eingegeben. Musik ist zu hören!
Noch mal Edit: die unit gst wird nicht gefunden.
Viele Grüße
Bernd
-
- Beiträge: 609
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: Audio-Schnittstelle gesucht. ( gstreamer )
Hallo,
ich hab es nun in einer Trunk getestet. Da geht es, die Unit gst wird gefunden.
Viele Grüße
Bernd
ich hab es nun in einer Trunk getestet. Da geht es, die Unit gst wird gefunden.
Viele Grüße
Bernd
-
- Beiträge: 6955
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Audio-Schnittstelle gesucht. ( gstreamer )
Da hast recht, man findet diese Unit nur in der Trunk, wieso auch immer.wennerer hat geschrieben: So 8. Sep 2024, 11:51 Hallo,
ich hab es nun in einer Trunk getestet. Da geht es, die Unit gst wird gefunden.
Viele Grüße
Bernd
So aktuell scheint mir die unit gst nicht zu sein, es fehlen etliche Sachen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6955
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Audio-Schnittstelle gesucht. ( gstreamer )
Ich habe mein Testprogramm nun für Windows erweitert.
Es wird fehlerfrei kompiliert. Und es läuft ohne Crash durch.
Nur das Problem ist jetzt. das "gst_element_factory_make" und "gst_parse_launch" nil zurück gibt.
Einzig bei "gst_pipeline_new" bekomme ich einen gültigen Zeiger.
Unter Linux funktioniert alle wie erwartet und der Sound kommt.
Einer eine Idee, was da noch schief läuft ?
Die DLLs habe ich von hier https://gstreamer.freedesktop.org/download/#windows oberster Link.
Nachtrag: Auch in purem C das gleiche Problem, siehe Anhang . Somit ist Lazarus ausgeschlossen.
Es wird fehlerfrei kompiliert. Und es läuft ohne Crash durch.
Nur das Problem ist jetzt. das "gst_element_factory_make" und "gst_parse_launch" nil zurück gibt.
Einzig bei "gst_pipeline_new" bekomme ich einen gültigen Zeiger.
Unter Linux funktioniert alle wie erwartet und der Sound kommt.
Einer eine Idee, was da noch schief läuft ?
Die DLLs habe ich von hier https://gstreamer.freedesktop.org/download/#windows oberster Link.
Code: Alles auswählen
program project1;
const
{$ifdef Linux}
gstreamerlib = 'libgstreamer-1.0';
{$endif}
{$ifdef Windows}
gstreamerlib = 'gstreamer-1.0-0.dll';
{$endif}
GST_STATE_PLAYING = 4;
procedure gst_init(argc: Plongint; argv: PPPAnsiChar); cdecl; external gstreamerlib;
function gst_parse_launch(pipeline_description: PChar; error: Pointer): Pointer; cdecl; external gstreamerlib;
function gst_element_set_state(element: Pointer; state: longint): integer; cdecl; external gstreamerlib;
procedure gst_object_unref(object_: pointer); cdecl; external gstreamerlib;
function gst_pipeline_new(pipeline_description: PChar): Pointer; cdecl; external gstreamerlib;
function gst_element_factory_make(s, n: PChar): Pointer; cdecl; external gstreamerlib;
var
pipeline, Source, pipeline2: Pointer;
begin
gst_init(@argc, @argv);
// pipeline := gst_parse_launch('playbin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm', nil);
pipeline := gst_parse_launch('filesrc location=test.wav ! decodebin ! audioconvert ! autoaudiosink', nil);
// pipeline := gst_parse_launch('playbin uri=file:/home/tux/Schreibtisch/sound/test.mp3 ! volume', nil);
if pipeline = nil then begin
WriteLn('pipeline error');
end else begin
WriteLn('pipeline io.');
end;
Source := gst_element_factory_make('videotestsrc', 'source');
if Source = nil then begin
WriteLn('source error');
end else begin
WriteLn('source io.');
end;
pipeline2 := gst_pipeline_new('test');
if pipeline2 = nil then begin
WriteLn('pipeline error');
end else begin
WriteLn('pipeline io.');
end;
gst_element_set_state(pipeline, GST_STATE_PLAYING);
ReadLn;
gst_object_unref(pipeline);
end.
- Dateianhänge
-
main.c.zip
- (687 Bytes) 90-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6955
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Audio-Schnittstelle gesucht. ( gstreamer )
Ich bin mir ein Media-Player am coden.
Mit GTK4 arbeitet gstreamer hervorragend. Beides baut auf glib2 auf.
Mit der LCL mit GTK2 lief das ganze sehr instabil.
Mit Windows will das ganze (noch) nicht. Die GUI kommt, aber gstreamer macht mühe.
Mit GTK4 arbeitet gstreamer hervorragend. Beides baut auf glib2 auf.
Mit der LCL mit GTK2 lief das ganze sehr instabil.
Mit Windows will das ganze (noch) nicht. Die GUI kommt, aber gstreamer macht mühe.
- Dateianhänge
-
- Bildschirmfoto vom 2025-02-26 13-07-11.png (47.86 KiB) 3011 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot