vmsalbitstream.h
3.85 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#ifndef __VM_SAL_BITSTREAM__
#define __VM_SAL_BITSTREAM__
#include "vmswitch.h"
#ifdef __MRE_SAL_BITSTREAM__
#include "vmsys.h"
#include "vmbitstream.h"
/**
* (SAL 层函数)
* 以bitstream 方式打开音频资源。
*
* @param handle 打开的bitstream 句柄。
* @param audio_type 音频资源的类型。
* @param result_callback 音频回调函数。
*
* @return 返回VM_BITSTREAM_SUCCEED 表示成功,VM_BITSTREAM_FAILED 为失败。
*/
VMINT vm_sal_bitstream_audio_open(
VMINT* handle,
vm_bitstream_audio_cfg_struct *audio_type,
vm_bitstream_audio_result_callback callback);
VMINT vm_sal_bitstream_audio_open_pcm(VMINT* handle, vm_bitstream_pcm_audio_cfg_struct *audio_type, vm_bitstream_audio_result_callback callback);
/**
* (SAL 层函数)
* 关闭以bitstream 方式打开的音频文件。
*
* @param handle 由vm_bitstream_audio_open 打开的bitstream 句柄。
*
* @return 返回VM_BITSTREAM_SUCCEED 表示成功,VM_BITSTREAM_FAILED 为失败。
*/
VMINT vm_sal_bitstream_audio_close(VMINT handle);
/**
* (SAL 层函数)
* 根据bitstream 句柄获取音频缓冲结构体。
*
* @param handle 打开的bitstream 句柄。
* @param status 得到的音频缓冲结构体。
*
* @return 返回VM_BITSTREAM_SUCCEED 表示成功,VM_BITSTREAM_FAILED 为失败。
*/
VMINT vm_sal_bitstream_audio_get_buffer_status(
VMINT handle,
vm_bitstream_audio_buffer_status *status);
/**
* (SAL 层函数)
* 将指定大小的音频数据写入音频缓冲区内,并通过参数used_size 验证真实写入数据大小。
*
* @param handle 打开的bitstream 句柄。
* @param buffer 待写入音频缓冲区的内存地址指针。
* @param buffer_size 要写入的缓冲的字节数。
* @param used_size 实际写入缓冲的字节数。
*
* @return 返回VM_BITSTREAM_SUCCEED 表示成功,VM_BITSTREAM_FAILED 为失败。
*/
VMINT vm_sal_bitstream_audio_put_data(
VMINT handle,
VMUINT8 *buffer,
VMUINT buffer_size,
VMUINT *written);
/**
* (SAL 层函数)
* 将指定时间的音频数据写入音频缓冲区内,如果数据大小超过缓冲区将导致失败。
*
* @param handle 打开的bitstream 句柄。
* @param buffer 待写入音频缓冲区的数据指针。
* @param buffer_size 要写入的缓冲的大小。
* @param used_size 要写入缓冲的音频时间(单位:毫秒)。
*
* @return 返回VM_BITSTREAM_SUCCEED 表示成功,VM_BITSTREAM_FAILED 为失败。
*/
VMINT vm_sal_bitstream_audio_put_frame(
VMINT handle,
VMUINT8 *buffer,
VMUINT buffer_size,
VMUINT timestamp);
/**
* (SAL 层函数)
* 开始播放BitStream Audio 音频。
*
* @param handle 要播放的bitstream 句柄。
* @param para 播放音频时参数结构体。
*
* @return 返回VM_BITSTREAM_SUCCEED 表示成功,VM_BITSTREAM_FAILED 为失败。
*/
VMINT vm_sal_bitstream_audio_start(
VMINT handle,
vm_bitstream_audio_start_param *para);
/**
* (SAL 层函数)
* 停止播放BitStream Audio 音频。
*
* @param handle 要停止播放的bitstream 句柄。
*
* @return 返回VM_BITSTREAM_SUCCEED 表示成功,VM_BITSTREAM_FAILED 为失败。
*/
VMINT vm_sal_bitstream_audio_stop(VMINT handle);
/**
* (SAL 层函数)
* 获取当前播放时间。
*
* @param handle 要获取播放时间的bitstream 句柄。
* @param current_time 获得的当前播放时间(单位:毫秒)
*
* @return 返回VM_BITSTREAM_SUCCEED 表示成功,VM_BITSTREAM_FAILED 为失败。
*/
VMINT vm_sal_bitstream_audio_get_play_time(
VMINT handle,
VMUINT* current_time);
VMINT stub_bitstream_audio_open(VMINT* handle, vm_bitstream_audio_cfg_struct *audio_type, vm_bitstream_audio_result_callback callback);
VMINT stub_bitstream_audio_close(VMINT handle);
VMINT stub_bitstream_audio_get_buffer_status( VMINT handle, vm_bitstream_audio_buffer_status *status);
VMINT stub_bitstream_audio_put_data(VMINT handle,VMUINT8* buffer,VMUINT buffer_size,VMUINT* written);
VMINT stub_bitstream_audio_put_frame(VMINT handle, VMUINT8* buffer, VMUINT buffer_size,VMUINT timestamp);
VMINT stub_bitstream_audio_start(VMINT handle, vm_bitstream_audio_start_param *para);
VMINT stub_bitstream_audio_stop(VMINT handle);
VMINT stub_bitstream_audio_get_play_time(VMINT handle, VMUINT* current_time);
#endif /* __VM_SAL_BITSTREAM__ */
#endif