Skip to content

Commit b3e155d

Browse files
committed
Merge branch 'release/0.12.0'
2 parents 7decb93 + 3414f33 commit b3e155d

File tree

12 files changed

+156
-167
lines changed

12 files changed

+156
-167
lines changed

.github/workflows/cla.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ on:
1010
issue_comment:
1111
types: [created]
1212
pull_request_target:
13-
types: [opened,closed,synchronize]
13+
types: [opened, closed, synchronize]
1414

1515
jobs:
1616
CLA-Lite:
1717
name: "Signature"
18-
uses: rdkcentral/cmf-actions/.github/workflows/cla.yml@main
18+
uses: rdkcentral/cmf-actions/.github/workflows/cla.yml@v1
1919
secrets:
2020
PERSONAL_ACCESS_TOKEN: ${{ secrets.CLA_ASSISTANT }}

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,25 @@ All notable changes to this project will be documented in this file. Dates are d
44

55
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
66

7+
#### [0.12.0](https://github.com/rdkcentral/rdk-halif-aidl/compare/0.11.0...0.12.0)
8+
9+
- gh #250 added existing_AVBuffer_Helper_header [`#251`](https://github.com/rdkcentral/rdk-halif-aidl/pull/251)
10+
- Feature/201 frame meta data tohandle private data [`#227`](https://github.com/rdkcentral/rdk-halif-aidl/pull/227)
11+
- gh #221:IAudioDecoderEventListener onStateChanged Uses Wrong State Import [`#224`](https://github.com/rdkcentral/rdk-halif-aidl/pull/224)
12+
- pool create description update [`#235`](https://github.com/rdkcentral/rdk-halif-aidl/pull/235)
13+
- gh #204 Deepsleep HFP file update [`#205`](https://github.com/rdkcentral/rdk-halif-aidl/pull/205)
14+
- gh #208 Indicator HFP file update [`#209`](https://github.com/rdkcentral/rdk-halif-aidl/pull/209)
15+
- PR: gh #219 : Modified interface and hfp as per the review comments [`#222`](https://github.com/rdkcentral/rdk-halif-aidl/pull/222)
16+
- Deploy cla action [`#218`](https://github.com/rdkcentral/rdk-halif-aidl/pull/218)
17+
- Modify: gh #219 : Modified interface and hfp as per the review comments [`a38c26c`](https://github.com/rdkcentral/rdk-halif-aidl/commit/a38c26c9fd8b5a415d6cbf650360f11d2b2f6a46)
18+
- Fix : gh #219: Fixed review comments and gh #223 [`83848f2`](https://github.com/rdkcentral/rdk-halif-aidl/commit/83848f21f6906d0b5ee302319454810782d205e9)
19+
- gh201: Fixing the indentation [`be9311a`](https://github.com/rdkcentral/rdk-halif-aidl/commit/be9311a95f8a29231d857318fc058132409bf48e)
20+
721
#### [0.11.0](https://github.com/rdkcentral/rdk-halif-aidl/compare/0.10.0...0.11.0)
822

23+
> 26 September 2025
24+
25+
- Deploy cla action [`#203`](https://github.com/rdkcentral/rdk-halif-aidl/pull/203)
926
- 172:Adding back the Audiodecoder State.aidl [`#173`](https://github.com/rdkcentral/rdk-halif-aidl/pull/173)
1027
- Overall governance document for documentation draft release #155 [`#186`](https://github.com/rdkcentral/rdk-halif-aidl/pull/186)
1128
- gh #181 added buffer management info [`#182`](https://github.com/rdkcentral/rdk-halif-aidl/pull/182)

audiodecoder/current/com/rdk/hal/audiodecoder/FrameMetadata.aidl

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ import com.rdk.hal.AVSource;
3333
@VintfStability
3434
parcelable FrameMetadata {
3535

36-
/**
36+
/**
3737
* The original source codec of the audio frame.
3838
*/
39-
Codec sourceCodec;
39+
Codec sourceCodec;
4040

4141
/**
4242
* The buffer contains Dolby Atmos audio and metadata.
@@ -48,33 +48,33 @@ parcelable FrameMetadata {
4848
*/
4949
int numChannels;
5050

51-
/**
51+
/**
5252
* Array of ChannelType enum values.
5353
* The array size should match the number of channels.
5454
*/
55-
ChannelType[] channelTypes;
55+
ChannelType[] channelTypes;
5656

57-
/**
57+
/**
5858
* Sample rate in samples/second.
5959
*/
60-
int sampleRate;
60+
int sampleRate;
6161

62-
/**
62+
/**
6363
* Format of the output PCM data.
6464
*/
65-
PCMFormat format;
65+
PCMFormat format;
6666

67-
/**
67+
/**
6868
* Indicated whether the audio data buffer is in planar format.
6969
* If false, the data is interleaved with other channels.
7070
*/
7171
boolean planarFormat;
7272

73-
/**
74-
* Audio trimming to use on presentation.
75-
*/
76-
int trimStartNs;
77-
int trimEndNs;
73+
/**
74+
* Audio trimming to use on presentation.
75+
*/
76+
int trimStartNs;
77+
int trimEndNs;
7878

7979
/**
8080
* Indicates if the audio should be delivered in low latency mode.
@@ -85,7 +85,7 @@ parcelable FrameMetadata {
8585
* End of stream indicator.
8686
*/
8787
boolean endOfStream;
88-
88+
8989
/**
9090
* Discontinuity indicator where the PTS for this frame is likely to be discontinuous to the previous.
9191
*/
@@ -100,5 +100,10 @@ parcelable FrameMetadata {
100100
/**
101101
* Private extension for future use.
102102
*/
103-
ParcelableHolder extension;
103+
ParcelableHolder extension;
104+
105+
/**
106+
* Proprietary metadata passed from Decoder HAL to Sink HAL
107+
*/
108+
byte[] SoCPrivate;
104109
}

audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoderEventListener.aidl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
package com.rdk.hal.audiodecoder;
2020
import com.rdk.hal.audiodecoder.FrameMetadata;
2121
import com.rdk.hal.audiodecoder.ErrorCode;
22-
import com.rdk.hal.State;
22+
import com.rdk.hal.audiodecoder.State;
2323

2424
/**
2525
* @brief Events callbacks listener interface from audio decoder.

avbuffer/current/avbufferhelper.h

Lines changed: 62 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,128 +1,94 @@
1-
/*
2-
* If not stated otherwise in this file or this component's LICENSE file the
3-
* following copyright and licenses apply:
1+
/**
2+
* If not stated otherwise in this file or this component's LICENSE
3+
* file the following copyright and licenses apply:
44
*
5-
* Copyright 2024 RDK Management
5+
* Copyright 2025 RDK Management
66
*
7-
* Licensed under the Apache License, Version 2.0 (the "License");
8-
* you may not use this file except in compliance with the License.
9-
* You may obtain a copy of the License at
7+
* Licensed under the Apache License, Version 2.0 (the License);
8+
* you may not use this file except in compliance with the License.
9+
* You may obtain a copy of the License at
1010
*
11-
* http://www.apache.org/licenses/LICENSE-2.0
11+
* http://www.apache.org/licenses/LICENSE-2.0
1212
*
13-
* Unless required by applicable law or agreed to in writing, software
14-
* distributed under the License is distributed on an "AS IS" BASIS,
15-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16-
* See the License for the specific language governing permissions and
17-
* limitations under the License.
13+
* Unless required by applicable law or agreed to in writing, software
14+
* distributed under the License is distributed on an AS IS BASIS,
15+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16+
* See the License for the specific language governing permissions and
17+
* limitations under the License.
1818
*/
1919

20-
#ifndef _IAVBUFFERHELPER_H_
21-
#define _IAVBUFFERHELPER_H_
20+
#ifndef _AVBUFFERHELPER_H_
21+
#define _AVBUFFERHELPER_H_
2222

23-
#include <stdint.h>
23+
#ifdef __cplusplus
24+
extern "C" {
25+
#endif
2426

25-
using namespace com::rdk::hal;
26-
using namespace com::rdk::hal::avbuffer;
2727

28-
/**
29-
* @class IAVBufferHelper
30-
* @brief Pure virtual interface for AV buffer helpers.
31-
*
32-
* This interface defines the API contract for managing buffer handles
33-
* in AV pipelines where memory is shared between processes.
34-
* It is typically used in pipelines where pipeline elements
35-
* are implemented as AIDL HAL components communicating across process boundaries.
36-
*
37-
* Implementations of this interface are responsible for:
38-
* - Mapping a memory handle into process address space
39-
* - Unmapping a previously mapped handle
40-
* - Writing data into secure buffers
41-
* - Copying data between secure buffers
42-
*
43-
* Vendors must provide an implementation of this interface appropriate
44-
* to their platform. Depending on the architecture, this may involve:
45-
* - Interacting with a buffer manager service (via AIDL, sockets, or vendor-specific transport)
46-
* - Using platform-specific buffer types (DMABUF, ION, TEE-secure buffers)
47-
* - Enforcing security / DRM constraints when writing or copying buffers
48-
*
49-
* A default implementation (`AVBufferHelper`) is typically provided as reference.
50-
* Vendors can choose to subclass `AVBufferHelper` or provide a fully custom
51-
* implementation of `IAVBufferHelper`.
52-
*
53-
* NOTE ON SINGLETON ACCESS:
54-
* - The interface itself does not provide a static getInstance().
55-
* - The default implementation (`AVBufferHelper`) provides a static getInstance()
56-
* to simplify usage in typical pipeline nodes.
57-
* - If a vendor supplies a custom implementation, they should provide their own
58-
* singleton access mechanism or factory registration as appropriate.
59-
*/
28+
#ifdef __cplusplus
29+
} // extern "C"
30+
#endif
31+
32+
#include <cstdint>
33+
34+
using namespace std;
35+
6036
class IAVBufferHelper
6137
{
6238
public:
63-
/**
64-
* @struct CopyMap
65-
* @brief Defines the offsets and size for a memory copy operation.
66-
*/
67-
struct CopyMap
68-
{
69-
uint32_t src_offset; /**< The offset from the source handle where copying begins. */
70-
uint32_t dst_offset; /**< The offset in the destination handle where data will be copied. */
71-
uint32_t size; /**< The amount of data to copy, in bytes. */
39+
struct CopyMap {
40+
uint32_t src_offset;
41+
uint32_t dst_offset;
42+
uint32_t size;
7243
};
7344

45+
46+
// helper functions for mapping and unmapping memory from handles
47+
// used in the client code outside of the LinearBufferMgr class
7448
/**
75-
* @brief Destroys the `IAVBufferHelper` object.
49+
* @brief Map memory from the given handle.
50+
* @param handle The handle to map memory from.
51+
* @param[out] size The size of the mapped data
7652
*/
77-
virtual ~IAVBufferHelper() {}
53+
virtual void* mapHandle(uint64_t handle, uint32_t * size) = 0;
7854

7955
/**
80-
* @brief Maps memory from a given handle.
81-
*
82-
* This function is used by client code outside the `LinearBufferMgr` class to
83-
* map memory from a specified handle.
84-
*
85-
* @param[in] handle The handle to map memory from.
86-
* @param[out] size A pointer to a `uint32_t` that will be populated with the size of the mapped data.
87-
*
88-
* @returns A pointer to the mapped memory address, or `nullptr` if the mapping fails.
56+
* @brief Unmap memory from the given handle.
57+
* @param handle The handle to unmap memory from.
58+
* @return True if the memory was successfully unmapped, false otherwise.
8959
*/
90-
virtual void *mapHandle(uint64_t handle, uint32_t *size) = 0;
60+
virtual bool unmapHandle(uint64_t handle) = 0;
9161

9262
/**
93-
* @brief Unmaps memory from a given handle.
94-
*
95-
* @param[in] handle The handle to unmap memory from.
96-
*
97-
* @retval true If the memory was successfully unmapped.
98-
* @retval false If the memory could not be unmapped (e.g., invalid handle).
63+
* @brief Get the size of the memory mapped to the given handle.
64+
* @param handle The handle to get the size from.
65+
* @return The size of the memory mapped to the handle.
9966
*/
100-
virtual bool unmapHandle(uint64_t handle) = 0;
67+
virtual uint32_t getAllocationSize(uint64_t handle) = 0;
10168

10269
/**
103-
* @brief Writes data from unsecure memory into a secure buffer.
70+
* @brief Write data from unsecure memory into a secure buffer.
71+
* @param handle The handle to write data into.
72+
* @param data The data to write.
73+
* @param size The size of the data to write.
10474
*
105-
* @param[in] handle The handle of the secure buffer to write data into.
106-
* @param[in] data A pointer to the unsecure data to write.
107-
* @param[in] size The size of the data to write, in bytes.
108-
*
109-
* @retval true If the data was successfully written.
110-
* @retval false If the data could not be written (e.g., invalid handle, insufficient space).
75+
* @return True if the data was successfully written, false otherwise.
11176
*/
112-
virtual bool writeSecureHandle(uint64_t handle, void *data, uint32_t size) = 0;
77+
virtual bool writeSecureHandle(uint64_t handle, void* data, uint32_t size) { return false; }
11378

11479
/**
115-
* @brief Copies data from one secure buffer to another.
116-
*
117-
* @param[in] handleTo The handle of the destination secure buffer.
118-
* @param[in] handleFrom The handle of the source secure buffer.
119-
* @param[in] map The `CopyMap` structure specifying the offsets and size for the copy operation.
120-
* @param[in] mapSize The number of indexes in the map.
80+
* @brief Copy data from one secure buffer to another.
81+
* @param handleTo The handle to copy data to.
82+
* @param handleFrom The handle to copy data from.
83+
* @param CopyMap The map of offsets and sizes to copy.
84+
* @param mapSize The number if indexes in the map.
12185
*
122-
* @retval true If the data was successfully copied.
123-
* @retval false If the data could not be copied (e.g., invalid handles, overlapping regions).
86+
* @return True if the data was successfully copied, false otherwise.
12487
*/
125-
virtual bool copySecureHandleWithMap(uint64_t handleTo, uint64_t handleFrom, CopyMap map, uint32_t mapSize) = 0;
88+
virtual bool copySecureHandleWithMap(uint64_t handleTo, uint64_t handleFrom, CopyMap map, uint32_t mapSize) { return false; }
12689
};
12790

128-
#endif // _IAVBUFFERHELPER_H_
91+
// Factory function to get an instance of the AVBufferHelper
92+
IAVBufferHelper* getAVBufferHelperInstance();
93+
94+
#endif //_AVBUFFERHELPER_H_

avbuffer/current/com/rdk/hal/avbuffer/IAVBuffer.aidl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ interface IAVBuffer
6565
* @param[in] videoDecoderIndex The index of the video decoder resource.
6666
* @param[in] listener Listener for space available callbacks.
6767
*
68-
* @returns Pool
68+
* @returns A new `Pool` object. On success, the handle will be valid.
69+
* On failure, the handle will be set to `Pool::handle = Pool::INVALID_POOL`.
6970
*
7071
* @exception binder::Status::Exception::EX_NONE for success
7172
* @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT
@@ -92,7 +93,8 @@ interface IAVBuffer
9293
* @param[in] audioDecoderId The ID of the audio decoder resource.
9394
* @param[in] listener Listener for space available callbacks.
9495
*
95-
* @returns Pool
96+
* @returns A new `Pool` object. On success, the handle will be valid.
97+
* On failure, the handle will be set to `Pool::handle = Pool::INVALID_POOL`.
9698
*
9799
* @exception binder::Status::Exception::EX_NONE for success
98100
* @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT

avbuffer/current/com/rdk/hal/avbuffer/Pool.aidl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ package com.rdk.hal.avbuffer;
2828
@VintfStability
2929
parcelable Pool
3030
{
31-
/** Invalid handle value. */
32-
const byte INVALID = -1;
31+
/** Invalid Pool handle */
32+
const byte INVALID_POOL = -1;
3333

3434
/** Handle for the pool. */
3535
byte handle;

deepsleep/current/hfp-deepsleep.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
# HAL Feature Profile for deep_sleep
2424

25-
deep_sleep: # Component object begins
25+
IDeepSleep: # Component object begins
2626
interfaceVersion: current
2727
supportedTriggers:
2828
- RCU_IR
@@ -38,4 +38,4 @@ deep_sleep: # Component object begins
3838
- RCU_IR
3939
- RCU_BT
4040
- TIMER
41-
- FRONT_PANEL
41+
- FRONT_PANEL

0 commit comments

Comments
 (0)