PeteProgram
Mitglied
Hallo,
ich hab folgendes Problem:
Für ein Projekt bastel ich mir einen SampleGrabber mit der DirectShowLib Version 2. Jetzt will ich dem Samplegrabber die Auflösung mitteilen, was aber nicht geht, ich mach das so:
Dummerweise geht das so nicht, die Auflösung bleibt immer Standard: 800x600.
Kein Fehler kein nix - Weiß jemand warum das nicht geht?
ich hab folgendes Problem:
Für ein Projekt bastel ich mir einen SampleGrabber mit der DirectShowLib Version 2. Jetzt will ich dem Samplegrabber die Auflösung mitteilen, was aber nicht geht, ich mach das so:
Code:
int hr;
AMMediaType media = new AMMediaType();
hr = sampleGrabber.GetConnectedMediaType(media);
DsError.ThrowExceptionForHR(hr);
VideoInfoHeader videoInfoHeader = (VideoInfoHeader)Marshal.PtrToStructure(media.formatPtr, typeof(VideoInfoHeader));
if (null == videoInfoHeader) {
Program.error("VideoInfoHeader is NULL");
return;
}
videoInfoHeader.BmiHeader.Width = 320;
videoInfoHeader.BmiHeader.Height = 240;
Marshal.StructureToPtr(videoInfoHeader, media.formatPtr, false);
hr = sampleGrabber.SetMediaType(media);
DsError.ThrowExceptionForHR(hr);
DsUtils.FreeAMMediaType(media);
media = null;
Dummerweise geht das so nicht, die Auflösung bleibt immer Standard: 800x600.
Kein Fehler kein nix - Weiß jemand warum das nicht geht?