Боротьба США за суверенітет у виробництві пам'яті
Еволюція мультимедійного стека GStreamer 1.28.5

GStreamer вже давно переріс статус простої бібліотеки для відтворення звуку та відео, перетворившись на повноцінний кросплатформний фреймворк-конструктор. Його можливості охоплюють увесь спектр мультимедійних завдань: від створення простих медіаплеєрів і конвертерів до розгортання складних VoIP-систем та інфраструктур професійного потокового мовлення. Динаміка оновлень останніх років свідчить про стрімкий темп еволюції: за періодом релізів 1.24.0 та 1.26.0 послідував вихід мажорної гілки 1.28, яка заклала фундамент для поточного оновлення.
Особлива увага в гілці 1.28 приділена модернізації апаратного прискорення та переходу на безпечніші технології розробки. Інтеграція Vulkan дозволила реалізувати ефективний кодувальник H.264 та додати підтримку 10-бітного декодування для H.265, що є критично важливим для роботи з HDR-контентом і професійним відео. Паралельно з цим було впроваджено базову підтримку колориметрії для протоколу Wayland, що покращує точність передачі кольорів у сучасних графічних середовищах Linux.
Значущим трендом стала активна міграція компонентів на мову Rust. Це не лише підвищує безпеку роботи з пам'яттю, а й дозволяє впроваджувати складні алгоритми обробки даних. Зокрема, з'явилися елементи розділення аудіоджерел на базі demucs, інструменти логічного виведення (inference) YOLOX з використанням фреймворка burn, а також оновлені декодери GIF та елементи icecastsink із підтримкою AAC.

З точки зору інфраструктури, GStreamer зберігає свою модульну архітектуру, поширюючись під ліцензією LGPLv2.1. Екосистема розділена на спеціалізовані набори плагінів — від базових (base) і стабільних (good) до експериментальних (bad) та пропрієтарних або суперечливих (ugly). Додаткової потужності системі надає інфраструктурна обгортка gst-libav, що використовує можливості FFmpeg, та сервер gst-rtsp-server. Важливим аспектом для корпоративного сектору залишається збереження зворотної сумісності API та ABI з гілкою 1.0, що гарантує стабільність існуючих рішень при переході на нові версії.
Реліз 1.28.5 зосереджений на фінальному шліфуванні системи та усуненні «вузьких місць». Розробники провели масштабну роботу з оптимізації стабільності, усунувши витоки пам'яті та виправивши помилки в ядрі (core), зокрема проблему нестабільних подій при зв'язуванні падів (pads) у процесі передачі даних (push).
Технічні покращення торкнулися багатьох специфічних компонентів:
- Графічний стек і декодування: Виправлено дратівливе зелене мерехтіння субтитрів при використанні VA-декодерів на GPU від AMD. У компоненті gldownload усунено неправильне узгодження формату DRM, що призводило до інверсії червоного та синього каналів.
- Робота з кодеками та контейнерами: У gopbuffer з'явилася підтримка новітнього стандарту H.266/VVC, що готує фреймворк до наступного покоління стиснення відео. Виправлено помилки декодування HEVC з альфа-каналом та оптимізовано роботу мультиплексора mp4mux з потоками AC-3.
- Стрімінг і мережеві протоколи: У mpegtsmux було проведено серйозну роботу над призначенням міток PTS у режимі CBR, що виключає помилки в пакетах заповнення бітрейту. Для користувачів YouTube HLS виправлено періодичні спотворення в потоках завдяки покращеній обробці переповнення PTS в tsdemux. Також було усунуто регресію в rtcpbuffer, що виникла після попередніх патчів безпеки.
Додаткові правки стосувалися гнучкості шифрування в rtspsrc2, де тепер дозволено вимкнення автентифікації та шифрування SRTP/SRTCP, а також покращено узгодженість у webrtcsink.
Оновлення доступне для всіх основних платформ. У той час як користувачі Linux можуть покладатися на пакетні менеджери своїх дистрибутивів, для Android, iOS, macOS та Windows найближчим часом будуть підготовлені відповідні бінарні збірки.

