Werbung: SecurityConsole.de verwaltet Ihre Computer mit Security Essentails aus der Cloud!
30 Tage kostenfrei testen und 20% Rabatt für Ihre Bestellung mit Promocode: WBF2685582
(Promocode gültig bis 31.12.2011)

Group:  English: Entertainment » microsoft.public.windowsmedia.sdk
Thread: Error Creating Windows Advanced Profile File Using Bitmaps

HTVi
TV Discussion Newsgroups

Error Creating Windows Advanced Profile File Using Bitmaps
Matthew Sannes 12/5/2008 9:01:00 PM
I have a stream a bitmaps coming from a video camera and I would like to
create a compressed Windows Media 9 Advance Profile video file out of them
but I am getting an error I can not figure out. I'm writing this in C# .NET
and I'm using the wrapper library currently available on sourceforge.

I am getting exception 0xC00D0BB8 on the GetInputFormatCount method call.

public MediaWriter(string filePath, Size frameSize, int frameRate, int
quality)
{
IWMProfileManager profileManager;
WMUtils.WMCreateProfileManager(out profileManager);

int codecCount;

((IWMCodecInfo3)profileManager).GetCodecInfoCount(MediaType.Video, out
codecCount);

IWMStreamConfig videoStream;
//Windows Media Video 9 Advanced Profile
((IWMCodecInfo3)profileManager).GetCodecFormat(MediaType.Video,
codecCount - 1, 0, out videoStream);
videoStream.SetStreamNumber(1);
videoStream.SetBitrate(0);


((IWMPropertyVault)videoStream).SetProperty(Constants.g_wszVBREnabled,
AttrDataType.BINARY, BitConverter.GetBytes(true),
BitConverter.GetBytes(true).Length);

((IWMPropertyVault)videoStream).SetProperty(Constants.g_wszVBRQuality,
AttrDataType.DWORD, BitConverter.GetBytes(quality),
BitConverter.GetBytes(quality).Length);

((IWMPropertyVault)videoStream).SetProperty(Constants.g_wszVBRBitrateMax,
AttrDataType.DWORD, BitConverter.GetBytes(0),
BitConverter.GetBytes(0).Length);

((IWMPropertyVault)videoStream).SetProperty(Constants.g_wszVBRBufferWindowMax,
AttrDataType.DWORD, BitConverter.GetBytes(0),
BitConverter.GetBytes(0).Length);

int mediaTypeSize = 0;
((IWMVideoMediaProps)videoStream).GetMediaType(null, ref
mediaTypeSize);
AMMediaType mediaType = new AMMediaType();
mediaType.formatSize = mediaTypeSize;
((IWMVideoMediaProps)videoStream).GetMediaType(mediaType, ref
mediaTypeSize);
VideoInfoHeader videoInfoHeader =
(VideoInfoHeader)Marshal.PtrToStructure(mediaType.formatPtr,
typeof(VideoInfoHeader));
videoInfoHeader.SrcRect = new Rectangle(0, 0, frameSize.Width,
frameSize.Height);
videoInfoHeader.TargetRect = new Rectangle(0, 0,
frameSize.Width, frameSize.Height);
videoInfoHeader.BitRate = 0;
videoInfoHeader.AvgTimePerFrame = 10000000L / (long)frameRate;
videoInfoHeader.BmiHeader.Width = frameSize.Width;
videoInfoHeader.BmiHeader.Height = frameSize.Height;
((IWMVideoMediaProps)videoStream).SetMediaType(mediaType);
WMUtils.FreeWMMediaType(mediaType);

IWMProfile profile;
profileManager.CreateEmptyProfile(WMVersion.V9_0, out profile);

profile.AddStream(videoStream);

WMUtils.WMCreateWriter(IntPtr.Zero, out m_wmWriter);
m_wmWriter.SetProfile(profile);
m_wmWriter.SetOutputFilename(filePath);

int formatCount = 0;
m_wmWriter.GetInputFormatCount(0, out formatCount);

m_wmWriter.BeginWriting();
}


Home | Search | Terms | Imprint Contact
Newsgroups Reader - provided by WiredBox.Net
Suche nach Orten, Städten, Postleitzahlen, Vorwahlen, Kfz-Kennzeichen