diff --git a/low_power_player/v1_0/BUILD.gn b/low_power_player/v1_0/BUILD.gn index 4889b523bf9dab752a1bea73fe5f9f17a353da3b..dbdd541e99f5760966d391ea73283b6ccfa79119 100644 --- a/low_power_player/v1_0/BUILD.gn +++ b/low_power_player/v1_0/BUILD.gn @@ -23,6 +23,7 @@ if (defined(ohos_lite)) { module_name = "low_power_player_service" sources = [ + "ILppTypes.idl", "ILowPowerPlayerFactory.idl", "ILppAudioSinkAdapter.idl", "ILppSyncManagerCallback.idl", diff --git a/low_power_player/v1_0/ILowPowerPlayerFactory.idl b/low_power_player/v1_0/ILowPowerPlayerFactory.idl index 4d10d1173597740349a233171d45a72cf4f014a3..bc4d60439e0302ee656121b44338e4d21f18b702 100644 --- a/low_power_player/v1_0/ILowPowerPlayerFactory.idl +++ b/low_power_player/v1_0/ILowPowerPlayerFactory.idl @@ -31,6 +31,7 @@ package ohos.hdi.low_power_player.v1_0; import ohos.hdi.low_power_player.v1_0.ILppAudioSinkAdapter; import ohos.hdi.low_power_player.v1_0.ILppSyncManagerAdapter; +import ohos.hdi.low_power_player.v1_0.ILppTypes; interface ILowPowerPlayerFactory { /** @@ -47,22 +48,7 @@ interface ILowPowerPlayerFactory { * @since 6.0 * @version 1.0 */ - CreateSyncMgr([out] ILppSyncManagerAdapter syncMgrAdapter, [out] unsigned int syncMgrId); - - /** - * @brief Destroys a low power player audio and video sync manager adapter. - * - * - * - * @param syncMgrId Indicates the ID of the sync manager adapter to destroy. - * - * @return Returns HDF_SUCCESS if the operation is successful. - * @return Returns HDF_FAILURE if the execution fails. - * - * @since 6.0 - * @version 1.0 - */ - DestroySyncMgr([in] unsigned int syncMgrId); + CreateSyncMgr([out] ILppSyncManagerAdapter syncMgrAdapter); /** * @brief Creates a low power player audio sink adapter adapter. @@ -78,14 +64,14 @@ interface ILowPowerPlayerFactory { * @since 6.0 * @version 1.0 */ - CreateAudioSink([out] ILppAudioSinkAdapter audioSinkAdapter, [out] unsigned int audioSinkId); + CreateAudioSink([out] ILppAudioSinkAdapter audioSinkAdapter); - /** - * @brief Destroys a low power player audio sink adapter adapter. + /** + * @brief Gets the capabilities of lpplayer. * * * - * @param audioSinkId Indicates the ID of the audio sink adapter to destroy. + * @param cap Indicates the capabilities of lpplayer. * * @return Returns HDF_SUCCESS if the operation is successful. * @return Returns HDF_FAILURE if the execution fails. @@ -93,5 +79,5 @@ interface ILowPowerPlayerFactory { * @since 6.0 * @version 1.0 */ - DestroyAudioSink([in] unsigned int audioSinkId); + GetAVCapability([out] struct LppAVCap avCap); } \ No newline at end of file diff --git a/low_power_player/v1_0/ILppSyncManagerAdapter.idl b/low_power_player/v1_0/ILppSyncManagerAdapter.idl index 025ae9096fa9a21b366f85f4058908f49481d7c2..d7c44cc9bd653e20c91383aef421c22e410ab0c6 100644 --- a/low_power_player/v1_0/ILppSyncManagerAdapter.idl +++ b/low_power_player/v1_0/ILppSyncManagerAdapter.idl @@ -166,7 +166,7 @@ interface ILppSyncManagerAdapter { * @since 6.0 * @version 1.0 */ - SetTargetStartFrame([in] unsigned long framePts, [in] unsigned int timeoutMs); + SetTargetStartFrame([in] long framePts, [in] unsigned int timeoutMs); /** * @brief Sets the playback speed. @@ -243,7 +243,7 @@ interface ILppSyncManagerAdapter { * @since 6.0 * @version 1.0 */ - UpdateTimeAnchor([in] unsigned long anchorPts, [in] unsigned long anchorClk); + UpdateTimeAnchor([in] long anchorPts, [in] unsigned long anchorClk); /** * @brief Binds the output buffers of the decoder. @@ -300,4 +300,19 @@ interface ILppSyncManagerAdapter { * @version 1.0 */ SetTunnelId([in] unsigned long tunnelId); + + /** + * @brief Gets the latest pts. + * + * + * + * @param pts Indicates the presentation time stamp. + * + * @return Returns HDF_SUCCESS if the operation is successful. + * @return Returns HDF_FAILURE if the execution fails. + * + * @since 6.0 + * @version 1.0 + */ + GetLatestPts([out] long pts); } \ No newline at end of file diff --git a/low_power_player/v1_0/ILppTypes.idl b/low_power_player/v1_0/ILppTypes.idl new file mode 100644 index 0000000000000000000000000000000000000000..72473015ad2e3f350b99f383c5e09b5ad16c204a --- /dev/null +++ b/low_power_player/v1_0/ILppTypes.idl @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @brief get the lpplayer supported capabilities. + + * @since 6.0 + * @version 1.0 + */ + +/** + * @addtogroup LowPowerPlayer + * @{ + * + * @ @brief Provides unified APIs for media services to access low power player drivers. + * + * The media service can obtain a low power player driver object or proxy, and then invoke the + * API provided by the object or proxy, The module provides APIs for initializing the custom data + * and audio and video codecs, setting parameters, and controlling and transferring data. + * + * @since 6.0 + * @version 1.0 + */ + +/** + * @brief Defines the path for the package of the LowPowerPlayer module APIs. + * + * @since 6.0 + * @version 1.0 + */ +package ohos.hdi.low_power_player.v1_0; + +/** + * @brief Enumerates the types of HDR. + * + * @since 6.0 + * @version 1.0 + */ +enum HDRType { + HDR10, + HDR10Plus, + HDRVivid +}; + +/** + * @brief Defines the Video capabilities. + * + * @since 6.0 + * @version 1.0 + */ +struct VideoMimeCap { + String mime; /** video/avc, video/hevc */ + unsigned int minWidth; + unsigned int minHeight; + unsigned int maxWidth; + unsigned int maxHeight; + HDRType[] supportHDRTypes; /** HDR10, HDR10+, HDRVivid */ + unsigned int maxPixelPerSecond; + unsigned int maxInstance; + boolean isSupportDRM; +}; + +/** + * @brief Defines the Audio capabilities. + * + * @since 6.0 + * @version 1.0 + */ +struct AudioMimeCap { + String mime; /** AAC, Flac, Vorbis, MPEG, G711mu, AMR(amrnb, amrwb), APE */ + unsigned int sampleRate; + unsigned int channelCount; +}; + +/** + * @brief Defines the LowPowerPlayer capabilities. + * + * @since 6.0 + * @version 1.0 + */ +struct LppAVCap { + unsigned int maxInstance; + struct VideoMimeCap[] videoCap; /** videoCap */ + struct AudioMimeCap[] audioCap; /** audioCap */ +}; \ No newline at end of file