123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340 |
- #ifndef _nethfb_h
- #define _nethfb_h
- #include "duck_hfb.h"
- #ifndef NETHFB
- #define lHFB_GetDataSize HFB_GetDataSize
- #define lHFB_GetStreamingData HFB_GetStreamingData
- #define lHFB_ReleaseStreamingData HFB_ReleaseStreamingData
- #define lHFB_ReadData HFB_ReadData
- #define lHFB_WhatsAhead HFB_WhatsAhead
- #define lHFB_GetAudioInfo HFB_GetAudioInfo
- #define lHFB_GetInitialFrames HFB_GetInitialFrames
- #define lHFB_GetSamplesPerFrame HFB_GetSamplesPerFrame
- #define lHFB_GetFrameRates HFB_GetFrameRates
- #define lHFB_GetDRMData HFB_GetDRMData
- #define lHFB_LoadIndex HFB_LoadIndex
- #define lHFB_ParseFile HFB_ParseFile
- #define lHFB_Init HFB_Init
- #define lHFB_Exit HFB_Exit
- #define lHFB_FindFile HFB_FindFile
- #define lHFB_OpenFile HFB_OpenFile
- #define lHFB_SeekToIndex HFB_SeekToIndex
- #define lHFB_BeginLoadIndex HFB_BeginLoadIndex
- #define lHFB_FinishLoadIndex HFB_FinishLoadIndex
- #define lHFB_ReadMoreIndex HFB_ReadMoreIndex
- #define lHFB_ParseBigIndex HFB_ParseBigIndex
- #define lHFB_CloseFile HFB_CloseFile
- #define lHFB_GetFileInfo HFB_GetFileInfo
- #define lHFB_ResetStreams HFB_ResetStreams
- #define lHFB_GetStream HFB_GetStream
- #define lHFB_ReleaseStream HFB_ReleaseStream
- #define lHFB_GetStreamInfo HFB_GetStreamInfo
- #define lHFB_CreateBuffer HFB_CreateBuffer
- #define lHFB_DestroyBuffer HFB_DestroyBuffer
- #define lHFB_ResetBuffer HFB_ResetBuffer
- #define lHFB_SetBufferMode HFB_SetBufferMode
- #define lHFB_QueueOpenFile HFB_QueueOpenFile
- #define lHFB_GetBufferPerCentFull HFB_GetBufferPerCentFull
- #define lHFB_GetmovieSize HFB_GetmovieSize
- #define lHFB_InitBuffer HFB_InitBuffer
- #define lHFB_GetBufferSpace HFB_GetBufferSpace
- #define lHFB_FillBuffer HFB_FillBuffer
- #define lHFB_GetBufferStatus HFB_GetBufferStatus
- #define lHFB_FramestoNextKeyFrame HFB_FramestoNextKeyFrame
- #define lHFB_FrameToChunk HFB_FrameToChunk
- #define lHFB_PreviousKeyFrame HFB_PreviousKeyFrame
- #define lHFB_GetIndexFlags HFB_GetIndexFlags
- #define lHFB_AddIndexFlags HFB_AddIndexFlags
- #define lHFB_GetDataPosition HFB_GetDataPosition
- #define lHFB_ConditionBuffer HFB_ConditionBuffer
- #define lHFB_WalkFlags HFB_WalkFlags
- #define lHFB_isVideoKeyFrame HFB_isVideoKeyFrame
- #define lHFB_GetStreamParentBuffer HFB_GetStreamParentBuffer
- #define lHFB_GetStreamParentFile HFB_GetStreamParentFile
- #define lHFB_GetStreamRateAndScale HFB_GetStreamRateAndScale
- #define lHFB_GetStreamFCCs HFB_GetStreamFCCs
- #define lHFB_GetStreamSampleSize HFB_GetStreamSampleSize
- #define lHFB_GetLastError HFB_GetLastError
- #else
- #if defined(__cplusplus)
- extern "C" {
- #endif
- /* main HFB initialization and exit routines */
- int lHFB_Init(int ,int ,int );
- void lHFB_Exit(void);
- /* FWG 9-13-2000 */
- int lHFB_SeekToIndex(HFB_FILE_HANDLE FileHandle);
- int lHFB_BeginLoadIndex(HFB_BUFFER_HANDLE dckPtr, int size);
- int lHFB_FinishLoadIndex(HFB_BUFFER_HANDLE dckPtr, void *data, int size);
- /* open specified file, parse its header(s) and load the index */
- HFB_FILE_HANDLE lHFB_OpenFile(
- const char *fileName,
- HFB_BUFFER_HANDLE bufferHandle,
- unsigned int userData
- );
- /* the following three functions, findfile, parsefile and loadindex,
- are encapsulated by openfile, they are provided as a convenience
- for use on systems with asynchronous i/o */
- //HFB_FILE_HANDLE lHFB_FindFile(const char *fileName, unsigned int userData);
- int lHFB_ParseFile(
- HFB_FILE_HANDLE fileHandle,
- HFB_BUFFER_HANDLE bufferHandle
- );
- int lHFB_LoadIndex(
- HFB_FILE_HANDLE fileHandle,
- HFB_BUFFER_HANDLE bufferHandle
- );
- void lHFB_CloseFile(HFB_FILE_HANDLE fHnd);
- HFB_FILE_INFO *lHFB_GetFileInfo(HFB_FILE_HANDLE fileHandle);
- HFB_BUFFER_HANDLE lHFB_CreateBuffer(
- int sizeOfBuffer,
- int reserved
- );
- void lHFB_InitBuffer(
- HFB_BUFFER_HANDLE bufferHandle,
- HFB_FILE_HANDLE fileToLoad,
- int startFrame,
- int initialReadSize
- );
- int lHFB_FillBuffer(
- HFB_BUFFER_HANDLE bufferHandle,
- int maxToRead,
- int frameSyncCounter
- );
- void lHFB_DestroyBuffer(HFB_BUFFER_HANDLE bufferHandle);
- void lHFB_ResetStreams(HFB_BUFFER_HANDLE bufferHandle);
- int lHFB_SetBufferMode(
- HFB_BUFFER_HANDLE ,
- hfbBufferMode mode
- );
- int lHFB_GetBufferPerCentFull(HFB_BUFFER_HANDLE );
- int lHFB_GetmovieSize(HFB_BUFFER_HANDLE );
- int lHFB_GetBufferSpace(HFB_BUFFER_HANDLE );
- hfbBufferStatus lHFB_GetBufferStatus(HFB_BUFFER_HANDLE );
- int lHFB_ConditionBuffer(
- HFB_BUFFER_HANDLE bufferHandle,
- int bufferSize,
- int reserved);
- #define lHFB_ResetBuffer lHFB_ConditionBuffer
- /* get a stream reference handle */
- HFB_STREAM_HANDLE lHFB_GetStream(
- HFB_FILE_HANDLE fileHandle,
- const char *StreamNameOrNull,
- int streamNumber,
- unsigned int streamType);
- /* relinquish reference to stream */
- void lHFB_ReleaseStream(HFB_STREAM_HANDLE streamHandle);
- /* get a pointer to stream info struct */
- HFB_STREAM_INFO *lHFB_GetStreamInfo(HFB_STREAM_HANDLE );
- #define lHFB_GetStreamLength(strmh) \
- lHFB_GetStreamInfo(strmh)->lLength
- #define lHFB_GetStreamName(strmh) \
- lHFB_GetStreamInfo(strmh)->szName
- /* get pointer to buffered record and length */
- HFB_DATA_HANDLE lHFB_GetStreamingData(
- HFB_STREAM_HANDLE streamHandle,
- void **ptrToPtr,
- int *ptrToLength,
- hfbDirection directionToMove,
- int framesToMove
- );
- /* release buffer space occupied by record */
- void lHFB_ReleaseStreamingData(
- HFB_BUFFER_HANDLE bufferHandle,
- HFB_DATA_HANDLE recordToRelease);
- /* read data directly from a file into a
- supplied buffer, limit is set by initial value
- of *ptrToLength */
- int lHFB_ReadData(
- HFB_STREAM_HANDLE streamHandle,
- void *ptrToBuffer,
- int *ptrToLength,
- hfbDirection directionToMove,
- int framesToMove);
- int lHFB_FramestoNextKeyFrame(
- HFB_STREAM_HANDLE streamHandle,
- int recordHandle,
- int *numberOfRecordsSpanned
- );
- int lHFB_FrameToChunk(
- HFB_STREAM_HANDLE streamHandle,
- int frameNumber
- );
- /* get the frameNumber of the keyframe
- at or prior to the specified frameNumber */
- int lHFB_PreviousKeyFrame(
- HFB_STREAM_HANDLE streamHandle,
- int frameNumber
- );
- /* get the HFB index flags for the specified record/frame */
- int lHFB_GetIndexFlags(
- HFB_STREAM_HANDLE ,
- hfbFrameNumber frameNumberType,
- int recordHandleOrFrameNumber);
- /* add the HFB index flags for the specified record/frame */
- int lHFB_AddIndexFlags(
- HFB_STREAM_HANDLE ,
- hfbFrameNumber frameNumberType,
- int recordHandleOrFrameNumber,
- int flagsToAdd);
- /* get current data position
- video - frameNumber
- audio - sampleCount */
- int lHFB_GetDataPosition(
- HFB_STREAM_HANDLE streamHandle,
- HFB_DATA_HANDLE dataRecordHandle
- );
- /* get information about audio stream */
- DKWAVEFORM *lHFB_GetAudioInfo(
- HFB_STREAM_HANDLE nStream,
- int *NumChannels,
- int *SamplesPerSec,
- int *BytesPerSec,
- int *wFormat);
- /* get the amount of audio skew
- expressed in records */
- int lHFB_GetInitialFrames(
- HFB_STREAM_HANDLE videoStream,
- HFB_STREAM_HANDLE audioStream
- );
- /* get the number of audio frames elapsed
- during a single video frame */
- int lHFB_GetSamplesPerFrame(
- HFB_STREAM_HANDLE videoStream,
- HFB_STREAM_HANDLE audioStream
- );
- /* get video frame rate and
- calculated audio skew (in audio samples) */
- void lHFB_GetFrameRates(
- HFB_STREAM_HANDLE videoStream,
- HFB_STREAM_HANDLE audioStream,
- int *ptrToIntegerFrameRate,
- int *ptrToEstimatedAudioSampleSkew);
- /* */
- int lHFB_GetDRMData(
- HFB_FILE_HANDLE dckPtr,
- unsigned int* pOutEncFourCC,
- int* pOutLength,
- unsigned char** ppOutData);
- /*get pointer to stream information streuct */
- HFB_STREAM_INFO *lHFB_GetStreamInfo(HFB_STREAM_HANDLE );
- /* functions to retrieve parent buffer
- and file of a given stream*/
- HFB_BUFFER_HANDLE lHFB_GetStreamParentBuffer(HFB_STREAM_HANDLE );
- HFB_FILE_HANDLE lHFB_GetStreamParentFile(HFB_STREAM_HANDLE);
- /* used to precisely calculate rational frame rates
- for a specific stream */
- void lHFB_GetStreamRateAndScale(
- HFB_STREAM_HANDLE xStream,
- int *rate, int *scale
- );
- /* get stream type and handler fourCC codes,
- returns type (not handler) */
- unsigned int lHFB_GetStreamFCCs(
- HFB_STREAM_HANDLE xStream,
- unsigned int *type,
- unsigned int *handler
- );
- /* get the last error that occured in HFB */
- int lHFB_GetLastError(
- HFB_BUFFER_HANDLE bfHnd,
- int* lastErrorCode,
- char errorString[],
- size_t maxLen
- );
- /* get streamSampleSize, <= 0 means variable */
- int lHFB_GetStreamSampleSize(HFB_STREAM_HANDLE xStream);
- int lHFB_WhatsAhead(HFB_STREAM_HANDLE ,int ,int *);
- /* windows 95 dll system abstraction functions */
- void lHFB_Setmalloc(
- void *(*mallocFuncPtr)(unsigned int size)
- );
- void lHFB_Setcalloc(
- void *(*callocFuncPtr)(unsigned int size, unsigned int number)
- );
- void lHFB_Setfree(
- void (*freeFuncPtr)(void *)
- );
- void lHFB_Setopen(
- int (*openFuncPtr)(const char *, int,...)
- );
- void lHFB_Setclose(
- int (*closeFuncPtr)(int)
- );
- void lHFB_Setread(
- int (*readFuncPtr)(int,void *, unsigned int)
- );
- void lHFB_Setseek(
- int (*seekFuncPtr)(int,int,int)
- );
- #if defined(__cplusplus)
- }
- #endif
- #endif
- #endif
|