Skip to content

RDK HALIF AIDL 0.15.0 Release Notes

Release date: 1 May 2026

Base comparison: 0.14.0...0.15.0

Highlights

  • Established drm as the canonical content-protection HAL (replacing the cdm placeholder).
  • Introduced the audiomixer HAL interface family.
  • Re-shaped clock association across audiosink, videosink and avclock so the sink owns the AVClock attachment.
  • Generation 2 redesign of compositeinput, with explicit Property enum, port lifecycle, and consolidated telemetry.
  • Generation 2 redesign of motion_sensor, adopting the controller pattern with StartConfig and diagnostic APIs.
  • Consolidated EOS handling on the decoder/sink pipeline.
  • Added planecontrol graphics framebuffer handling (IGraphicsFbProvider).
  • Tightened reviewer metadata model — VTS_Team renamed to Vendor_Layer_Team; redundant generation field removed; dissolved RTAB_Group dropped.
  • Comprehensive documentation upgrades for panel, flash, audiomixer, and audio/video sync.

Interface Changes

New Interfaces

  • drm HAL family — IDrmPlugin, IDrmPluginListener, IDrmFactory, ICryptoPlugin, keying/metric/status types. (#341, #405, #438)
  • audiomixer HAL family — IAudioMixer, IAudioMixerController, IAudioOutputPort, IAudioMixerEventListener, and supporting parcelables/enums. (#21, #327)
  • planecontrol graphics framebuffer — IGraphicsFbProvider, IGraphicsFbProviderListener, GraphicsFbCapabilities, GraphicsFbInfo. (#402, #423)

Additive API Updates

  • avclock: defined a primed sub-state, added onPrimed() callback, made getCurrentClockTime() @nullable. (#471, #472)
  • videodecoder: declared supported output pixel formats per CodecCapabilities. (#469, #470)
  • audiodecoder / videodecoder / audiosink / videosink: added input-buffer-availability callbacks for back-pressure. (#269, #305, #420)
  • audiosink / videosink / avclock: added attachClock / detachClock to the sink controllers; the sink now owns clock association. (#355)
  • sensor: added missing CMakeLists.txt and @VintfStability annotations across motion + thermal. (#452, #464)
  • audiodecoder: clarified trimStartNs / trimEndNs semantics on InputBufferMetadata and FrameMetadata. (#444, #465)

Breaking Changes

  • audiosink / videosink / avclock — sink-owned AVClock association. The sink takes ownership of attaching/detaching its clock via attachClock(...) / detachClock(). Existing mid-pipeline clock association no longer applies. (#355)
  • motion_sensor — controller pattern adoption. IMotionSensor is replaced by an IMotionSensorController + listener + manager split; sensor start is configured via StartConfig. (#427)
  • decoder — single EOS path. EOS is now signalled exclusively via InputBufferMetadata / FrameMetadata; previous per-call EOS routes are removed. (#403)
  • compositeinput — generation 2. Listener split realigned to the hdmiinput pattern; Property enum becomes the canonical key reference; signalQuality removed from PortStatus; HFP supportedSignalStatuses removed; port metrics consolidated. (#382, #408)
  • metadata schema — the redundant generation field is removed; VTS_Team renamed to Vendor_Layer_Team; RTAB_Group dropped. (#361, #375)

Migration Notes

  • Audio/video sink integrators: move clock attachment to the sink. Replace mid-pipeline clock-association calls with attachClock(...) on the sink controller (and detachClock() on teardown).
  • Motion sensor integrators: re-target the controller manager (IMotionSensorManager / IMotionSensorController) and configure start via StartConfig.
  • Decoder integrators: route EOS through InputBufferMetadata.endOfStream (input side) and FrameMetadata.endOfStream (output side) only.
  • Composite input integrators: update to the gen-2 port lifecycle, consume Property enum keys, and read consolidated metrics.
  • Tooling consumers reading metadata.yaml: stop reading generation; use Vendor_Layer_Team in place of VTS_Team; do not expect RTAB_Group.

Notable Pull Requests

  • 355 — Sink-owned AVClock association.

  • 403 — Decoder EOS path consolidation.

  • 427 — motion_sensor controller pattern + StartConfig.

  • 472 — avclock primed sub-state + onPrimed().

  • 382 / #408 — compositeinput generation 2.

  • 423 — planecontrol graphics framebuffer.

  • 405 / #341 / #438 — drm HAL addition + metadata.

  • 327 / #353 / #368 — audiomixer HAL + control-flow documentation.

  • 361 / #375 — metadata reviewer-model refactor (Vendor_Layer_Team, generation removal).

  • 374 / #378 — Panel HAL complete documentation.

  • 22 / #340 / #370 — Flash HAL documentation + post-flash signature verification requirements.

  • 84 — API evolution specification.

  • 304 — INVALID_HANDLE pattern removal and exception-handling documentation.

  • 469 / #470 — videodecoder supported output pixel formats.

  • 269 / #305 / #420 — decoder/sink back-pressure callbacks.

  • 452 / #464 — sensor CMakeLists + @VintfStability fixes.

  • 444 / #465 — audiodecoder trim semantics.

  • 389 / #390 / #392 / #394 — sensor / videodecoder doc fixes.