AGB  ·  Datenschutz  ·  Impressum  







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

MJPEG Stream anzeigen

Ein Thema von philiph · begonnen am 26. Aug 2014 · letzter Beitrag vom 28. Aug 2014
Antwort Antwort
Seite 2 von 2     12   
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: MJPEG Stream anzeigen

  Alt 27. Aug 2014, 13:19
Delphi-Quellcode:
uses
  System.Diagnostics
...
var
  LStopWatch : TStopwatch;
begin
   LStopWatch := System.Diagnostics.TStopwatch.StartNew;

   jpeg.LoadfromStream(jpegstream);
   image1.Picture.Bitmap.assign(JPEG)
   // oder
   image1.canvas.draw(0,0,jpeg);

   LStopWatch.Stop;
   Caption := IntToStr(LStopWatch.ElapsedMilliseconds);
Was kommen denn da so wie Zeiten bei rum?
  Mit Zitat antworten Zitat
philiph

Registriert seit: 16. Dez 2008
10 Beiträge
 
#12

AW: MJPEG Stream anzeigen

  Alt 27. Aug 2014, 20:57
Leider lässt sich die Laufzeit so einfach nicht messen, dafür geht es zu schnell das Ergebnis ist immer Null. Wenn man wirklich nur einen Durchlauf messen will, müsste man wohl den Assembler bemühen.
Wenn man es in einer for-Schleife mehrfach ausführt, dann steigt die Ausführungszeit linear mit der maximalen Anzahl der Durchläufe unabhängig von der Art es zu zeichnen.

Das Problem scheint wirklich, dass das eigentliche Dekodieren der Jpegs bei TJPEG CPU basiert arbeitet, was bei einer so hohen Wiederholrate nicht mehr klappt.

Leider habe ich auch noch keine vernünftigen Wrapper für LibVCL gefunden, bei der man ohne weiteres Streams laden kann.
Kennt vielleicht jemand eine Möglichkeit mit DSPack ein Jpeg aus einem Stream zu laden.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: MJPEG Stream anzeigen

  Alt 28. Aug 2014, 09:36
Leider lässt sich die Laufzeit so einfach nicht messen, dafür geht es zu schnell das Ergebnis ist immer Null.
Das kann nicht sein, da muss dir ein Fehler unterlaufen sein.
Bitte kontrolliere das nochmal.
Ggf. schreibe per OutputDebugString ins Event Log, anstatt per Formular-Eigenschaften die Zeit auszugeben.

Da müssen mindestens 1 bis 15 ms bei rum kommen.

Denn wenn die verstrichene Zeit um die 0 ms betragen würde (also sich im Bereich von Nanosekunden bewegt), dann hättest du auch keine Probleme bei einer Bildrate von 30 FPS -> 33 ms von Bild zu Bild.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 17:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz