Po viac ako roku a pol vývoja bol vydaný GStreamer 1.20, multiplatformová sada komponentov napísaná v jazyku C na vytváranie širokej škály multimediálnych aplikácií, od prehrávačov a konvertorov audio/video súborov až po VoIP aplikácie a streamovacie systémy. Kód GStreamer je distribuovaný pod licenciou LGPLv2.1. Zároveň sú k dispozícii aktualizácie pluginov gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, ako aj obal gst-libav 1.20 a server pre streamovanie gst-rtsp-server 20. Na úrovni API a ABI je nová verzia spätne kompatibilná s vetvou 1.0. Binárne zostavy budú čoskoro pripravené pre Android, iOS, macOS a Windows (v Linuxe sa odporúča používať balíčky z distribúcie).
Kľúčové vylepšenia GStreamer 1.20:
- Vývoj na GitLab bol prevedený na používanie jedného repozitára pre všetky moduly.
- Pridali sme novú vysokú knižnicu GstPlay, ktorá nahrádza API GstPlayer a ponúka podobné funkcie pre prehrávanie obsahu, ktoré sa líšia použitím správy aplikácií cez správnu zbernicu namiesto signálov GObject.
- Pridala sa podpora dekódovania informácií o transparentnosti vo formáte WebM, ktorá umožňuje prehrávanie videa VP8/VP9 s transparentnými oblasťami.
- Do profilov kódovania bola pridaná podpora pre nastavenie ďalších vlastností špecifických pre aplikácie.
- V Compositor bola implementovaná podpora transformácie a zmiešavania videa v mnohotečkovom režime.
- V triedach depayloader a payloader bola unifikovaná podpora pre prácu s dodatočnými hlavičkami RTP (RTP Header Extensions).
- Pridala sa podpora mechanizmu predbežnej korekcie chýb SMPTE 2022-1 2-D (Forward Error Correction).
- Do encodebin a transcodebin pre kodeky VP8, VP9 a H.265 bola implementovaná inteligentná režim kódovania („smart encoding“), pri ktorom sa transcoding vykonáva iba v prípade potreby, inak sa prenos existujúceho prúdu vykonáva normálne.
- Zabezpečená kompatibilita pluginu souphttpsrc s libsoup2 a libsoup3.
- Pridala sa možnosť dekódovania vstupných dát na úrovni medzifázových snímok (sub-frame), čo umožňuje začať dekódovanie bez čakania na doručenie úplného snímku. Podpora tejto optimalizácie je aktivovaná v dekodéroch OpenJPEG JPEG 2000, FFmpeg H.264 a OpenMAX H.264/H.265.
- Pri dekódovaní videa pre protokoly RTP, WebRTC a RTSP je zabezpečené automatické spracovanie straty paketov, poškodenej dát a žiadostí o kľúčové snímky.
- Do obalovačov mediálnych kontajnerov mp4 a Matroska bola pridaná podpora dynamickej zmeny kódovacích údajov, čo umožňuje meniť profil, úroveň a rozlíšenie pre vstupné toky H.264/H.265.
- Bol pridaný režim na vytváranie fragmentovaných mediálnych kontajnerov mp4.
- Do portu založeného na WPE (WebKit Port for Embedded) bola pridaná podpora zvuku.
- Bola pridaná možnosť využiť CUDA na konverziu farebného priestoru, škálovanie prvkov a načítanie prvkov.
- Pre prvky OpenGL glupload a gldownload bola pridaná podpora pamäti NVMM (NVIDIA Memory Module).
- Bola vylepšená podpora WebRTC.
- Bol predstavený nový plugin pre VA-API (Video Acceleration API), ktorý podporuje viac dekodérov a prvkov po spracovaní.
- Do API AppSink bola pridaná podpora udalostí navyše k bufferom a zoznamom bufferov.
- V AppSrc boli pridané ďalšie nastavenia vnútorných frontov.
- Boli aktualizované väzby v jazyku Rust a pridaných 26 nových pluginov napísaných v Rust (gst-plugins-rs).
- Boli pridané prvky aesdec a aesenc na šifrovanie a dešifrovanie pomocou algoritmu AES.
- Boli pridané prvky fakeaudiosink a videocodectestsink na testovanie a ladenie.
- Boli vylepšené prostriedky na vytváranie minimalistických zostáv GStreamer.
- Bola pridaná možnosť zostavenia s FFmpeg 5.0.
- Pre Linux boli implementované varianty kodekov MPEG-2 a VP9, ktoré fungujú bez uchovávania stavu (Stateless).
- Pre Windows bola do dekodérov na báze Direct3D11/DXVA pridaná podpora AV1 a MPEG-2.
Zdroj: opennet.ru
