Initial community commit
This commit is contained in:
340
Src/libvp6/corelibs/include/nethfb.h
Normal file
340
Src/libvp6/corelibs/include/nethfb.h
Normal file
@@ -0,0 +1,340 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user