Kilka pytań o DSPack

0

Mam kilka pytań, co do DSPack. Używam komponentów: DSVideoWindowEx2 i FilterGraph.

  1. Czy da się pobrać pozycję i długość filmu, bez DSTrackBar?
  2. Jak ustawić aktualną pozycję filmu (nie chcę, aby zmieniało się ją na DSTrackBar)
  3. Jak pobrać oryginalną wysokość i szerokość filmu?
0

użyj funkcji AviFileInfo() z biblioteki VfW. Jest to funkcja Api więc szukaj jej opisu w SDK lub jesli masz Delphi 2005 to jest ona tam dość dobrze opisana.

Vfw:
http://ad.doubleclick.net/adi/N3263.Koders.com/B1390114.4;sz=160x600;ord=632443256547580109?
lub poszukaj na torry.

Z helpa :

AVIFileInfo
The AVIFileInfo function obtains information about an AVI file.

STDAPI AVIFileInfo(
PAVIFILE pfile,
AVIFILEINFO * pfi,
LONG lSize
);
Parameters
pfile - Handle to an open AVI file.
pfi - Pointer to the structure used to return file information. Typically, this parameter points to an AVIFILEINFO structure.
lSize - Size, in bytes, of the structure.
Return Values- Returns zero if successful or an error otherwise.

Remarks
The argument pfile is a pointer to an IAVIFile interface.

The AVIFILEINFO structure contains global information for an entire AVI file.

typedef struct {
DWORD dwMaxBytesPerSec;
DWORD dwFlags;
DWORD dwCaps;
DWORD dwStreams;
DWORD dwSuggestedBufferSize;
DWORD dwWidth;
DWORD dwHeight;
DWORD dwScale;
DWORD dwRate;
DWORD dwLength;
DWORD dwEditCount;
char szFileType[64];
} AVIFILEINFO;

dwMaxBytesPerSec
Approximate maximum data rate of the AVI file.

dwFlags
Applicable flags. The following flags are defined:

AVIFILEINFO_HASINDEX
The AVI file has an index at the end of the file. For good performance, all AVI files should contain an index.

AVIFILEINFO_MUSTUSEINDEX
The file index contains the playback order for the chunks in the file. Use the index rather than the physical ordering of the chunks when playing back the data. This could be used for creating a list of frames for editing.

AVIFILEINFO_ISINTERLEAVED
The AVI file is interleaved.

AVIFILEINFO_WASCAPTUREFILE
The AVI file is a specially allocated file used for capturing real-time video. Applications should warn the user before writing over a file with this flag set because the user probably defragmented this file.

AVIFILEINFO_COPYRIGHTED
The AVI file contains copyrighted data and software. When this flag is used, software should not permit the data to be duplicated.
dwCaps
Capability flags. The following flags are defined:

AVIFILECAPS_CANREAD
An application can open the AVI file with with the read privilege.

AVIFILECAPS_CANWRITE
An application can open the AVI file with the write privilege.

AVIFILECAPS_ALLKEYFRAMES
Every frame in the AVI file is a key frame.

AVIFILECAPS_NOCOMPRESSION
The AVI file does not use a compression method.
dwStreams
Number of streams in the file. For example, a file with audio and video has at least two streams.
dwSuggestedBufferSize
Suggested buffer size, in bytes, for reading the file. Generally, this size should be large enough to contain the largest chunk in the file. For an interleaved file, this size should be large enough to read an entire record, not just a chunk.
If the buffer size is too small or is set to zero, the playback software will have to reallocate memory during playback, reducing performance.

dwWidth
Width, in pixels, of the AVI file.
dwHeight
Height, in pixels, of the AVI file.
dwScale
Time scale applicable for the entire file. Dividing dwRate by dwScale gives the number of samples per second.
Any stream can define its own time scale to supersede the file time scale.

dwRate
Rate in an integer format. To obtain the rate in samples per second, divide this value by the value in dwScale.
dwLength
Length of the AVI file. The units are defined by dwRate and dwScale.
dwEditCount
Number of streams that have been added to or deleted from the AVI file.
szFileType
Null-terminated string containing descriptive information for the file type.

0 użytkowników online, w tym zalogowanych: 0, gości: 0