1# lowpower_video_sink_base.h 2 3## Overview 4 5The file declares the structs and enums of the LowPowerVideoSink. 6 7**File to include**: <multimedia/player_framework/lowpower_video_sink_base.h> 8 9**Library**: liblowpower_avsink.so 10 11**System capability**: SystemCapability.Multimedia.Media.LowPowerAVSink 12 13**Since**: 20 14 15**Related module**: [LowPowerVideoSink](capi-lowpowervideosink.md) 16 17## Summary 18 19### Structs 20 21| Name| typedef Keyword| Description| 22| -- | -- | -- | 23| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md) | OH_LowPowerVideoSink | Describes the declaration for the LowPowerVideoSink.| 24| [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md) | OH_LowPowerVideoSinkCallback | Contains a set of callback function pointers for the LowPowerVideoSink.<br>To ensure the normal running of the LowPowerVideoSink, you must register the instance of this struct with the [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md) instance and process the information reported by the callback functions.| 25 26### Functions 27 28| Name| typedef Keyword| Description| 29| -- | -- | -- | 30| [typedef void (\*OH_LowPowerVideoSink_OnDataNeeded)(OH_LowPowerVideoSink* sink, OH_AVSamplesBuffer* buffer, void *userData)](#oh_lowpowervideosink_ondataneeded) | OH_LowPowerVideoSink_OnDataNeeded | Called when the LowPowerVideoSink needs more data. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md).| 31| [typedef void (\*OH_LowPowerVideoSink_OnError)(OH_LowPowerVideoSink* sink, OH_AVErrCode errCode, const char* errMsg, void* userData)](#oh_lowpowervideosink_onerror) | OH_LowPowerVideoSink_OnError | Called when an error occurs in the LowPowerVideoSink.| 32| [typedef void (\*OH_LowPowerVideoSink_OnTargetArrived)(OH_LowPowerVideoSink* sink, const int64_t targetPts, const bool isTimeout, void* userData)](#oh_lowpowervideosink_ontargetarrived) | OH_LowPowerVideoSink_OnTargetArrived | Called when the LowPowerVideoSink reaches the target point. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md).| 33| [typedef void (\*OH_LowPowerVideoSink_OnRenderStarted)(OH_LowPowerVideoSink* sink, void* userData)](#oh_lowpowervideosink_onrenderstarted) | OH_LowPowerVideoSink_OnRenderStarted | Called when the LowPowerVideoSink starts rendering. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md).| 34| [typedef void (\*OH_LowPowerVideoSink_OnStreamChanged)(OH_LowPowerVideoSink* sink, OH_AVFormat* format, void* userData)](#oh_lowpowervideosink_onstreamchanged) | OH_LowPowerVideoSink_OnStreamChanged | Called when the stream changes in the LowPowerVideoSink. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md).| 35| [typedef void (\*OH_LowPowerVideoSink_OnFirstFrameDecoded)(OH_LowPowerVideoSink* sink, void* userData)](#oh_lowpowervideosink_onfirstframedecoded) | OH_LowPowerVideoSink_OnFirstFrameDecoded | Called when the first frame is successfully decoded in the LowPowerVideoSink. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md).| 36| [typedef void (\*OH_LowPowerVideoSink_OnEos)(OH_LowPowerVideoSink* sink, void* userData)](#oh_lowpowervideosink_oneos) | OH_LowPowerVideoSink_OnEos | Called when the playback is completed in the LowPowerVideoSink. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md).| 37 38## Function Description 39 40### OH_LowPowerVideoSink_OnDataNeeded() 41 42``` 43typedef void (*OH_LowPowerVideoSink_OnDataNeeded)(OH_LowPowerVideoSink* sink,OH_AVSamplesBuffer* buffer,void *userData) 44``` 45 46**Description** 47 48Called when the LowPowerVideoSink needs more data. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md). 49 50**Since**: 20 51 52 53**Parameters** 54 55| Name| Description| 56| -- | -- | 57| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | Pointer to an OH_LowPowerVideoSink instance.| 58| [OH_AVSamplesBuffer](capi-avsinkbase-oh-avsamplesbuffer.md)* buffer | Pointer to an OH_AVSamplesBuffer instance.| 59| void *userData | Pointer to the data on which the caller depends when executing the callback.| 60 61### OH_LowPowerVideoSink_OnError() 62 63``` 64typedef void (*OH_LowPowerVideoSink_OnError)(OH_LowPowerVideoSink* sink,OH_AVErrCode errCode,const char* errMsg,void* userData) 65``` 66 67**Description** 68 69Called when an error occurs in the LowPowerVideoSink. 70 71**Since**: 20 72 73 74**Parameters** 75 76| Name| Description| 77| -- | -- | 78| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | Pointer to an OH_LowPowerVideoSink instance.| 79| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) errCode | Error code returned when an error occurs during service operations.| 80| const char* errMsg | Pointer to the error message returned when an error occurs during service operations.| 81| void* userData | Pointer to the data on which the caller depends when executing the callback.| 82 83### OH_LowPowerVideoSink_OnTargetArrived() 84 85``` 86typedef void (*OH_LowPowerVideoSink_OnTargetArrived)(OH_LowPowerVideoSink* sink,const int64_t targetPts,const bool isTimeout,void* userData) 87``` 88 89**Description** 90 91Called when the LowPowerVideoSink reaches the target point. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md). 92 93**Since**: 20 94 95 96**Parameters** 97 98| Name| Description| 99| -- | -- | 100| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | Pointer to an OH_LowPowerVideoSink instance.| 101| const int64_t targetPts | Presentation timestamp (PTS) of the target point.| 102| const bool isTimeout | Whether the wait for the target point has timed out. If it has timed out, this value is **false**.| 103| void* userData | Pointer to the data on which the caller depends when executing the callback.| 104 105### OH_LowPowerVideoSink_OnRenderStarted() 106 107``` 108typedef void (*OH_LowPowerVideoSink_OnRenderStarted)(OH_LowPowerVideoSink* sink, void* userData) 109``` 110 111**Description** 112 113Called when the LowPowerVideoSink starts rendering. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md). 114 115**Since**: 20 116 117 118**Parameters** 119 120| Name| Description| 121| -- | -- | 122| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | Pointer to an OH_LowPowerVideoSink instance.| 123| void* userData | Pointer to the data on which the caller depends when executing the callback.| 124 125### OH_LowPowerVideoSink_OnStreamChanged() 126 127``` 128typedef void (*OH_LowPowerVideoSink_OnStreamChanged)(OH_LowPowerVideoSink* sink, OH_AVFormat* format, void* userData) 129``` 130 131**Description** 132 133Called when the stream changes in the LowPowerVideoSink. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md). 134 135**Since**: 20 136 137 138**Parameters** 139 140| Name| Description| 141| -- | -- | 142| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | Pointer to an OH_LowPowerVideoSink instance.| 143| [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* format | Pointer to the changed parameters and their values.| 144| void* userData | Pointer to the data on which the caller depends when executing the callback.| 145 146### OH_LowPowerVideoSink_OnFirstFrameDecoded() 147 148``` 149typedef void (*OH_LowPowerVideoSink_OnFirstFrameDecoded)(OH_LowPowerVideoSink* sink, void* userData) 150``` 151 152**Description** 153 154Called when the first frame is successfully decoded in the LowPowerVideoSink. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md). 155 156**Since**: 20 157 158 159**Parameters** 160 161| Name| Description| 162| -- | -- | 163| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | Pointer to an OH_LowPowerVideoSink instance.| 164| void* userData | Pointer to the data on which the caller depends when executing the callback.| 165 166### OH_LowPowerVideoSink_OnEos() 167 168``` 169typedef void (*OH_LowPowerVideoSink_OnEos)(OH_LowPowerVideoSink* sink, void* userData) 170``` 171 172**Description** 173 174Called when the playback is completed in the LowPowerVideoSink. This callback is included in [OH_LowPowerVideoSinkCallback](capi-lowpowervideosink-oh-lowpowervideosinkcallback.md). 175 176**Since**: 20 177 178 179**Parameters** 180 181| Name| Description| 182| -- | -- | 183| [OH_LowPowerVideoSink](capi-lowpowervideosink-oh-lowpowervideosink.md)* sink | Pointer to an OH_LowPowerVideoSink instance.| 184| void* userData | Pointer to the data on which the caller depends when executing the callback.| 185