• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# lowpower_video_sink.h
2
3## 概述
4
5定义LowPowerVideoSink接口。使用LowPowerVideoSink提供的Native API进行视频通路的低功耗播放。
6
7**引用文件:** <multimedia/player_framework/lowpower_video_sink.h>
8
9**库:** liblowpower_avsink.so
10
11**系统能力:** SystemCapability.Multimedia.Media.LowPowerAVSink
12
13**起始版本:** 20
14
15**相关模块:** [LowPowerVideoSink](capi-lowpowervideosink.md)
16
17## 汇总
18
19### 函数
20
21| 名称 | 描述 |
22| -- | -- |
23| [OH_LowPowerVideoSink* OH_LowPowerVideoSink_CreateByMime(const char* mime)](#oh_lowpowervideosink_createbymime) | 创建低功耗LowPowerVideoSink。 |
24| [OH_AVErrCode OH_LowPowerVideoSink_Configure(OH_LowPowerVideoSink* sink, const OH_AVFormat* format)](#oh_lowpowervideosink_configure) | 配置LowPowerVideoSink,需要在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)前完成。 |
25| [OH_AVErrCode OH_LowPowerVideoSink_SetParameter(OH_LowPowerVideoSink* sink, const OH_AVFormat* format)](#oh_lowpowervideosink_setparameter) | 为LowPowerVideoSink设置参数,支持[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)后动态设置。 |
26| [OH_AVErrCode OH_LowPowerVideoSink_GetParameter(OH_LowPowerVideoSink* sink, OH_AVFormat* format)](#oh_lowpowervideosink_getparameter) | 获取LowPowerVideoSink的相关参数。 |
27| [OH_AVErrCode OH_LowPowerVideoSink_SetVideoSurface(OH_LowPowerVideoSink* sink, const OHNativeWindow* surface)](#oh_lowpowervideosink_setvideosurface) | 为LowPowerVideoSink设置渲染画面窗口。 需要在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)前完成。 |
28| [OH_AVErrCode OH_LowPowerVideoSink_Prepare(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_prepare) | 开始LowPowerVideoSink准备,需要在[OH_LowPowerVideoSink_SetSyncAudioSink](#oh_lowpowervideosink_setsyncaudiosink)之后调用。 |
29| [OH_AVErrCode OH_LowPowerVideoSink_StartDecoder(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_startdecoder) | 开始LowPowerVideoSink解码,在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)后或非播放中[OH_LowPowerVideoSink_SetTargetStartFrame](#oh_lowpowervideosink_settargetstartframe)后调用。<br> 启动成功后,LowPowerVideoSink将开始上报[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件。 |
30| [OH_AVErrCode OH_LowPowerVideoSink_RenderFirstFrame(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_renderfirstframe) | 渲染LowPowerVideoSink解码出的第一帧,在[OH_LowPowerVideoSink_StartDecoder](#oh_lowpowervideosink_startdecoder)之后调用。 |
31| [OH_AVErrCode OH_LowPowerVideoSink_StartRenderer(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_startrenderer) | 开始LowPowerVideoSink渲染,在[OH_LowPowerVideoSink_StartDecoder](#oh_lowpowervideosink_startdecoder)之后调用。 |
32| [OH_AVErrCode OH_LowPowerVideoSink_Pause(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_pause) | 暂停LowPowerVideoSink,在[OH_LowPowerVideoSink_StartRenderer](#oh_lowpowervideosink_startrenderer)或[OH_LowPowerVideoSink_Resume](#oh_lowpowervideosink_resume)后调用。<br> 暂停成功后,LowPowerVideoSink将暂停[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件的上报。 |
33| [OH_AVErrCode OH_LowPowerVideoSink_Resume(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_resume) | 恢复LowPowerVideoSink,在[OH_LowPowerVideoSink_Pause](#oh_lowpowervideosink_pause)后调用。<br> 恢复成功后,LowPowerVideoSink将恢复[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件的上报。 |
34| [OH_AVErrCode OH_LowPowerVideoSink_Flush(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_flush) | 清除LowPowerVideoSink中所有解码器和渲染缓存的输入输出数据。<br> 此接口不建议在[OH_LowPowerVideoSink_StartRenderer](#oh_lowpowervideosink_startrenderer)或[OH_LowPowerVideoSink_Resume](#oh_lowpowervideosink_resume)之后调用。<br> 需要注意的是,如果编解码器之前已输入数据,则需要重新输入编解码器数据。 |
35| [OH_AVErrCode OH_LowPowerVideoSink_Stop(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_stop) | 停止LowPowerVideoSink。 |
36| [OH_AVErrCode OH_LowPowerVideoSink_Reset(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_reset) | 重置LowPowerVideoSink。<br> 如果要重新使用该实例,需要调用[OH_LowPowerVideoSink_Configure](#oh_lowpowervideosink_configure)完成配置。 |
37| [OH_AVErrCode OH_LowPowerVideoSink_Destroy(OH_LowPowerVideoSink* sink)](#oh_lowpowervideosink_destroy) | 清理解码器内部资源,销毁LowPowerVideoSink实例。不能重复销毁。 |
38| [OH_AVErrCode OH_LowPowerVideoSink_SetSyncAudioSink(OH_LowPowerVideoSink* videoSink, OH_LowPowerAudioSink* audioSink)](#oh_lowpowervideosink_setsyncaudiosink) | LowPowerVideoSink设置用于音画同步的AudioStreamer。 |
39| [OH_AVErrCode OH_LowPowerVideoSink_SetTargetStartFrame(OH_LowPowerVideoSink* sink, const int64_t framePts, OH_LowPowerVideoSink_OnTargetArrived onTargetArrived, const int64_t timeoutMs,void* userData)](#oh_lowpowervideosink_settargetstartframe) | 为LowPowerVideoSink设置目标渲染帧。 |
40| [OH_AVErrCode OH_LowPowerVideoSink_SetPlaybackSpeed(OH_LowPowerVideoSink* sink, const float speed)](#oh_lowpowervideosink_setplaybackspeed) | 为LowPowerVideoSink设置播放倍速。 |
41| [OH_AVErrCode OH_LowPowerVideoSink_ReturnSamples(OH_LowPowerVideoSink* sink, OH_AVSamplesBuffer* samples)](#oh_lowpowervideosink_returnsamples) | 给LowPowerVideoSink输入buffer。 |
42| [OH_AVErrCode OH_LowPowerVideoSink_RegisterCallback(OH_LowPowerVideoSink* sink, OH_LowPowerVideoSinkCallback* callback)](#oh_lowpowervideosink_registercallback) | 为LowPowerVideoSink注册回调。 |
43| [OH_LowPowerVideoSinkCallback* OH_LowPowerVideoSinkCallback_Create(void)](#oh_lowpowervideosinkcallback_create) | 创建OH_LowPowerVideoSinkCallback。 |
44| [OH_AVErrCode OH_LowPowerVideoSinkCallback_Destroy(OH_LowPowerVideoSinkCallback* callback)](#oh_lowpowervideosinkcallback_destroy) | 销毁OH_LowPowerVideoSinkCallback对象。 |
45| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetDataNeededListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnDataNeeded onDataNeeded, void* userData)](#oh_lowpowervideosinkcallback_setdataneededlistener) | 为LowPowerVideoSinkCallback设置需要数据监听。 |
46| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetErrorListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnError onError, void* userData)](#oh_lowpowervideosinkcallback_seterrorlistener) | 为LowPowerVideoSinkCallback回调设置错误监听。 |
47| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetRenderStartListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnRenderStarted onRenderStarted, void* userData)](#oh_lowpowervideosinkcallback_setrenderstartlistener) | 为LowPowerVideoSinkCallback回调设置开始渲染监听。 |
48| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetStreamChangedListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnStreamChanged onStreamChanged, void* userData)](#oh_lowpowervideosinkcallback_setstreamchangedlistener) | 为LowPowerVideoSinkCallback回调设置流切换监听。 |
49| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetFirstFrameDecodedListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnFirstFrameDecoded onFirstFrameDecoded, void* userData)](#oh_lowpowervideosinkcallback_setfirstframedecodedlistener) | 为LowPowerVideoSinkCallback回调设置首帧准备完成监听。 |
50| [OH_AVErrCode OH_LowPowerVideoSinkCallback_SetEosListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnEos onEos, void* userData)](#oh_lowpowervideosinkcallback_seteoslistener) | 为LowPowerVideoSinkCallback回调设置播放结束监听。 |
51
52## 函数说明
53
54### OH_LowPowerVideoSink_CreateByMime()
55
56```
57OH_LowPowerVideoSink* OH_LowPowerVideoSink_CreateByMime(const char* mime)
58```
59
60**描述**
61
62创建低功耗LowPowerVideoSink。
63
64**起始版本:** 20
65
66
67**参数:**
68
69| 参数项 | 描述 |
70| -- | -- |
71| const char* mime | 视频解码器的MIME类型,取值范围请参考[AVCODEC_MIME_TYPE](../apis-avcodec-kit/_codec_base.md#变量)。 |
72
73**返回:**
74
75| 类型 | 说明 |
76| -- | -- |
77| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* | 如果创建成功返回指向OH_LowPowerVideoSink实例的指针,否则返回空指针。 |
78
79### OH_LowPowerVideoSink_Configure()
80
81```
82OH_AVErrCode OH_LowPowerVideoSink_Configure(OH_LowPowerVideoSink* sink, const OH_AVFormat* format)
83```
84
85**描述**
86
87配置LowPowerVideoSink,需要在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)前完成。
88
89**起始版本:** 20
90
91
92**参数:**
93
94| 参数项 | 描述 |
95| -- | -- |
96| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
97| const [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* format | 指向OH_AVFormat的指针,用于配置LowPowerVideoSink的参数。 |
98
99**返回:**
100
101| 类型 | 说明 |
102| -- | -- |
103| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_UNSUPPORT:不支持的格式。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
104
105### OH_LowPowerVideoSink_SetParameter()
106
107```
108OH_AVErrCode OH_LowPowerVideoSink_SetParameter(OH_LowPowerVideoSink* sink, const OH_AVFormat* format)
109```
110
111**描述**
112
113为LowPowerVideoSink设置参数,支持[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)后动态设置。
114
115**起始版本:** 20
116
117
118**参数:**
119
120| 参数项 | 描述 |
121| -- | -- |
122| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
123| const [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* format | 指向OH_AVFormat的指针,用于配置LowPowerVideoSink的参数。 |
124
125**返回:**
126
127| 类型 | 说明 |
128| -- | -- |
129| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_UNSUPPORT:不支持的格式。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
130
131### OH_LowPowerVideoSink_GetParameter()
132
133```
134OH_AVErrCode OH_LowPowerVideoSink_GetParameter(OH_LowPowerVideoSink* sink, OH_AVFormat* format)
135```
136
137**描述**
138
139获取LowPowerVideoSink的相关参数。
140
141**起始版本:** 20
142
143
144**参数:**
145
146| 参数项 | 描述 |
147| -- | -- |
148| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
149| [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* format | 指向OH_AVFormat的指针,为LowPowerVideoSink设置的参数。 |
150
151**返回:**
152
153| 类型 | 说明 |
154| -- | -- |
155| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
156
157### OH_LowPowerVideoSink_SetVideoSurface()
158
159```
160OH_AVErrCode OH_LowPowerVideoSink_SetVideoSurface(OH_LowPowerVideoSink* sink, const OHNativeWindow* surface)
161```
162
163**描述**
164
165为LowPowerVideoSink设置渲染画面窗口。 需要在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)前完成。
166
167**起始版本:** 20
168
169
170**参数:**
171
172| 参数项 | 描述 |
173| -- | -- |
174| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
175| const [OHNativeWindow](../apis-avcodec-kit/_codec_base.md#ohnativewindow)* surface | 指向OHNativeWindow实例的指针。 |
176
177**返回:**
178
179| 类型 | 说明 |
180| -- | -- |
181| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
182
183### OH_LowPowerVideoSink_Prepare()
184
185```
186OH_AVErrCode OH_LowPowerVideoSink_Prepare(OH_LowPowerVideoSink* sink)
187```
188
189**描述**
190
191开始LowPowerVideoSink准备,需要在[OH_LowPowerVideoSink_SetSyncAudioSink](#oh_lowpowervideosink_setsyncaudiosink)之后调用。
192
193**起始版本:** 20
194
195
196**参数:**
197
198| 参数项 | 描述 |
199| -- | -- |
200| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
201
202**返回:**
203
204| 类型 | 说明 |
205| -- | -- |
206| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_UNSUPPORT:不支持的格式。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
207
208### OH_LowPowerVideoSink_StartDecoder()
209
210```
211OH_AVErrCode OH_LowPowerVideoSink_StartDecoder(OH_LowPowerVideoSink* sink)
212```
213
214**描述**
215
216开始LowPowerVideoSink解码,在[OH_LowPowerVideoSink_Prepare](#oh_lowpowervideosink_prepare)后或非播放中[OH_LowPowerVideoSink_SetTargetStartFrame](#oh_lowpowervideosink_settargetstartframe)后调用。<br> 启动成功后,LowPowerVideoSink将开始上报[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件。
217
218**起始版本:** 20
219
220
221**参数:**
222
223| 参数项 | 描述 |
224| -- | -- |
225| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
226
227**返回:**
228
229| 类型 | 说明 |
230| -- | -- |
231| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_UNSUPPORT:不支持的格式。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
232
233### OH_LowPowerVideoSink_RenderFirstFrame()
234
235```
236OH_AVErrCode OH_LowPowerVideoSink_RenderFirstFrame(OH_LowPowerVideoSink* sink)
237```
238
239**描述**
240
241渲染LowPowerVideoSink解码出的第一帧,在[OH_LowPowerVideoSink_StartDecoder](#oh_lowpowervideosink_startdecoder)之后调用。
242
243**起始版本:** 20
244
245
246**参数:**
247
248| 参数项 | 描述 |
249| -- | -- |
250| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
251
252**返回:**
253
254| 类型 | 说明 |
255| -- | -- |
256| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
257
258### OH_LowPowerVideoSink_StartRenderer()
259
260```
261OH_AVErrCode OH_LowPowerVideoSink_StartRenderer(OH_LowPowerVideoSink* sink)
262```
263
264**描述**
265
266开始LowPowerVideoSink渲染,在[OH_LowPowerVideoSink_StartDecoder](#oh_lowpowervideosink_startdecoder)之后调用。
267
268**起始版本:** 20
269
270
271**参数:**
272
273| 参数项 | 描述 |
274| -- | -- |
275| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
276
277**返回:**
278
279| 类型 | 说明 |
280| -- | -- |
281| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_UNSUPPORT:不支持的格式。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
282
283### OH_LowPowerVideoSink_Pause()
284
285```
286OH_AVErrCode OH_LowPowerVideoSink_Pause(OH_LowPowerVideoSink* sink)
287```
288
289**描述**
290
291暂停LowPowerVideoSink,在[OH_LowPowerVideoSink_StartRenderer](#oh_lowpowervideosink_startrenderer)或[OH_LowPowerVideoSink_Resume](#oh_lowpowervideosink_resume)后调用。<br> 暂停成功后,LowPowerVideoSink将暂停[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件的上报。
292
293**起始版本:** 20
294
295
296**参数:**
297
298| 参数项 | 描述 |
299| -- | -- |
300| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
301
302**返回:**
303
304| 类型 | 说明 |
305| -- | -- |
306| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
307
308### OH_LowPowerVideoSink_Resume()
309
310```
311OH_AVErrCode OH_LowPowerVideoSink_Resume(OH_LowPowerVideoSink* sink)
312```
313
314**描述**
315
316恢复LowPowerVideoSink,在[OH_LowPowerVideoSink_Pause](#oh_lowpowervideosink_pause)后调用。<br> 恢复成功后,LowPowerVideoSink将恢复[OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded)事件的上报。
317
318**起始版本:** 20
319
320
321**参数:**
322
323| 参数项 | 描述 |
324| -- | -- |
325| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
326
327**返回:**
328
329| 类型 | 说明 |
330| -- | -- |
331| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
332
333### OH_LowPowerVideoSink_Flush()
334
335```
336OH_AVErrCode OH_LowPowerVideoSink_Flush(OH_LowPowerVideoSink* sink)
337```
338
339**描述**
340
341清除LowPowerVideoSink中所有解码器和渲染缓存的输入输出数据。<br> 此接口不建议在[OH_LowPowerVideoSink_StartRenderer](#oh_lowpowervideosink_startrenderer)或[OH_LowPowerVideoSink_Resume](#oh_lowpowervideosink_resume)之后调用。<br> 需要注意的是,如果编解码器之前已输入数据,则需要重新输入编解码器数据。
342
343**起始版本:** 20
344
345
346**参数:**
347
348| 参数项 | 描述 |
349| -- | -- |
350| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
351
352**返回:**
353
354| 类型 | 说明 |
355| -- | -- |
356| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
357
358### OH_LowPowerVideoSink_Stop()
359
360```
361OH_AVErrCode OH_LowPowerVideoSink_Stop(OH_LowPowerVideoSink* sink)
362```
363
364**描述**
365
366停止LowPowerVideoSink。
367
368**起始版本:** 20
369
370
371**参数:**
372
373| 参数项 | 描述 |
374| -- | -- |
375| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
376
377**返回:**
378
379| 类型 | 说明 |
380| -- | -- |
381| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
382
383### OH_LowPowerVideoSink_Reset()
384
385```
386OH_AVErrCode OH_LowPowerVideoSink_Reset(OH_LowPowerVideoSink* sink)
387```
388
389**描述**
390
391重置LowPowerVideoSink。<br> 如果要重新使用该实例,需要调用[OH_LowPowerVideoSink_Configure](#oh_lowpowervideosink_configure)完成配置。
392
393**起始版本:** 20
394
395
396**参数:**
397
398| 参数项 | 描述 |
399| -- | -- |
400| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
401
402**返回:**
403
404| 类型 | 说明 |
405| -- | -- |
406| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
407
408### OH_LowPowerVideoSink_Destroy()
409
410```
411OH_AVErrCode OH_LowPowerVideoSink_Destroy(OH_LowPowerVideoSink* sink)
412```
413
414**描述**
415
416清理解码器内部资源,销毁LowPowerVideoSink实例。不能重复销毁。
417
418**起始版本:** 20
419
420
421**参数:**
422
423| 参数项 | 描述 |
424| -- | -- |
425| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
426
427**返回:**
428
429| 类型 | 说明 |
430| -- | -- |
431| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
432
433### OH_LowPowerVideoSink_SetSyncAudioSink()
434
435```
436OH_AVErrCode OH_LowPowerVideoSink_SetSyncAudioSink(OH_LowPowerVideoSink* videoSink, OH_LowPowerAudioSink* audioSink)
437```
438
439**描述**
440
441LowPowerVideoSink设置用于音画同步的OH_LowPowerAudioSink。
442
443**起始版本:** 20
444
445
446**参数:**
447
448| 参数项 | 描述 |
449| -- | -- |
450| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* videoSink | 指向OH_LowPowerVideoSink实例的指针。 |
451| [OH_LowPowerAudioSink](capi-lowpoweraudiosink-oh-lowpoweraudiosink.md)* audioSink | 指向OH_LowPowerAudioSink实例的指针。 |
452
453**返回:**
454
455| 类型 | 说明 |
456| -- | -- |
457| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
458
459### OH_LowPowerVideoSink_SetTargetStartFrame()
460
461```
462OH_AVErrCode OH_LowPowerVideoSink_SetTargetStartFrame(OH_LowPowerVideoSink* sink,const int64_t framePts,OH_LowPowerVideoSink_OnTargetArrived onTargetArrived,const int64_t timeoutMs,void* userData)
463```
464
465**描述**
466
467为LowPowerVideoSink设置目标渲染帧。
468
469**起始版本:** 20
470
471
472**参数:**
473
474| 参数项 | 描述 |
475| -- | -- |
476| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
477| const int64_t framePts | 渲染的目标视频帧的pts。 |
478| [OH_LowPowerVideoSink_OnTargetArrived](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ontargetarrived) onTargetArrived | OH_LowPowerVideoSink_OnTargetArrived方法,当目标帧渲染时触发该方法。 |
479| const int64_t timeoutMs | 如果等待第一帧的时间超过timeoutMs,则直接调用onTargetArrived。 |
480| void* userData | 用户数据。 |
481
482**返回:**
483
484| 类型 | 说明 |
485| -- | -- |
486| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
487
488### OH_LowPowerVideoSink_SetPlaybackSpeed()
489
490```
491OH_AVErrCode OH_LowPowerVideoSink_SetPlaybackSpeed(OH_LowPowerVideoSink* sink, const float speed)
492```
493
494**描述**
495
496为LowPowerVideoSink设置播放倍速。
497
498**起始版本:** 20
499
500
501**参数:**
502
503| 参数项 | 描述 |
504| -- | -- |
505| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
506| const float speed | 播放速率的值。当前版本有效范围为[0.1,4.0]。 |
507
508**返回:**
509
510| 类型 | 说明 |
511| -- | -- |
512| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
513
514### OH_LowPowerVideoSink_ReturnSamples()
515
516```
517OH_AVErrCode OH_LowPowerVideoSink_ReturnSamples(OH_LowPowerVideoSink* sink, OH_AVSamplesBuffer* samples)
518```
519
520**描述**
521
522给LowPowerVideoSink输入buffer。
523
524**起始版本:** 20
525
526
527**参数:**
528
529| 参数项 | 描述 |
530| -- | -- |
531| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
532| [OH_AVSamplesBuffer](capi-avsinkbase-oh-avsamplesbuffer.md)* samples | 需要送LowPowerVideoSink消费的OH_AVSamplesBuffer,支持聚包输入。 |
533
534**返回:**
535
536| 类型 | 说明 |
537| -- | -- |
538| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
539
540### OH_LowPowerVideoSink_RegisterCallback()
541
542```
543OH_AVErrCode OH_LowPowerVideoSink_RegisterCallback(OH_LowPowerVideoSink* sink, OH_LowPowerVideoSinkCallback* callback)
544```
545
546**描述**
547
548为LowPowerVideoSink注册回调。
549
550**起始版本:** 20
551
552
553**参数:**
554
555| 参数项 | 描述 |
556| -- | -- |
557| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | 指向OH_LowPowerVideoSink实例的指针。 |
558| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 |
559
560**返回:**
561
562| 类型 | 说明 |
563| -- | -- |
564| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_SERVICE_DIED:媒体服务端已销毁。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
565
566### OH_LowPowerVideoSinkCallback_Create()
567
568```
569OH_LowPowerVideoSinkCallback* OH_LowPowerVideoSinkCallback_Create(void)
570```
571
572**描述**
573
574创建OH_LowPowerVideoSinkCallback。
575
576**起始版本:** 20
577
578**返回:**
579
580| 类型 | 说明 |
581| -- | -- |
582| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* | 返回指向OH_LowPowerVideoSinkCallback实例的指针。如果内存不足,则返回nullptr。 |
583
584### OH_LowPowerVideoSinkCallback_Destroy()
585
586```
587OH_AVErrCode OH_LowPowerVideoSinkCallback_Destroy(OH_LowPowerVideoSinkCallback* callback)
588```
589
590**描述**
591
592销毁OH_LowPowerVideoSinkCallback对象。
593
594**起始版本:** 20
595
596
597**参数:**
598
599| 参数项 | 描述 |
600| -- | -- |
601| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 |
602
603**返回:**
604
605| 类型 | 说明 |
606| -- | -- |
607| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。 |
608
609### OH_LowPowerVideoSinkCallback_SetDataNeededListener()
610
611```
612OH_AVErrCode OH_LowPowerVideoSinkCallback_SetDataNeededListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnDataNeeded onDataNeeded, void* userData)
613```
614
615**描述**
616
617为LowPowerVideoSinkCallback设置需要数据监听。
618
619**起始版本:** 20
620
621
622**参数:**
623
624| 参数项 | 描述 |
625| -- | -- |
626| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 |
627| [OH_LowPowerVideoSink_OnDataNeeded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_ondataneeded) onDataNeeded | OH_LowPowerVideoSink_OnDataNeeded方法,在DataNeeded事件触发时调用。 |
628| void* userData | 用户执行回调所依赖的数据。 |
629
630**返回:**
631
632| 类型 | 说明 |
633| -- | -- |
634| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
635
636### OH_LowPowerVideoSinkCallback_SetErrorListener()
637
638```
639OH_AVErrCode OH_LowPowerVideoSinkCallback_SetErrorListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnError onError, void* userData)
640```
641
642**描述**
643
644为LowPowerVideoSinkCallback回调设置错误监听。
645
646**起始版本:** 20
647
648
649**参数:**
650
651| 参数项 | 描述 |
652| -- | -- |
653| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 |
654| [OH_LowPowerVideoSink_OnError](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_onerror) onError | OH_LowPowerVideoSink_OnError方法,在Error事件触发时调用。 |
655| void* userData | 用户执行回调所依赖的数据。 |
656
657**返回:**
658
659| 类型 | 说明 |
660| -- | -- |
661| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
662
663### OH_LowPowerVideoSinkCallback_SetRenderStartListener()
664
665```
666OH_AVErrCode OH_LowPowerVideoSinkCallback_SetRenderStartListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnRenderStarted onRenderStarted, void* userData)
667```
668
669**描述**
670
671为LowPowerVideoSinkCallback回调设置开始渲染监听。
672
673**起始版本:** 20
674
675
676**参数:**
677
678| 参数项 | 描述 |
679| -- | -- |
680| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 |
681| [OH_LowPowerVideoSink_OnRenderStarted](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_onrenderstarted) onRenderStarted | OH_LowPowerVideoSink_OnRenderStarted方法,在RenderStarted事件触发时调用。 |
682| void* userData | 用户执行回调所依赖的数据。 |
683
684**返回:**
685
686| 类型 | 说明 |
687| -- | -- |
688| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
689
690### OH_LowPowerVideoSinkCallback_SetStreamChangedListener()
691
692```
693OH_AVErrCode OH_LowPowerVideoSinkCallback_SetStreamChangedListener(OH_LowPowerVideoSinkCallback* callback, OH_LowPowerVideoSink_OnStreamChanged onStreamChanged, void* userData)
694```
695
696**描述**
697
698为LowPowerVideoSinkCallback回调设置流切换监听。
699
700**起始版本:** 20
701
702
703**参数:**
704
705| 参数项 | 描述 |
706| -- | -- |
707| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 |
708| [OH_LowPowerVideoSink_OnStreamChanged](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_onstreamchanged) onStreamChanged | OH_LowPowerVideoSink_OnStreamChanged方法,在StreamChanged事件触发时调用。 |
709| void* userData | 用户执行回调所依赖的数据。 |
710
711**返回:**
712
713| 类型 | 说明 |
714| -- | -- |
715| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
716
717### OH_LowPowerVideoSinkCallback_SetFirstFrameDecodedListener()
718
719```
720OH_AVErrCode OH_LowPowerVideoSinkCallback_SetFirstFrameDecodedListener(OH_LowPowerVideoSinkCallback* callback,OH_LowPowerVideoSink_OnFirstFrameDecoded onFirstFrameDecoded,void* userData)
721```
722
723**描述**
724
725为LowPowerVideoSinkCallback回调设置首帧准备完成监听。
726
727**起始版本:** 20
728
729
730**参数:**
731
732| 参数项 | 描述 |
733| -- | -- |
734| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 |
735| [OH_LowPowerVideoSink_OnFirstFrameDecoded](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_onfirstframedecoded) onFirstFrameDecoded | OH_LowPowerVideoSink_OnFirstFrameReady方法,在FirstFrameReady事件触发时调用。 |
736| void* userData | 用户执行回调所依赖的数据。 |
737
738**返回:**
739
740| 类型 | 说明 |
741| -- | -- |
742| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
743
744### OH_LowPowerVideoSinkCallback_SetEosListener()
745
746```
747OH_AVErrCode OH_LowPowerVideoSinkCallback_SetEosListener(OH_LowPowerVideoSinkCallback* callback,OH_LowPowerVideoSink_OnEos onEos, void* userData)
748```
749
750**描述**
751
752为LowPowerVideoSinkCallback回调设置播放结束监听。
753
754**起始版本:** 20
755
756
757**参数:**
758
759| 参数项 | 描述 |
760| -- | -- |
761| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md)* callback | 指向OH_LowPowerVideoSinkCallback实例的指针。 |
762| [OH_LowPowerVideoSink_OnEos](capi-lowpower-video-sink-base-h.md#oh_lowpowervideosink_oneos) onEos | OH_LowPowerVideoSink_OnEos方法,在Eos事件触发时调用。 |
763| void* userData | 用户执行回调所依赖的数据。 |
764
765**返回:**
766
767| 类型 | 说明 |
768| -- | -- |
769| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:参数为nullptr或参数非法。<br> AV_ERR_OPERATE_NOT_PERMIT:操作不支持。 |
770
771
772