Pärast poolteist aastat arendustaskluse saab GStreamer 1.20, mis on C keeles kirjutatud ristplatvormide komponentide komplekt, mis võimaldab luua laia spektri multimeedia rakendusi - alates meediamängijatest ja audio/video failide konverteritest kuni VoIP-rakenduste ja voogedastussüsteemideni. GStreamer'i kood levitatakse LGPLv2.1 litsentsi alusel. Samuti on saadaval värskendused pluginadele 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 mähis ja voogedastusteenuse server gst-rtsp-server 20. API ja ABI tasandil on uus väljaanne tagasiühilduv versiooniga 1.0. Binaarsed kogumikud valmistatakse varsti ette Androidi, iOS-i, macOS-i ja Windowsi jaoks (Linuxis on soovitatav kasutada distributsioonist pärit pakette).
GStreamer 1.20 olulised täiustused:
- Arendamine GitLabis on nüüd välja toodud ühe ühise repositori kasutamine, mis on kõigi moodulite jaoks ühtne.
- Uus kõrgema taseme teek GstPlay on lisatud, mille eesmärk on asendada API GstPlayer ning pakkuda sarnaseid funktsioone sisendi esitamiseks, erinedes siiski rakenduste teavitamiseks sõnumite bussist GObjecti signaalide kasutamisest.
- Lisatud WebM vormingus läbipaistvuse teabe dekodeerimise tugi, mis võimaldab esitada VP8/VP9 videoid, millel on läbipaistvad alad.
- Koodimisprofiilidesse on lisatud rakenduspõhiste täiendavate omaduste seadistamise tugi.
- Compositoris on rakendatud video konverteerimise ja segamise tugi mitme niidi režiimis.
- Depayloaderi ja payloaderi klassides on ühtlustatud RTP täiendavate pealkirjade (RTP Header Extensions) toetamine.
- Lisatud SMPTE 2022-1 2-D (Forward Error Correction) mehhanismi eelneva vigade parandamise tugi.
- Encodebin ja transcodebin teostavad VP8, VP9 ja H.265 koodekite jaoks nutika kodeerimise režiimi („smart encoding”), mille käigus koolitus toimub vaid vajaduse korral, samas kui muudel aegadel edastatakse olemasolev voog.
- Souphttpsrc pistikprogrammi ühilduvus libsoup2 ja libsoup3-ga on tagatud.
- Lisatud on võimalus dekodeerida sisendandmeid sub-frame tasemel, mis võimaldab dekodeerimise alustada ilma täismahu kaadri saabumist ootamata. Selle optimeerimise tugi on rakendatud OpenJPEG JPEG 2000, FFmpeg H.264 ja OpenMAX H.264/H.265 dekooderites.
- RTP, WebRTC ja RTSP protokollide video dekodeerimisel on automaatne pakettide kadumise, andmete kahjustumise ja kaadriküsimiste töötlemine.
- Mp4 ja Matroska meediakonteinerite pakkijatesse on lisatud tugi kodekite andmete muutmiseks lennult, mis võimaldab muuta profiili, taset ja lahendust H.264/H.265 sissetulevates voogudesse.
- Lisatud mp4 fragmentiseeritud meediakonteinerite loomise režiim.
- WPE (WebKit Port for Embedded) alusel on lisatud toe helisüsteem.
- CUDA kasutamise võimalus on lisatud värviruumi konverteerimiseks, elemendi skaaleerimiseks ja elementide laadimiseks.
- OpenGL glupload ja gldownload elementidele on lisatud NVMM (NVIDIA Memory Module) mälu tugi.
- WebRTC tuge on parendatud.
- Uus plugin VA-API (Video Acceleration API) on esitatud, toetades rohkem dekoodereid ja postprotsessimise elemente.
- API AppSink on täiendatud sündmuste toega lisaks puhversüsteemidele ja puhversüsteemide loenditele.
- AppSrc on täiendatud täiendavate sisemiste järjekordade seadistustega.
- Rust keele sidemed on uuendatud ja lisatud on 26 uut plugina, mis on kirjutatud Rustis (gst-plugins-rs).
- Lisasid aesdec ja aesenc komponendid AES algoritmi kasutamiseks krüpteerimiseks ja dekrüpteerimiseks.
- Lisasid fakeaudiosink ja videocodectestsink komponendid testimiseks ja silumiseks.
- Tugevdati GStreamer'i minimaalsete kogude loomise tööriistu.
- Lisatud võimalus ehitada koos FFmpeg 5.0-ga.
- Linuxi jaoks on rakendatud MPEG-2 ja VP9 koodekid, mis töötavad ilma oleku salvestamiseta (Stateless).
- Windowsi Direct3D11/DXVA-põhises dekooderis on lisatud tugi AV1 ja MPEG-2 jaoks.
Allikas: opennet.ru
