FrameSize mit DirectShowLib

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:

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?
 
Zurück