Collabora har meddelat mainline Linux-stöd för H.264- och H.265-hårdvaruavkodning på Rockchip RK3588- och RK3576-system-on-chip. Denna utveckling avslutar beroendet av leverantörsspecifika BSP-kärnor för dessa funktioner. Uppdateringen inkluderar nya API-kontroller och korrigeringar för hårdvaruproblem.
Rockchip RK3588- och RK3576 SoC:er, tillsammans med varianter som RK3588S och RK3576J, integrerar VDPU381- och VDPU383-videodekoder respektive. Fram till nu krävde hårdvaruavkodning av H.264 (AVC)- och H.265 (HEVC)-format Rockchip BSP-kärnan. Collaboras senaste arbete introducerar upstream Linux-stöd genom en 17-patchserie som lägger till dekoderfunktionalitet, device tree-bindningar och noder. Viktiga förbättringar inkluderar nya V4L2 HEVC-användarrum-API-kontroller för hantering av kort- och långsiktiga referensbildsset (RPS). Dessa kontroller är nödvändiga för VDPU381- och VDPU383-dekoderarna, till skillnad från vissa andra som kan kringgå dem. Användarrumsapplikationer måste nu tillhandahålla kompletta RPS-tabeller till kärnan. Stöd för dessa kontroller har lagts till i GStreamer 1.28, med preliminär integration i FFmpeg, och det underlättar kompatibilitet med Vulkan Video Decode. Den virtuella statlösa dekodern (visl)-drivrutinen har också uppdaterats för att spåra alla kontrollparametrar. En anmärkningsvärd korrigering hanterar ett IOMMU-återställningsproblem: eftersom IOMMU:n är inbäddad i dekoderarna rensar återställningar adressmappningar, men kärnan behandlade dem tidigare som giltiga. Patchningen återställer cachade mappningar efter återställning, vilket påverkar andra Rockchip IP-block som RGA 2D-grafikacceleratorn. För registerprogrammering antog ingenjörerna en modell baserad på C-strukturer istället för ad hoc-skrivningar för att säkerställa att alla register sätts i rätt ordning och förhindra inkonsekvenser även med standardvärden. Detta tillvägagångssätt främjar fullständighet och förbereder för flerkärnanvändning. Patcharna förväntas slås samman i Linux 7.1, ungefär tre månader efter Linux 6.19:s februarirelease. Collaboras framtida ansträngningar inkluderar flerkärnadekodning på RK3588, AV1-stöd för RK3576, VP9 för RK3588 och VDPU346-kompatibilitet för RK356X SoC:er. En detaljerad sammanfattning finns på Collaboras webbplats.