Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w ramach Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w programie Media Foundation zamiast DirectShow, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]
Nieskompresowane wideo to sekwencja map bitowych odtwarzanych w szybkim odstępie czasu, zwykle w tempie około 30 klatek na sekundę. Ponieważ większość wideo wprowadza się do wykresu filtru DirectShow w skompresowanym formacie, strumień wideo zazwyczaj przechodzi przez dekoder do dekompresji. Wiele dekoderów wyprowadza dane w formacie YUV, pozostawiając ostateczną konwersję na RGB sprzętowi wideo tuż przed renderowaniem. Jeśli dekoder używa przyspieszania wideo DirectX, sprzęt wideo wykonuje dodatkową pracę w celu dekodowania obrazu. W związku z tym ostateczna dekompresja map bitowych może nie być wykonywana, dopóki dane nie dotrą do sprzętu wideo.
Jednak aby wykonać wiele typów analizy, przetwarzania lub edytowania wideo, często konieczna jest praca z nieskompresowanymi mapami bitowymi w formacie RGB lub YUV przed ich renderowaniem lub zapisem do pliku. Ta praca jest zazwyczaj wykonywana w ramach filtru transformacji opartego na klasie bazowej CTransformFilter, szczególnie w metodzie Transform. Ta metoda odbiera wskaźnik do obiektu IMediaSample, który hermetyzuje dane wideo. Metoda IMediaSample::GetPointer zwraca wskaźnik do pierwszego bajtu danych pierwotnych. W przypadku nieskompresowanych ramek te dane składają się z pikseli, do których można uzyskać dostęp lub zmodyfikować bezpośrednio przez filtr. Poniższe sekcje zawierają podstawowe informacje, które pomogą Ci efektywnie pracować z danymi DIB w ten sposób.
Notatka
Bity można również modyfikować przy użyciu funkcji GDI, GDI+, DirectDraw lub Direct3D, ale te techniki wykraczają poza zakres tego artykułu.
Ta sekcja zawiera następujące tematy: