ich habe hier folgenden Code der schon lange funktioniert und produktiv verwendet wird.
Code: Alles auswählen
Filter.BaseFilter.Moniker := SysDev.GetMoniker(SelDevice);
Filter.FilterGraph := FilterGraph;
FilterGraph.Active := true;
PinList := TPinList.Create(Filter as IBaseFilter); //<---- Hier !!!!!!!!!!!!!!!!
VideoFormats.Clear;
VideoMediaTypes.Assign(PinList.First);
for i := 0 to VideoMediaTypes.Count - 1 do begin
VideoFormats.Items.Add(VideoMediaTypes.MediaDescription[i]);
MediaStr:= VideoMediaTypes.MediaDescription[i];
MediaGUIDstr:= GUIDToString(VideoMediaTypes.Items[i].FormatType);
if (MediaStr = NameFormat) then begin
SelMedia:= i;
end ;
//if IsEqualGUID(VideoMediaTypes.Items[i].FormatType,StringToGUID(co_Media)) then begin
// SelMedia:= i;
//end ;
end;
Plötzlich bekomme ich hier einen Runtime 219 'Invalid type cast' ZUR Laufzeit. Es wird der aktuelle fpc vom trunk verwendet (wiedermal - leider).
Hat es in letzter Zeit (ca. 3 Monate) da irgendwelche Änderungen gegeben die ich verschlafen habe ? Es ist mir nur hier an dieser speziellen Stelle aufgefallen.
Das Problem betrifft hier Sachen die DirectX bzw. DSPack verwenden.
Andreas