Másfél év fejlesztés után megjelent a GStreamer 1.20, egy C nyelven írt, platformfüggetlen komponenscsalád multimédia alkalmazások széles spektrumának létrehozásához, a médialejátszóktól és audio/video fájlkonverterektől kezdve a VoIP alkalmazásokon át a streaming rendszerekig. A GStreamer forráskódja az LGPLv2.1 licenc alatt terjesztésre kerül. Egyidejűleg elérhetők a gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20 plugin frissítések, valamint a gst-libav 1.20 és a gst-rtsp-server 20 streaming szerver. Az API és ABI szinten az új kiadás visszafelé kompatibilis az 1.0 ággal. A bináris csomagok a közeljövőben elérhetők lesznek Android, iOS, macOS és Windows rendszerekre (Linux alatt javasolt a disztribúcióból származó csomagok használata).
A GStreamer 1.20 kulcsfontosságú fejlesztései:
- A GitLab fejlesztés egységes tárolóra váltott, amely közös minden modul számára.
- Új, magas szintű GstPlay könyvtár került hozzáadásra, amely a GstPlayer API helyébe lépett, és hasonló funkciókat kínál a tartalom lejátszására, eltérően a GObject jelek helyett üzenetbusz használatával értesíti az alkalmazásokat.
- Hozzáadva a WebM formátumban lévő átlátszósági információk dekódolásának támogatása, amely lehetővé teszi a VP8/VP9 videók átlátszó területekkel való lejátszását.
- A kódolási profikhoz hozzáadva az alkalmazás-specifikus további tulajdonságok beállításának támogatása.
- A Compositorban megvalósult videó átkonvertálásának és keverésének támogatása több szálon.
- A depayloader és payloader osztályokban egységesített támogatás az RTP (RTP Header Extensions) kiegészítő fejléc céljából.
- Hozzáadva a SMPTE 2022-1 2-D (Forward Error Correction) mechanizmus előzetes hibakorrekciójának támogatása.
- Az encodebin és transcodebin esetében a VP8, VP9 és H.265 codec-ekhez okos kódolási mód került bevezetésre, ahol a rekódolás csak szükség esetén történik, egyébként a meglévő streamet továbbítják.
- Biztosítva a souphttpsrc plugin kompatibilitását a libsoup2 és libsoup3 verziókkal.
- Hozzáadva az input adatok dekódolásának lehetősége az interframe szinten (sub-frame), amely lehetővé teszi a dekódolás megkezdését anélkül, hogy a teljes keretet meg kellene várni. A támogatás aktív a következők dekódereiben: OpenJPEG JPEG 2000, FFmpeg H.264 és OpenMAX H.264/H.265.
- A videók RTP, WebRTC és RTSP protokollokhoz való dekódolásakor automatikusan kezelik a csomagvesztést, az adatkárosodást és a kulcsszámkéréseket.
- Az mp4 és Matroska médiakonfiguráló csomagokhoz hozzáadva a codec adatok élő módosításának támogatása, amely lehetővé teszi a profil, szint és felbontás változtatását az H.264/H.265 bejövő folyamaihoz.
- Hozzáadva a fragmentált mp4 médiakonfiguráló létrehozásának módja.
- A WPE alapú porthoz (WebKit Port for Embedded) hozzáadva a hang támogatása.
- CUDA használatának lehetősége a színterek átkonvertálásához, az elemek skálázásához és a betöltésükhöz került bevezetésre.
- Az OpenGL glupload és gldownload elemekhez hozzáadták az NVMM (NVIDIA Memory Module) memória támogatását.
- Javították a WebRTC támogatását.
- Új VA-API (Video Acceleration API) plugin van ajánlva, amely több dekódolót és utófeldolgozási elemet támogat.
- Az AppSink API-hoz hozzáadva az események támogatása a pufferek és pufferlajstrok mellett.
- Az AppSrc-hoz további belső sorok konfigurációs lehetőségei kerültek hozzáadásra.
- Frissítve a Rust nyelvű kötések, valamint 26 új Rust nyelven írt plugin (gst-plugins-rs) került hozzáadásra.
- Hozzáadva aesdec és aesenc elemek az AES algoritmus használatával történő titkosításhoz és visszafejtéshez.
- Hozzáadva fakeaudiosink és videocodectestsink elemek a teszteléshez és hibakereséshez.
- Javították a minimalista GStreamer összeállítások létrehozására szolgáló eszközöket.
- Lehetőség adódik FFmpeg 5.0-val való összeállításra.
- Linux alatt megvalósultak MPEG-2 és VP9 codec változatok állapotmentes működéssel.
- Windows alatt a Direct3D11/DXVA alapú dekódolóhoz hozzáadva az AV1 és MPEG-2 támogatása.
Forrás: opennet.ru
