Autor Beitrag
gispos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 94

WIN 7
XE10, D2007
BeitragVerfasst: Do 29.11.07 17:41 
Hallo zusammen, mich quält folgendes Problem:
Bilder werden z.B. über Avisynth.dll aus Videos geladen, solange das Video nicht korrupt ist, funktioniert dies auch Anstandslos.
Probleme macht die gleiche Routine wenn sie aus einem gesonderten Thread ohne Synchronize ausgeführt werden soll.
Auch macht jede Routine die in einem Thread auf Windows-DirectShow Funktionen zugreift Probleme.
Ein Aufruf im Thread von CriticalSection.Acquire brachte da bisher noch keine Verbesserungen.

Weiß jemand Abhilfe, oder hat Vorschläge hierzu?
Gruß gispos
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Do 20.12.07 20:38 
Bist du dir sicher, dass du damit nicht den Grundsatz verletzt, dass der VCL-Mainthread seine Oberfläche zeichnen muss?

Ich kenne mich mit DirectX nciht so gut aus. Aber sollte das Ding die VCL berühren (was ja nciht unbedingt aus der Luft gegriffen sein wird, denke ich mal), dann muss dieser Vorgang im Mainthread ablaufen.

Gruß
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
gispos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 94

WIN 7
XE10, D2007
BeitragVerfasst: Do 15.05.08 07:00 
user profile iconalias5000 hat folgendes geschrieben:
Bist du dir sicher, dass du damit nicht den Grundsatz verletzt, dass der VCL-Mainthread seine Oberfläche zeichnen muss?


Ja, denn gezeichnet wird da gar nichts, es wird nur auf den Speicherbereich des
Frame zugegriffen, der dann gespeichert werden soll. Also Frame auslesen, da gibt es dann natürlich diverse Möglichkeiten. Direct über's DIB oder HBitmap etc.

Habe es aber über DirectShow aufgegeben. Zu viele Probleme, und falsche Rückgaben.
Mache es jetzt über eine ffmpeg.dll.

Grüße gispos