Bir yarim yillik rivojlanishdan so'ng GStreamer 1.20 chiqarildi, bu C tilida yozilgan multimedia ilovalari keng doirasini yaratish uchun komponentlar to'plami, media pleerlar va audio/video fayl konvertorlari, VoIP ilovalari va oqim tizimlari. GStreamer kodi LGPLv2.1 ostida litsenziyalangan. Shu bilan birga, gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20 plaginlari, shuningdek, gst-libav 1.20 bogʻlovchi va gst-rtsp-server 20 oqim serveri. API va ABI darajasida yangi versiya 1.0 filiali bilan orqaga qarab mos keladi. Tez orada Android, iOS, macOS va Windows uchun ikkilik assambleyalar tayyorlanadi (Linux-da tarqatish paketlaridan foydalanish tavsiya etiladi).
GStreamer 1.20 dagi asosiy yaxshilanishlar:
- GitLab-da ishlanma barcha modullar uchun umumiy bo'lgan yagona ombordan foydalanishga o'tkazildi.
- Yangi yuqori darajadagi GstPlay kutubxonasi qoʻshildi, u GstPlayer API oʻrnini egallaydi va kontentni oʻynatish uchun oʻxshash funksiyalarni taklif etadi, ular GObject signallari oʻrniga ilovalarni xabardor qilish uchun xabarlar avtobusidan foydalanish bilan farqlanadi.
- WebM shaffofligi ma'lumotlarini dekodlash uchun qo'shilgan yordam, shaffof maydonlar bilan VP8/VP9 videolarini ijro etish imkonini beradi.
- Endi kodlash profillari ilovaga xos qoʻshimcha xususiyatlarni oʻrnatishni qoʻllab-quvvatlaydi.
- Compositor ko'p tarmoqli video konvertatsiya va aralashtirishni qo'llab-quvvatlaydi.
- Depayloader va payloader sinflari qo'shimcha RTP sarlavhalari (RTP Header Extensions) bilan ishlash uchun yagona yordamga ega.
- SMPTE 2022-1 2-D (Forward Error Correction) mexanizmi uchun qo'shimcha yordam.
- VP8, VP9 va H.265 kodeklari uchun encodebin va transcodebin aqlli kodlash rejimini amalga oshiradi, unda transkodlash faqat kerak bo'lganda amalga oshiriladi va qolgan vaqt davomida mavjud oqim yo'naltiriladi.
- souphttpsrc plagini endi libsoup2 va libsoup3 bilan mos keladi.
- Kirish ma'lumotlarini oraliq kadrlar (sub-freym) darajasida dekodlash imkoniyati qo'shildi, bu sizga to'liq kadr qabul qilinishini kutmasdan dekodlashni boshlash imkonini beradi. Ushbu optimallashtirishni qo'llab-quvvatlash OpenJPEG JPEG 2000, FFmpeg H.264 va OpenMAX H.264/H.265 dekoderlariga kiritilgan.
- RTP, WebRTC va RTSP protokollari uchun videoni dekodlashda paketlarning yo'qolishi, ma'lumotlarning buzilishi va asosiy ramka so'rovlarini avtomatik boshqarish ta'minlanadi.
- Kodek ma'lumotlarini tezda o'zgartirishni qo'llab-quvvatlash mp4 va Matroska media konteyner paketlariga qo'shildi, bu sizga H.264/H.265 kirish oqimlari uchun profil, daraja va ruxsatni o'zgartirish imkonini beradi.
- Parchalangan mp4 media konteynerlarini yaratish rejimi qo'shildi.
- WPE (WebKit Port for Embedded) asosidagi portga audio qo'llab-quvvatlash qo'shildi.
- Rang maydonini o'zgartirish, elementlarni masshtablash va elementlarni yuklash uchun CUDA dan foydalanish imkoniyati qo'shildi.
- OpenGL glupload va gldownload elementlari uchun NVMM (NVIDIA xotira moduli) xotirasini qo'llab-quvvatlash qo'shildi.
- Yaxshilangan WebRTC yordami.
- VA-API (Video Acceleration API) uchun yangi plagin taklif qilindi, u ko'proq dekoderlar va qayta ishlashdan keyingi elementlarni qo'llab-quvvatlaydi.
- AppSink API buferlar va bufer ro'yxatlariga qo'shimcha ravishda voqealarni qo'llab-quvvatladi.
- AppSrc-ga ichki navbatlar uchun qo'shimcha sozlamalar qo'shildi.
- Rust tilining ulanishlari yangilandi va Rust-da yozilgan 26 ta yangi plagin qo'shildi (gst-plugins-rs).
- AES algoritmi yordamida shifrlash va dekodlash uchun aesdec va aesec elementlari qo‘shildi.
- Sinov va disk raskadrovka uchun fakeaudiosink va videocodecttestsink elementlari qo‘shildi.
- Minimalistik GStreamer tuzilmalarini yaratish uchun yaxshilangan vositalar.
- FFmpeg 5.0 bilan qurish qobiliyati qo'shildi.
- Linux uchun MPEG-2 va VP9 kodeklarining versiyalari joriy qilingan, ular holatni saqlamasdan ishlaydi (Statesiz).
- Windows uchun Direct3D11/DXVA-ga asoslangan dekoderga AV1 va MPEG-2 yordami qo'shilgan.
Manba: opennet.ru