Pärast poolteist aastat kestnud arendustööd ilmus GStreamer 1.20, C-keeles kirjutatud platvormideülene komponentide komplekt, mis on ette nähtud mitmesuguste multimeediumirakenduste loomiseks alates meediumipleieritest ja heli-/videofailide konverteritest kuni VoIP-rakenduste ja voogedastussüsteemideni. GStreameri kood on litsentsitud LGPLv2.1 alusel. Samal ajal on saadaval uuendused pistikprogrammidele gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, samuti sidumine gst-libav 1.20 ja gst-rtsp-server 20 voogedastusserver. API ja ABI tasemel ühildub uus versioon tagasi 1.0 haruga. Peagi valmistatakse ette binaarkooste Androidi, iOS-i, macOS-i ja Windowsi jaoks (Linuxis on soovitatav kasutada distributsiooni pakette).
GStreamer 1.20 peamised täiustused:
- GitLabi arendus on üle viidud kõigi moodulite jaoks ühisele hoidlale.
- Lisatud on uus kõrgetasemeline GstPlay teek, mis asendab GstPlayer API ja pakub sisu esitamiseks sarnast funktsionaalsust, mis erineb sellest, et GObjecti signaalide asemel kasutatakse rakenduste teavitamiseks sõnumisiini.
- Lisatud WebM-i läbipaistvuse teabe dekodeerimise tugi, mis võimaldab esitada läbipaistvate aladega VP8/VP9 videoid.
- Kodeerimisprofiilidel on nüüd tugi täiendavate rakendusespetsiifiliste atribuutide seadistamiseks.
- Compositor toetab mitme lõimega videote teisendamist ja segamist.
- Depayloader ja payloader klassidel on ühtne tugi täiendavate RTP päistega (RTP Header Extensions) töötamiseks.
- Lisati tugi SMPTE 2022-1 2-D (edasi veaparandus) mehhanismile.
- Encodebin ja transcodebin VP8, VP9 ja H.265 koodekite jaoks rakendavad nutikat kodeerimisrežiimi, kus transkodeerimine toimub ainult vajaduse korral ja ülejäänud aja edastatakse olemasolev voog.
- Souphttpsrc pistikprogramm ühildub nüüd libsoup2 ja libsoup3-ga.
- Lisatud on võimalus dekodeerida sisendandmeid vahekaadrite (alamkaadri) tasemel, mis võimaldab alustada dekodeerimist ilma täiskaadri vastuvõtmist ootamata. Selle optimeerimise tugi sisaldub OpenJPEG JPEG 2000, FFmpeg H.264 ja OpenMAX H.264/H.265 dekoodrites.
- Video dekodeerimisel RTP-, WebRTC- ja RTSP-protokollide jaoks on ette nähtud pakettkadude, andmete riknemise ja võtmekaadri taotluste automaatne käsitlemine.
- Mp4 ja Matroska meediumikonteinerite pakkijatele on lisatud käigu pealt kodekiandmete muutmise tugi, mis võimaldab muuta H.264/H.265 sisendvoogude profiili, taset ja eraldusvõimet.
- Lisatud on režiim killustatud mp4-meediumikonteinerite loomiseks.
- WPE-põhisele portile (WebKit Port for Embedded) on lisatud helitugi.
- Lisati võimalus kasutada CUDA-d värviruumi teisendamiseks, elementide skaleerimiseks ja elementide laadimiseks.
- Lisatud on NVMM-i (NVIDIA mälumooduli) mälu tugi OpenGL-i glupload- ja gldownload-elementide jaoks.
- Täiustatud WebRTC tugi.
- VA-API (Video Acceleration API) jaoks on välja pakutud uus pistikprogramm, mis toetab rohkem dekoodreid ja järeltöötluselemente.
- AppSink API on lisaks puhvritele ja puhvrite loenditele lisanud sündmuste toe.
- Rakendusse AppSrc on lisatud sisemiste järjekordade lisaseaded.
- Värskendati Rusti keele sidumisi ja lisati 26 uut Rustis kirjutatud pluginat (gst-plugins-rs).
- Lisatud aesdec ja aesenc elemendid krüptimiseks ja dekrüpteerimiseks, kasutades AES-algoritmi.
- Lisatud fakeaudiosink ja videocodectestsink elemendid testimiseks ja silumiseks.
- Täiustatud tööriistad minimalistlike GStreameri ehituste loomiseks.
- Lisatud on võimalus ehitada FFmpeg 5.0-ga.
- Linuxi jaoks on rakendatud MPEG-2 ja VP9 koodekite versioonid, mis töötavad ilma oleku salvestamiseta (olekuta).
- Windowsi jaoks on Direct3D11/DXVA-põhisele dekoodrile lisatud AV1 ja MPEG-2 tugi.
Allikas: opennet.ru