w32_av_lib.h
2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef _W32_AV_LIB_H
#define _W32_AV_LIB_H
#include "w32_av_types.h"
//
// Initialization/deinitialization API
//
// Every THREAD must call w32_AV_Initiailze() before using any A/V functions
extern kal_bool w32_AV_Initialize();
// Every THREAD must call w32_AV_Uninitiailze() after A/V functions are no
// longer needed
extern kal_bool w32_AV_Uninitialize();
//
// Audio API
//
extern AudioHandle w32_Audio_OpenFile(LPCWSTR filePath,
w32_Audio_UserCallback callback);
extern AudioHandle w32_Audio_OpenBuffer(const char *buffer,
int bufferSize,
w32_Audio_UserCallback callback);
extern kal_bool w32_Audio_Play(AudioHandle handle);
extern kal_bool w32_Audio_Stop(AudioHandle handle);
extern kal_bool w32_Audio_Seek(AudioHandle handle, kal_int64 position);
// In 100-nanosecond (i.e. 10^7 means one second)
extern kal_bool w32_Audio_GetCurrentPosition(AudioHandle handle,
kal_int64 *currentPosition);
extern kal_bool w32_Audio_GetDuration(AudioHandle handle,
kal_int64 *duration);
extern kal_bool w32_Audio_IsPlaybackFinished(AudioHandle handle);
extern kal_bool w32_Audio_GetBitrate(AudioHandle handle, kal_int64 *bitrate);
extern kal_bool w32_Audio_CloseFile(AudioHandle handle);
extern kal_bool w32_Audio_CloseBuffer(AudioHandle handle);
//
// Video API
//
extern kal_bool w32_Video_OpenFile(LPCWSTR filePath,
w32_Video_UserCallback callback);
extern kal_bool w32_Video_OpenBuffer(const char *buffer,
int bufferSize,
w32_Video_UserCallback callback);
extern kal_bool w32_Video_Play(char *frameBuffer,
int width,
int height,
w32_ColorDepth colorDepth,
kal_bool playAudio,
double rate);
extern kal_bool w32_Video_Stop();
extern kal_bool w32_Video_Seek(kal_int64 position);
// In 100-nanosecond (i.e. 10^7 means one second)
extern kal_bool w32_Video_GetCurrentPosition(kal_int64 *currentPosition);
extern kal_bool w32_Video_GetDuration(kal_int64 *duration);
extern kal_bool w32_Video_GetResolution(int *width, int *height);
extern kal_bool w32_Video_IsPlaybackFinished();
extern kal_bool w32_Video_CloseFile();
extern kal_bool w32_Video_CloseBuffer();
extern kal_bool w32_Video_PreviewFrame(char *frameBuffer,
int width,
int height,
w32_ColorDepth colorDepth,
kal_int64 position) ;
#endif // _W32_AV_LIB_H