Másfél éves fejlesztés után megjelent a GStreamer 1.20, C nyelven írt, platformokon átívelő komponenskészlet, amely multimédiás alkalmazások széles skálájának létrehozására szolgál, a médialejátszóktól kezdve az audio/video fájl konvertereken át a VoIP alkalmazásokig és streaming rendszerekig. A GStreamer kód licence az LGPLv2.1. Ezzel 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 bővítmények, valamint a gst-libav 1.20 kötés és a gst-rtsp-server 20 streaming szerver. API és ABI szinten az új kiadás visszafelé kompatibilis az 1.0 ággal. Hamarosan bináris összeállítások készülnek Androidra, iOS-re, macOS-re és Windowsra (Linuxban javasolt a disztribúcióból származó csomagok használata).
A GStreamer 1.20 legfontosabb fejlesztései:
- A GitLab fejlesztése átállt egyetlen, az összes modulra közös tárhely használatára.
- Egy új, magas szintű GstPlay könyvtár került hozzáadásra, amely felváltja a GstPlayer API-t, és hasonló funkcionalitást kínál a tartalom lejátszásához, azzal a különbséggel, hogy üzenetbuszt használ az alkalmazások értesítésére a GObject jelek helyett.
- Hozzáadott támogatás a WebM átlátszósági információk dekódolásához, lehetővé téve az átlátszó területekkel rendelkező VP8/VP9 videók lejátszását.
- A kódolási profilok mostantól támogatják további alkalmazás-specifikus tulajdonságok beállítását.
- A Compositor támogatja a többszálú videó konvertálást és keverést.
- A depayloader és a payloader osztályok egységes támogatást nyújtanak a további RTP fejlécekkel (RTP Header Extensions) való munkavégzéshez.
- Az SMPTE 2022-1 2-D (Forward Error Correction) mechanizmus támogatása hozzáadva.
- A VP8, VP9 és H.265 kodekek kódolása és átkódolása egy intelligens kódolási módot valósít meg, amelyben az átkódolás csak szükség esetén történik, a fennmaradó időben pedig a meglévő adatfolyamot továbbítják.
- A souphttpsrc beépülő modul immár kompatibilis a libsoup2-vel és a libsoup3-mal.
- Hozzáadtuk a bemeneti adatok dekódolásának lehetőségét a közbenső keretek (al-keret) szintjén, amely lehetővé teszi a dekódolás megkezdését anélkül, hogy megvárná a teljes képkocka vételét. Az optimalizálást az OpenJPEG JPEG 2000, FFmpeg H.264 és OpenMAX H.264/H.265 dekóderek támogatják.
- Az RTP, WebRTC és RTSP protokollokhoz való videó dekódolásakor a csomagvesztés, az adatsérülés és a kulcskeret kérések automatikus kezelése biztosított.
- Az mp4 és a Matroska médiakonténer csomagolókhoz hozzáadták a kodekadatok menet közbeni módosításának támogatását, amely lehetővé teszi a H.264/H.265 bemeneti adatfolyamok profiljának, szintjének és felbontásának megváltoztatását.
- Egy mód hozzáadva töredezett mp4 médiatárolók létrehozásához.
- Hang támogatást adtunk a WPE (WebKit Port for Embedded) alapú porthoz.
- Hozzáadtuk a CUDA használatának lehetőségét színtér-konverzióhoz, elemméretezéshez és elembetöltéshez.
- Az NVMM (NVIDIA Memory Module) memória támogatása hozzáadva az OpenGL glupload és gldownload elemekhez.
- Továbbfejlesztett WebRTC támogatás.
- Új beépülő modult javasoltak a VA-API-hoz (Video Acceleration API), amely több dekódert és utófeldolgozó elemet támogat.
- Az AppSink API a pufferek és pufferlisták mellett az események támogatását is hozzáadta.
- A belső várólistákhoz további beállításokat adtunk az AppSrc-hez.
- Frissítettük a Rust nyelvi kötéseket, és hozzáadtunk 26 új, Rust nyelven írt bővítményt (gst-plugins-rs).
- Aesdec és aesenc elemek hozzáadva az AES algoritmussal történő titkosításhoz és visszafejtéshez.
- Fakeaudiosink és videocodectestsink elemek hozzáadva a teszteléshez és a hibakereséshez.
- Továbbfejlesztett eszközök minimalista GStreamer buildek létrehozásához.
- Hozzáadtuk az FFmpeg 5.0-val való építési képességet.
- Linux esetén az MPEG-2 és VP9 kodekek olyan verziói kerültek megvalósításra, amelyek mentési állapot nélkül működnek (állapot nélküli).
- Windows esetén AV3 és MPEG-11 támogatást adtunk a Direct1D2/DXVA alapú dekóderhez.
Forrás: opennet.ru