AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Firemonkey - ungültige Zeigeroperation

Ein Thema von blawen · begonnen am 16. Feb 2014 · letzter Beitrag vom 26. Feb 2014
 
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#7

AW: Firemonkey - ungültige Zeigeroperation

  Alt 20. Feb 2014, 17:00
Leider bewirkt die von Sir Rufo vorgeschlagene Änderung keine Besserung. Nach einigen Sekunden oder in 1-2 Minuten stürzt das Programm ab.

So ganz verstanden habe ich die von EMBA vorgeschlagene Lösung sowieso nicht. SampleBufferReady ist ja eine Ereignisroutine des Hauptthread.

In der Hilfe steht dazu: "Mit einer Ereignisbehandlungsroutine für OnSampleBufferReady können Sie die Aktionen angeben, die ausgeführt werden, wenn der Ausschnittspuffer bereit ist."

Warum muss ich jetzt den Zugriff über einen Thread auf den Buffer machen? Überlaufgefahr? Eigentlich doch nicht, denn ich rufe den Buffer doch ab, wenn ich ihn brauche. In der Beschreibung zu "DoSampleBufferToBitmap" bzw. "SampleBufferToBitmap" steht auch nichts davon, dass ich das threadden müsste.

Wie auch immer, hier nun einer Variante, die bei mir seit ca. einer halben Stunde ohne Probleme läuft:
Delphi-Quellcode:
procedure TForm2.SampleBufferReady(Sender: TObject; const ATime: TMediaTime);
begin
  //TThread.Synchronize(TThread.CurrentThread, SampleBufferSync);
  
   VideoCamera.SampleBufferToBitmap(Image1.Bitmap, True);

   sleep (100);

  //Resize the image so that the video is buffered in its original size
  if (Image1.Width <> Image1.Bitmap.Width) or (Image1.Height <> Image1.Bitmap.height) then begin
    Image1.Width:=Image1.Bitmap.Width;
    Image1.Height:=Image1.Bitmap.Height;
  end;
end;
Sleep (100) wird aber benötigt, sonst kracht das Programm dann irgendwann doch mal ab.

Immerhin reduziert sich die Prozessorlast mit dieser Variante auf ca. 3-6% (vorher 12%), die Darstellung ist allerdings etwas verzögert.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz