Puolentoista vuoden kehitystyön jälkeen julkaistiin GStreamer 1.20, C-kielellä kirjoitettu monikäyttöinen komponenttisarja, jolla voidaan luoda monenlaisia multimediasovelluksia mediasoittimista ja ääni-/videotiedostomuuntimista VoIP-sovelluksiin ja suoratoistojärjestelmiin. GStreamer-koodi on lisensoitu LGPLv2.1:llä. Samanaikaisesti saatavilla on päivitykset laajennuksiin gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, sekä gst-libav 1.20 -sidos ja gst-rtsp-server 20 -suoratoistopalvelin. API- ja ABI-tasolla uusi julkaisu on taaksepäin yhteensopiva 1.0-haaran kanssa. Binäärikokoonpanot valmistellaan pian Androidille, iOS:lle, macOS:lle ja Windowsille (Linuxissa suositellaan jakelun pakettien käyttöä).
Tärkeimmät parannukset GStreamer 1.20:ssa:
- GitLabin kehitystyö on siirretty käyttämään yhtä kaikille moduuleille yhteistä arkistoa.
- Uusi korkean tason GstPlay-kirjasto on lisätty, joka korvaa GstPlayer API:n ja tarjoaa samankaltaisia toimintoja sisällön toistamiseen, erottuen käyttämällä viestiväylää sovellusten ilmoittamiseen GObject-signaalien sijaan.
- Lisätty tuki WebM:n läpinäkyvyystietojen purkamiseen, mikä mahdollistaa VP8/VP9-videoiden toiston läpinäkyvillä alueilla.
- Koodausprofiileissa on nyt tuki lisäsovelluskohtaisten ominaisuuksien asettamiseen.
- Compositor tukee monisäikeistä videon muuntamista ja miksausta.
- Depayloader- ja payloader-luokilla on yhtenäinen tuki muiden RTP-otsikoiden (RTP Header Extensions) työskentelylle.
- Lisätty tuki SMPTE 2022-1 2-D (Forward Error Correction) -mekanismille.
- Encodebin ja transcodebin VP8-, VP9- ja H.265-koodekkeille toteuttavat älykkään koodaustilan, jossa transkoodaus suoritetaan vain tarvittaessa ja muun ajan olemassa olevaa virtaa välitetään edelleen.
- Souphttpsrc-laajennus on nyt yhteensopiva libsoup2:n ja libsoup3:n kanssa.
- Lisätty kyky purkaa syötetietoa välikehysten (alikehysten) tasolla, jonka avulla voit aloittaa dekoodauksen odottamatta koko kehyksen vastaanottamista. Tämän optimoinnin tuki sisältyy OpenJPEG JPEG 2000-, FFmpeg H.264- ja OpenMAX H.264/H.265 -dekooderiin.
- Kun dekoodataan videota RTP-, WebRTC- ja RTSP-protokollia varten, pakettihäviöiden, tietojen vioittumisen ja avainkehyspyyntöjen automaattinen käsittely tarjotaan.
- Tuki koodekkitietojen muuttamiseen lennossa on lisätty mp4- ja Matroska-mediasäiliöpakkauksiin, mikä mahdollistaa H.264/H.265-tulovirtojen profiilin, tason ja resoluution muuttamisen.
- Lisätty tila pirstoutuneiden mp4-mediasäiliöiden luomiseen.
- Äänituki on lisätty WPE (WebKit Port for Embedded) -pohjaiseen porttiin.
- Lisätty mahdollisuus käyttää CUDA:ta väriavaruuden muuntamiseen, elementtien skaalaukseen ja elementtien lataamiseen.
- Lisätty tuki NVMM (NVIDIA Memory Module) -muistille OpenGL-glupload- ja gldownload-elementeille.
- Parannettu WebRTC-tuki.
- VA-API:lle (Video Acceleration API) on ehdotettu uutta laajennusta, joka tukee useampia dekoodeja ja jälkikäsittelyelementtejä.
- AppSink API on lisännyt tapahtumien tuen puskurien ja puskuriluetteloiden lisäksi.
- AppSrc:iin on lisätty lisäasetuksia sisäisille jonoille.
- Päivitetty Rust-kielisidokset ja lisätty 26 uutta Rust-kielellä kirjoitettua laajennusta (gst-plugins-rs).
- Lisätty aesdec- ja aesenc-elementit salaukseen ja salauksen purkamiseen AES-algoritmin avulla.
- Lisätty fakeaudiosink- ja videocodectestsink-elementit testausta ja virheenkorjausta varten.
- Parannetut työkalut minimalististen GStreamer-koontiversioiden luomiseen.
- Lisätty kyky rakentaa FFmpeg 5.0:lla.
- Linuxille on otettu käyttöön versiot MPEG-2- ja VP9-koodekeista, jotka toimivat ilman tallennustilaa (Stateles).
- Windowsille AV3- ja MPEG-11-tuki on lisätty Direct1D2/DXVA-pohjaiseen dekooderiin.
Lähde: opennet.ru