Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: xevuel
Biblioteki C/C++

AVIFileCreateStream

[funkcja] Tworzy nowy strumień w pliku *.avi.

Składnia

C/C++
#include <vfw.h>

STDAPI AVIFileCreateStream(
PAVIFILE ppfile,
PAVISTREAM * ppavi,
AVISTREAMINFO * psi
);

Argumenty

ArgumentOpis
ppfileUchwyt do otwartego pliku *.avi
ppaviWskaźnik na interfejs nowego strumienia
psiWskaźnik na strukturę zawierającą informacje o nowym strumieniu

Zwracana wartość

Funkcja zwraca 0, jeśli jej działanie zakończyło się sukcesem, lub kod błędu w przeciwnym wypadku. Jeśli plik nie został otwarty do zapisu, funkcja zwraca AVIERR_READONLY.

Opis szczegółowy

Funkcja AVIFileCreateStream tworzy nowy strumień, w którym po skompresowaniu funkcją AVIMakeCompressedStream będzie można zapisać dane.
C/C++
IAVIFile * pfile;
IAVIStream * ps;
HBITMAP hbm;

//...
// tutaj ładowanie bitmapy do pamięci. Uwaga! Jeśli otwieramy bitmapę z pliku, musimy użyć flagi LR_CREATEDIBSECTION!
//...

DIBSECTION dibs;
int sbm = GetObject( hbm, sizeof( dibs ), & dibs );
if( sbm != sizeof( DIBSECTION ) )
//Wystąpił błąd

     AVIFileInit();

HRESULT hr = AVIFileOpen( & pfile, "plik.avi", OF_WRITE | OF_CREATE, NULL );

AVISTREAMINFO strhdr;
ZeroMemory( & strhdr, sizeof( strhdr ) );
strhdr.fccType = streamtypeVIDEO; // typ strumienia
strhdr.fccHandler = 0;
strhdr.dwScale = 1000; //Dzielenie dwRate przez dwScale daje ilość klatek na sekundę
strhdr.dwRate = 1000;
strhdr.dwSuggestedBufferSize = dibs.dsBmih.biSizeImage;
SetRect( & strhdr.rcFrame, 0, 0, dibs.dsBmih.biWidth, dibs.dsBmih.biHeight );
hr = AVIFileCreateStream( pfile, & ps, & strhdr );
if( hr != AVIERR_OK )
{
    //Wystąpił błąd
}

//ps zawiera nieskompresowany strumień

//Zwalniamy pamięć

AVIStreamRelease( ps );
AVIFileRelease( pfile );
AVIFileExit();

Wymagania

Minimalny obsługiwany klientWindows 2000 Professional
Minimalny obsługiwany serwerWindows 2000 Server
NagłówekVfh.h
BibliotekaVfw32.lib
DLLAvifil32.dll
Nazwy UNICODE i ANSIAVIFileCreateStreamW (UNICODE) i AVIFileCreateStreamA (ANSI)

Linki zewnętrzne