Pärast poolteist aastat arendust on välja antud GStreamer 1.20, mis on C keeles kirjutatud platvormidevaheline koostisosade kogum, et luua laia valikut meedia rakendusi, alates meediapleieritest ja audio/videofailide konverteritest kuni VoIP rakenduste ja voogedastussüsteemideni. GStreameri kood on litsentseeritud LGPLv2.1. Samuti on saadaval uuendused pistikprogrammide jaoks gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, samuti gst-libav 1.20 ümberpaigutus ja voogedastuse server gst-rtsp-server 20. API ja ABI tasandil on uus väljaanne tagurpidi ühilduv 1.0 haruga. Binaarsed kogumikud valmistatakse peagi ette Androidi, iOS-i, macOS-i ja Windowsi jaoks (Linuxis soovitatakse kasutada distributsi pakette).
GStreamer 1.20 peamised täiustused:
- Arendus GitLabis on üle viidud ühe repositooriumi kasutamisele, mis on ühine kõigi moodulite jaoks.
- Lisatud on uus kõrgema taseme teek GstPlay, mis asendab API GstPlayer ja pakub sarnaseid funktsioone sisu esitamiseks, erinevusega, et see kasutab rakenduste teavitamiseks sõnumibussi na GObject signaalide asemel.
- Lisatud on toetus WebM formaadi läbipaistvuse teabe dekodeerimiseks, mis võimaldab esitada VP8/VP9 videoid läbipaistvate piirkondadega.
- Kodeerimisprofiilidesse on lisatud tugi rakendusspefiaalsete lisaseadistuste konfigureerimiseks.
- Compositoris on rakendatud video konverteerimise ja segamise tugi mitme niidi režiimis.
- Klasse depayloader ja payloader on ühtlustatud RPT (RTP Header Extensions) lisapeade toega.
- Lisatud on toetus SMPT 2022-1 2-D (Eelneva vea parandamise) mehhanismi jaoks.
- Encodebin ja transcodebin jaoks VP8, VP9 ja H.265 koodekid on rakendatud nutikas kodeerimise režiim, kus uuesti kodeerimist tehakse ainult vajaduse korral ja muul ajal edastatakse olemasolev voog.
- Pistikprogrammi souphttpsrc ühilduvus libsoup2 ja libsoup3-ga on tagatud.
- Lisatud on toetus sisendandmete dekodeerimisele vahemike tasemel (sub-frame), mis võimaldab alustada dekodeerimist, ootamata täieliku kaadri saamist. See optimeerimise toetus on aktiveeritud dekodeerijates OpenJPEG JPEG 2000, FFmpeg H.264 ja OpenMAX H.264/H.265.
- Videodekoodimise jaoks RTP, WebRTC ja RTSP protokollide jaoks on tagatud automaatne pakettide kadumise, andmete kahjustumise ja võtmeümbrike päringute töötlemine.
- MP4 ja Matroska meediakonteinerite pakkijatele on lisatud tugi koodeki andmete dünaamiliseks muutmiseks, mis võimaldab muuta profiili, taset ja resolutsiooni H.264/H.265 sisendvoolude jaoks.
- Fragmenteeritud MP4 meediakonteinerite loomise režiim on lisatud.
- WPE (WebKit Port for Embedded) põhine sadam on saanud heli toetuse.
- CUDA kasutamise võimalus on lisatud värviruumi konverteerimiseks, elementide skaleerimiseks ja elementide laadimiseks.
- OpenGL glupload ja gldownload elementidele on lisatud NVMM (NVIDIA Memory Module) mälu tugi.
- WebRTC toetust on parendatud.
- Uus VA-API (Video Acceleration API) plugin on pakutud, toetades rohkem dekoodereid ja postprotsessimise elemente.
- AppSink API-s on lisatud toe sündmustele lisaks puhverdamisele ja puhvrite loenditele.
- AppSrc-le on lisatud täiendavad sisemiste järjekordade seadistused.
- Rust keeles sidemed on uuendatud ja 26 uut Rust keeles kirjutatud pluginit (gst-plugins-rs) on lisatud.
- AES-algoritmi abil krüptimiseks ja krüptovõtete dekodeerimiseks on lisatud aesdec ja aesenc elemendid.
- Testimiseks ja tõrkeotsinguks on lisatud fakeaudiosink ja videocodectestsink elemendid.
- GStreameri minimalistlike koostisosade loomise vahendeid on parendatud.
- FFmpeg 5.0 toega koostamise võimalus on lisatud.
- Linuxi jaoks on teostatud MPEG-2 ja VP9 koodekite variandid, mis töötavad ilma oleku salvestamiseta (Stateless).
- Windowsi jaoks on Direct3D11/DXVA põhises dekooderisse lisatud AV1 ja MPEG-2 tugi.
Allikas: opennet.ru
