DirectShow - Datenanordnung im Sample
-
Nachdem meine Testumgebung läuft, kann ich mich wieder dem Filter selber widmen

Ich habe als Mediatyp für den Datenaustausch eingestellt (bzw. die CheckInputType() hat alles zurückgewiesen, was nicht so aussah):
- majortype=MEDIATYPE_Video
- subtype=MEDIASUBTYPE_RGB24
- formattype=FORMAT_VideoInfo
Nun kommen meine Daten in der Transform()-Methode an:
HRESULT Filter::Transform(IMediaSample* pSample) { BYTE* data; pSample->getData(&data); ... }In welcher Anordnung stehen jetzt meine Bild-Informationen in diesem BYTE-Array? (z.B. wo muß ich hingreifen, um den Rot-Kanal für Pixel x=10,y=100 zu bekommen?)
-
Schau mal unter "What is" bei Google.
Unter "File Typ" gibts auch was.
-
Ich will ja nicht unhöflich klingen, aber beim PlatformSDK (worin DirectShow enthalten ist) liegt eine dicke Doku drin.
Ich kopiere (mal wieder) den Inhalt hier rein (bzw. den Ausschnitt, den ich für wichtig erachte):

Uncompressed RGB Video Subtypes
The following subtypes define uncompressed RGB formats.RGB Formats With No Alpha Channel
GUID Description
...
MEDIASUBTYPE_RGB24 RGB, 24 bpp
...For non-palettized formats, the color of each pixel is specified directly; the memory layout depends on the bit depth:
@ RGB 555 [...]
@ For RGB 24, every pixel is an RGBTRIPLE. Each color is one byte, with a value from 0 to 255, inclusive. The memory layout is:
Byte 0 1 2 Value Blue Green Red@ For RGB 32, [...]
Nachzulesen unter: ms-help://MS.PSDKSVR2003SP1.1033/directshow/htm/uncompressedrgbvideosubtypes.htm

-
Sgt. Nukem schrieb:
Ich will ja nicht unhöflich klingen, aber beim PlatformSDK (worin DirectShow enthalten ist) liegt eine dicke Doku drin.
Ja, aber darin muß man sich erst einmal zurechtfinden

(und dann noch mitbekommen, daß (und wo) man sich bei der Umrechnung verknotet hat)
*nächsten Punkt abhakt* So langsam komme ich voran - fehlt noch die Synchronisation mit der Abholfunktion und dann die Memory-Leaks meiner Testanwendung.