GStreamer - бібліотека з відкритим кодом, складна частина програмного забезпечення, яка працює як мультимедійна платформа для численних операційних систем GNU / Linux, а також Android, OpenBSD, Mac OS X, Microsoft Windows, і Symbian OS.
Особливості з першого погляду
Основні функції включають в себе всеохоплюючу базову бібліотеку, інтелектуальну архітектуру плагінів, розширене охоплення мультимедійних технологій, а також широкі інструменти розробки, тому ви можете легко додавати підтримку GStreamer у свої програми.
Це основний мультимедійний бекенд для широкого кола проектів з відкритим кодом, що залягають від програм для відтворення аудіо та відео, таких як Totem (відео) з робочого середовища GNOME та складні редактори відео та аудіо.
Крім того, програмне забезпечення має дуже високу продуктивність і низьку затримку завдяки надзвичайно легкій технології передачі даних, а також глобальну синхронізацію між потоками (аудіо / відео) за допомогою синхронізації.
Містить декілька пакета кодеків
Проект складається з декількох різних пакетів, також відомих як кодовані пакети, які можуть бути легко встановлені на будь-якому дистрибутиві GNU / Linux зі своїх сховищ за замовчуванням, одночасно або окремо. Вони такі: база плагінів GStreamer, плагіни GStreamer, пошкоджені плагіни GStreamer, а також плагіни GStreamer Ugly.
GStreamer - це компактна бібліотека ядра, яка дозволяє створювати випадкові конструкції pipleline завдяки структурі на основі графіків на базі бібліотеки об'єктної моделі GLib 2.0, яка може бути використана для об'єктно-орієнтованого дизайну та наслідування.
Використовує технологію QoS (якість обслуговування)
Для забезпечення найкращої якості аудіо та відео при високій завантаженні ЦП використовується технологія QoS (Quality of Service). Крім того, він забезпечує прозорість та тривіальне конструювання багатопоточних трубопроводів.
Завдяки простому, стабільному та чистому API (Application Programming Interface), розробники можуть легко інтегрувати його в свої програми, а також створювати плагіни, які розширюють його функціональність за замовчуванням. Він також надає їм повнофункціональну систему налагодження.
Нижня лінія
У висновку, GStreamer - це дуже потужна і високо оцінена мультимедійна структура для екосистеми з відкритим кодом, що надає користувачам GNU / Linux широкий спектр аудіо та відео кодеків для відтворення та обробки медіа.
< strong> Що нового у цьому випуску:
- Випуск помилок
Що нового в версії 1.14.1:
- Випуск помилок
Що нового в версії:
- Цей випуск містить лише виправлення, 1.8.0.
Що нового у версії 1.8.2:
- Цей випуск містить лише виправлення, оновити з версії 1.8.0.
Що нового в версії 1.8.0:
- Апаратне прискорення кодування відео без копіювання на Android
- Нове джерело відеозапису для Android за допомогою програми android.hardware.Camera API
- Підтримка зворотного відтворення Windows Media (ASF / WMV / WMA)
- Нова система відстеження забезпечує підтримку більш складних засобів налагодження
- Новий API для швидкого відтворення GstPlayer на високому рівні
- Початкова підтримка нового API Vulkan, див. публікацію блогу Меттью Уотерса для більш детальної інформації
- Покращена підтримка Opus аудіо кодеків: Підтримка більш ніж двох каналів; MPEG-TS demuxer / muxer тепер може працювати з Opus; вибірка-точне кодування / декодування / трансмуксінг з Ogg, Matroska, ISOBMFF (Quicktime / MP4) і MPEG-TS як контейнер; нові функції утиліт кодека для заголовка Opus та керування шапками в бібліотеці pbutils. Елементи кодувальника / декодера Opus також були перенесені в gst-plugins-base (з -bad), а opay RTP depayloader / payloader до -погано.
- Модуль VAapI GStreamer тепер випущений і підтримується як частина проекту GStreamer
- Підтримка проксі-сервера в службі редагування GStreamer
Що нового у версії 1.6.3:
- Виправте регресію в бібліотеці GL, яка зробила glimagesink неможливою для Android
- Повне повне арифметичне переповнення в елементі queue2, яке може зламати буферизацію або викликати збої внаслідок скасування курсору NULL
- Виправте помилку у типу виявлення AAC / ADTS, викликану читанням більшої кількості пам'яті, ніж доступна
- Припиніть ігнорувати помилки кодувача в кодерах VP8 / VP9
- Знизити GstVideoEncoder GST_VIDEO_ENCODER_FLOW_DROPPED. Це надмірне і ніколи не було реалізовано
- Переконайтеся, що зберігаєте правильну інформацію про відео в GstVideoBufferPool
- Виправте кепки в rtspsrc при виконанні SRTP через перехресний TCP
- Виправте аварійне завершення роботи в pcap-парсера на пакетах із розміром 0
- Очистити прапорець EOS у програмах rc, щоб дозволити повторне використання після EOS та промивання
- Ігнорувати потоки потоку потоків у потоковому синхронізаторі під час комутаторів потоку, щоб виправити проблеми, викликані цим в gst-редагування
- Ігнорувати теги та інші метадані у файлах WAV після "даних" & quot; шматочок у режимі PUSH, щоб запобігти їх інтерпретації як аудіо
- Правильно використовуйте колориметрию в v4l2 тільки для кольорових форматів YUV
- Встановіть зарезервовані біти в мультиплексі MPEG TS до 1s
- Виправте розрахунок довжини кадру SBC
- Виправлення вихідного файлу depayloader RTP JPEG2000, щоб мати один кадр на один буфер і збій у декодері OpenJPEG на неповних фреймах
- Оновити знімок ffmpeg в gst-libav до версії 2.8.5
- виправлення витоків пам'яті в масштабі масштабу, нестандартного завантажувача RTP-ролика відео та в програвачі, пов'язані з аудіо / відео фільтрами
- Виправлення для обробки помилок в аудіо плагіні OSX
- Різні виправлення та додавання анотацій gobject-introspection
- Виправлення помилок для компілятора для останнього компілятора clang
Що нового у версії 1.6.1:
- Виправлено аварії на кодерах gst-libav
- Більше тестових потоків DASH-IF працюють зараз
- Живі потоки DASH, HLS та MS SmoothStreaming працюють більш надійними та іншими виправленнями для адаптивних протоколів потокового передавання
- Зворотне відтворення працює зі шкалою темпу, щоб зберегти звуковий рівень
- Відповідний поточний час повідомляється для від'ємної_прикладеної _rate
- Підтвердження пакетів SRTP під час декодування більше не відхиляє дійсні пакети
- Виправлення для audioaggregator та агрегатора, щоб почати виробляти випуск у потрібний час, і, наприклад, не виводячи спочатку багато тиші
- Знімок внутрішнього ffmpeg gst-libav був оновлений до 2.8.1
- Серберо має підтримку для Mac OS X 10.11 (El Capitan)
- Виправлено різноманітні витоки пам'яті, включаючи значні витоки в playbin, playink та decodebin
- Різні визначення анотацій GObject-Introspection для прив'язки
- і багато, багато інших
Що нового у версії 1.6.0:
- Стереоскопічна підтримка відео та мультимедійних відео
- API Trick Mode для відтворення швидкого перемотування вперед / назад та ін.
- Покращена обробка DTS (часовий розшифрування) проти PTS (timestamp презентації) для обліку для негативних DTS
- Новий API GstVideoConverter для більш оптимізованого та більш правильного перетворення необроблених відеокадрів між усіма підтримуваними форматами, з повторним масштабуванням
- v4l2src тепер підтримує переговори
- v4l2transform тепер може масштабування
- Елемент V4L2 тепер повідомляє про коліметрію правильно
- Більш легковажна запис MP4, Matroska, Ogg, MPEG-TS: нові розширення splitmuxsink та багатофункціональні удосконалення
- Підтримка захист вмісту та загальне шифрування (CENC) для DASH / MP4
- Багато покращених адаптивних потоків (DASH, HLS та MSS)
- Нові клієнтські годинники мережі PTP та NTP та краща стабільність відстеження годинників
- Високоякісний накладання текстових субтитрів на роздільну здатність дисплея за допомогою glimagesink або gtkglsink
- Підтримка RECORD для сервера RTSP GStreamer
- Підтримка повторних передач (RTX) на сервері та клієнті RTSP
- Підтримка пошуку RTSP на клієнті та сервері була виправлена
- Покращення планування RTCP та підтримка зменшеного розміру RTCP
- Мультиплексор MP4 / MOV придбав новий "robust" & quot; robust & quot; режим роботи, який завжди намагається зберігати вихідний файл у дійсному стані
- Значно покращено підтримку Live mixing в агрегаторі, аудіокомпізорах та композиторах
- композитор тепер також підтримує масштабування вхідних потоків на льоту
- Новий елемент аудінтерлівації з належною синхронізацією введення та підтримкою живого вводу
- Blackmagic Design DeckLink підтримка карток захоплення та відтворення була переписана з нуля; 2k / 4k підтримка; режим чуття
- Підтримка метаданих KLV в RTP та MPEG-TS
- відеокодер H.265 (x265), декодерів (libav, libde265) та завантажувачів і завантажувачів RTP
- Новий плагін DTLS та підтримка SRTP / DTLS
- підтримка OpenGL3, кілька контекстів та поширення контексту, 3D-відео, поділ передачі / перетворення, змішування субтитрів
- Відео мийка QML на базі OpenGL, відеопоглинач Gtk GL, відеопоглинач CoreAnimation CAOpenGLLayerSink
- gst-libav перейшов на ffmpeg як libav-провайдер, отримує підтримку 3D / multiview відео, трюк режимів і кодека CAVS
- API GstHarness для модульних тестів
- gst-editing-служби отримали абсолютно новий інтерфейс ges-launch-1.0, поліпшену підтримку змішування та інтеграцію в gst-validate
- Гнонлін був затриманий на користь nle (нелінійний двигун) в gst-редагування-сервісах
- gst-validate має нову плагінову систему, великий стандартний тестовий тест, підтримку паралельних тестових запусків та підтримку valgrind.
- Інструмент створення cerbero для пакетів binary для SDK отримує нову команду "bundle-source"
- Різні вдосконалення для підтримки платформи Android, iOS, OS X та Windows
Що нового у версії 1.5.2:
- 740502: Додати абсолютну властивість для GstDirectControlBinding
- 740575: виправлення DTS у GStreamer
- 745366: concat: вперед FLUSH_START / FLUSH_STOP події
- 746949: concat: Додати властивість активної панелі
- 750027: concat: скинути внутрішнє початкове зміщення до 0 після пошуку промивання
- 750033: basetransform - дозволити зіставлення / розділення буферів
- 750039: збереження буферів із загальною пам'яттю
- 750319: пам'ять: підкласи не знають прапорів у карті в unmap
- 750530: ptp: FreeBSD, DragonFly та інші BSD не мають ifreq.ifw_hwaddr
- 750574: netclientclock: встановіть годинник обгортку навколо внутрішнього годинника
- 750761: inputselector: обробка вибору різної тривалості тривалості
- 750782: pipeline: Додайте властивість gst_pipeline_set_latency (), getter та GObject
- 751026: basesink: правильно обробляти буферні списки для об'єкта останнього зразка
- 751047: concat: Додати властивість налаштування бази
- 751107: concat: під час випуску платівки надсилайте EOS відповідно.
- 751235: utils: get_compatible_pad не повністю поважає кришки фільтрів
- 751420: basesink: необхідно глибоко копіювати список останніх буферів у каналізацію
Що нового в версії 1.4.5:
- Ядро GStreamer:
- 736969: queue2: deadlock при буферизації
- 738092: basesink: зафіксована позиція на основі напрямку
- 740001: завдання: стан перегонів при паузі та зупинці
- База плагінів GStreamer:
- 741420: відеопанелі: слід оновити розмір конфігурації після застосування вирівнювання
- 715050: додати типовий пристрій для аудіо / звукового звуку
- 739544: tcp: додайте тест і виправте витік пам'яті в елементи tcp
- 739840: typefind повинен розпізнавати Apple Core Audio Format (CAF)
- 740556: відеодекодер: не скаржись, коли DTS! = PTS на ключових кадрах
- 740675: playink: продовжує відтворення, скидає властивість звуку
- 740730: rtspconnection: не видаляйте джерело дитини, якщо батьківський джерело вже знищено
- 740853: audiodecoder: перш ніж надсилати EOS, натисніть поточні події.
- 740952: alsa: виправлення NetBSD
- 741045: аудіофайли можуть деякими випадками втратити точну точність часу
- 741198: playbin: витоку GstPads
- Плагіни GStreamer добре:
- 711437: apev2mux: не слід розміщувати теги APEv2 на початку файлів WavPack
- 726194: v4l2src не справляється добре, коли картка захоплення іноді взаємодіє, іноді прогресивна в тій же резолюції
- 736397: flvdemux: поведінка ресинхронізації потокового потоку викликає A / V-desyncs
- 737603: v4l2bufferpool: встановлюйте прапори чергового буфера, коли поле V4L2_FIELD_INTERLACED
- 739476: vpx: неможливо зібрати libvpx з git
- 739722: matroskamux: безпечний реєстр GstMatroskamuxPad
- 739789: v4l2allocator: виправте помилку, якщо розподільник вже активний
- 739791: v4l2bufferpool: пул unref, коли v4l2_allocator_new () не працює
- 739792: v4l2allocator: виправте прототип gst_v4l2_allocator_stop
- 739996: videomixer: знімає багато фреймів, якщо один з джерел є живим
- 740040: v4l2src: не працює при наявності V4L2_BUF_FLAG_ERROR
- 740392: rtspsrc: mikey base64 decoded key-mgmt leak
- 740407: обмеження qtmux обмежують захоплення до 4096x4096
- 740633: v4l2src: RW io-mode не працює
- 740636: v4l2src: частота кадрів не завжди встановлюється на драйвер
- 740671: aspectratiocrop: після змінення розміру відео обрізання потрібно скинути урожай
- 740905: v4l2: досі має 1 включати в linux / videodev.h
- 741271: rtph264pay: витік буфера в платнику завантажень H.264 при використанні SPS / PPS
- 741381: rtph264pay: стан перегонів може призвести до збою при переході з PAUSED- & gt; READY
- 741407: deinterlace: в query_caps повертають тільки підтримувані формати, якщо фільтр є чересстрочним
- 737579: v4l2object: встановити простір кольорів для пристроїв виведення
- 739754: v4l2bufferpool: слід перевірити, що всі записи пам'яті можна записувати перед чергуванням назад
- Помилки GStreamer плагінів:
- 722764: rawparse: виправлення обробки запитів SEARCH
- 729768: mpegtsbase: збільшити ліміт для читання більше байтів спочатку для пошуку ПЛР
- 739152: gl / какао: збірка з GNUStep не вдається
- 740191: dvbbasesink: segfaults на 32 біт (rpi)
- 740201: gl / какао: не компілюється в OSX & lt; 10.7 більше
- 740451: srtpdec: витоки rtp / rtcp поглинача
- 740953: configure.ac: оператор зіставлення тестування (1)
- 741321: opusparse: виправте заголовок parsing esp. закодованого виводу libopus
- Сервер RTSP GStreamer:
- 739481: rtsp-stream: leks srtp-декодер при виході з rtpbin
Що нового в версії 1.4.4:
- Виправлені помилки в версії 1.4.5:
- 737498: multiqueue: не враховує подію GAP під час обчислення поточного рівня
- 737794: багатокутник: тупик, якщо черга переповнена серіалізованими подіями
- 737999: systemclock: проблема із статусом входу з кількома потоками
- 738198: багатозадачність: не прокидається незв'язані потоки на EOS
Що нового в версії 1.4.1:
- з серії 1.2 і є частиною серії випуску API та ABI-stable 1.x мультимедійної структури GStreamer, яка містить нові функції. Випуски виправлень 1.4.x містять лише важливі виправлення помилок у порівнянні з версією 1.4.0.
Що нового у версії 1.4 RC2:
- Команда GStreamer з радістю повідомляє другого кандидата про випуск серії випусків стабільної версії 1.4. Серія 1.4 випуску додає нові функції на вершині серії 1.0 і 1.2 і є частиною серії релізів API та ABI-stable 1.x мультимедійної платформи GStreamer.
- Цей кандидат з релізу сподівається, що найближчим часом слідує стабільний версію 1.4.0, якщо не буде виявлено жодних більших регресій чи більших проблем, і відбулося достатнє тестування кандидата на випуск. Новий API, доданий під час серії 1.3, не зміниться.
Що нового в версії 1.4 RC1:
- Новий API:
- додано GstMessageType GST_MESSAGE_EXTENDED. Усі типи до цього можуть бути використані разом як тип прапорів, як і раніше, але від цього повідомлення далі типи просто підраховуються поступово. Це було необхідно для того, щоб мати можливість додавати інші типи повідомлень. У версії 2.0 GstMessageType просто стане переліком, а не прапором більше.
- GstDeviceMonitor для зондування пристрою, наприклад щоб перелічити всі доступні пристрої для запису звуку або відео. Це заміна для GstPropertyProbe від 0.10.
- Події накопичують часовий час, коли проїжджає через колодки, як встановлено функцією gst_pad_set_offset (). Це дозволяє компенсувати це, наприклад, у випадку QOS.
- GstBuffer має новий прапор & quot; тег-пам'ять & quot; що встановлюється автоматично при додаванні пам'яті або видаленні в буфер. Це дозволяє буферним пулам виявляти, чи можуть вони переробляти буфер, або спочатку потрібно скинути його.
- GstToc має новий API для позначення GstTocEntries як циклів.
- Неправильна помилка ресурсу була визначена для повідомлення про програми, на які не вдалося отримати доступ до ресурсу через відсутність авторизації та відрізняти цю справу від інших. Ця зміна насправді вже в розділі 1.2.4.
- GstPad має новий прапорець "accept-intersect", що дозволить обробнику запитів за замовчуванням ACCEPT_CAPS виконувати перетин замість перевірки підмножини. Це цікаво для аналізаторів, які можуть обробляти неповні шапки.
- GstCollectPads підтримує промивання та обробник за замовчуванням для SEEK подій зараз.
- Новий допоміжний об'єкт GstFlowAggregator, який спрощує обробку повернень потоку в елементах з кількома полями джерел. Крім того, GstPad тепер завжди зберігає останній зворотний потік потоку і забезпечує API для його отримання.
- GstSegment має новий API, щоб компенсувати час роботи певним значенням, і це використовується в GstPad, щоб дозволити позитивні та негативні зсуви в gst_pad_set_offset () у всіх ситуаціях.
- Підтримка h265 / HEVC та VP8 була додана до бібліотеки утиліт кодека та бібліотеки аналізаторів кодеків та була інтегрована в різні елементи.
- Додано API для налаштування перевірки TLS з'єднання RTSP.
- Бібліотека RTSP та SDP має підтримку MIKEY (RFC 3830), і існує API для розрізнення різних профілів RTSP.
- API для доступу до інформації про RTP та статистику.
- Підтримка допоміжних потоків була додана до rtpbin.
- Додано підтримку для черепичних, необроблених відеоформатів.
- GstVideoDecoder та GstAudioDecoder мають API, що допомагає агрегувати події тегів і поєднувати в них цілі теги.
- GstBufferPool має підтримку для промивання зараз.
- playbin / playink має підтримку прикладних програм, що містять аудіо- та відеофільтри.
- GstDiscoverer має новий та спрощений API, щоб отримати відомості про відсутність плагінів та інформації для переходу до встановлювача плагінів.
- Бібліотека GL була об'єднана з gst-plugins-gl до gst-plugins-bad, забезпечуючи загальну інфраструктуру для обробки GL всередині трубопроводів GStreamer та плагіна з деякими елементами, що використовують ці функції, зокрема відеопоглинання. Підтримувані платформи наразі є Android, Cocoa (OS X), DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) і загальні X11, Wayland та EGL платформи. Це замінює eglglessink, а також має замінити osxvideosink.
- Новий базовий клас GstAggregator у gst-plugins-погано. Це повинно замінити GstCollectPads у майбутньому та зафіксувати відомі недоліки в його API. Разом із базовим класом, деякі елементи вже передбачені, як відеоміксера (compositor).
- Основні зміни:
- Нові плагіни та елементи:
- елемент v4l2videodec для доступу до апаратних кодеків на платформах, які роблять їх доступними через V4L2, наприклад Samsung Exynos. Це відбувається разом із серйозним рефакціонуванням існуючих елементів V4L2 та відповідної інфраструктури. Елемент v4l2videodec замінює елемент mfcdec.
- Новий елемент завантаження, який замінює функцію буферизації завантаження в черзі2. Порівняно з кодом queue2 це набагато простіше і лише для цього окремого випадку. Заслуговує на увагу нова функція полягає в тому, що вона завантажує прогалини в уже завантажених частинах потоку, коли ще нічого не потрібно завантажувати. Тепер цей файл використовується, коли ввімкнено буфер завантаження.
- елементи rtpstreampay та rtpstreamdepay для передачі пакетів RTP через API потоку (наприклад, TCP) відповідно до RFC 4571.
- елементи rtprtx для стандартної сумісної реалізації повторних передач, інтегрованих у плагін rtpmanager.
- елемент audiomixer, який об'єднує декілька звукових потоків у єдиний, зберігаючи синхронізацію. Це планується стати заміною елемента суматора.
- Плагін OpenNI2 для 3D-камер, таких як камера Kinect
- Плагін OpenEXR для декодування зображень EXR з високим динамічним діапазоном
- curlsshsink і curlsftpsink для запису файлів за допомогою SSH / SFTP.
- відеосигнал, ivfparse та sndfile плагіни, перенесені з 0.10.
- файли avfvideosrc, vtdec та інші елементи були перенесені з 0,10 і тепер доступні в ОС X і iOS.
- Інші зміни:
- gst-libav тепер використовує libav 10.1 і отримує підтримку для H265 / HEVC.
- Підтримка апаратних кодеків та спеціальних типів пам'яті була покращена за допомогою виправлень та додавання функцій у різні плагіни та базові класи.
- Різні виправлення та вдосконалення буферизації в елементах queue2 та multiqueue.
- dvbsrc підтримує більше механізмів доставки та інших функцій, включаючи підтримку DVB S2 та T2.
- Бібліотека MPEGTS підтримує багато інших дескрипторів.
- Основні вдосконалення для tsdemux і tsparse, особливо для пошуку часу та пошуку.
- Тепер souphttpsrc має підтримку для збереження живих з'єднань, стиснення, налаштовування кількості спроб і налаштувань для перевірки сертифікатів SSL.
- hlsdemux зазнав серйозних рефакторингів і тепер працює більш надійно і підтримує більше функцій HLS, таких як трюк. Також фрагменти витісняються вниз за потоком, поки вони завантажуються зараз, замість того, щоб чекати завершення кожного фрагмента.
- dashdemux та mssdemux тепер також натискають фрагменти вниз по течії, поки вони завантажуються, замість того, щоб чекати завершення кожного фрагмента.
- Відеофільп може автоматично перемикатися на основі тегу орієнтації.
- openjpeg підтримує API OpenJPEG2.
- pathlandsink був рефакторингований і повинен бути більш корисним зараз. Вона також включає в себе невелику бібліотеку, яка, швидше за все, буде видалена в майбутньому та призведе до розширення інтерфейсу GstVideoOverlay.
- gst-rtsp-сервер підтримує SRTP і MIKEY зараз.
- Тепер encoders gst-libav ведуть переговори щодо будь-яких налаштувань профілю / рівня за допомогою кепки.
- Багато виправлень для попереджень про покриття за всіма місцями.
- Покращення ефективності, пов'язані з переговорами.
- виправлено помилок 800+ та багато інших виправлень помилок та інших вдосконалень скрізь, де не було повідомлень про помилки.
- Що слід звернути увагу:
- елемент eglglessink був видалений та замінений елементом glimagesink.
- елемент mfcdec був вилучений та замінений v4l2videodec.
- osxvideosink доступний лише в ОС X 10.6 або новіших.
- У Android простір імен для автоматично сформованого класу Java для ініціалізації GStreamer змінено з com.gstreamer на org.freedesktop.gstreamer, щоб запобігти забрудненню імен.
- У iOS вам потрібно оновити ваші gst_ios_init.h та gst_ios_init.m у ваших проектах від тієї, що входить до файлів binaries, якщо ви раніше використовували модуль GIO GPL. Механізм завантаження дещо змінився.
Що нового у версії 1.2.4:
- Ядро GStreamer:
- 724373: Queue2 скорочує файл temp, коли трубопровід призупинено
- 725517: docs: Виправте помилки та видаліть невідомі анотації
- 725809: ghostpad: рідкісна аварія через відсутність довідкового підрахунку на цільовій панелі
- 727253: parse: Згенерований файл Bison, включений в комбінації випуску, викликає помилки компіляції
- 727883: baseparse: витік пам'яті кадрів черги
- База плагінів GStreamer:
- 693263: typefinding: відео з MPEG-2 ES виявлено як H.263
- 683504: playink: тупик при відключенні субтитрів та недоступність субтитрів
- 700770: typefinding: файл mp3 невірно визначений як відео h263
- 723597: tagdemux: шукати подію в GST_FORMAT_TIME конвертуються в BYTES до початку
- 724633: oggdemux: ігнорує останню сторінку в режимі натискання
- 724720: rtspconnection: неможливо від'єднати / відновити з'єднання зчитування в режимі туннелювання
- 725313: rtspconnection: closed () callback ніколи не викликається в режимі туннелювання
- 725644: typefinding: файл mp3 помилково визначається як H.263
- 726642: rtspconnection: виявлення незначної пам'яті при обробці помилок
- 727025: суматор: переробіть логіку, щоб перевірити, чи потрібно надіслати еос.
- Плагіни GStreamer добре:
- 725104: qtdemux: відмова відтворення та відмова від перемикання відеоролика
- 722185: souphttpsrc: racy & quot; сервер не підтримує пошук & quot; помилка
- 724619: аварійне завершення роботи при читанні властивості імені пристрою імпульсного каналу
- 725124: rtspsrc: виправлення глушника, коли створення завдання не досягне успіху
- 725712: rtpsession: збій, коли RTCP FIR отримав з невідомими SSRC
- 725860: v4l2src: Виправлено використання v4l2src з пристроєм захоплення відеозапису Hauppauge HDPVR
- 726777: rtpjpegpay: розмір корисної завантаження неправильно розрахований
- 728017: подія regresion eos не може бути відправлено з gstrtpjitterbuffer.
- 728041: rtph264depay: позначає всі вихідні буфери як дельта-одиниці при виведенні формату avc
- 724638: aacparse: відсутність стійкості, коли аудіокадра не знайдено
- 727329: перевірити: souphttpsrc: невідоме ім'я типу 'SoupStatus'
- Помилки GStreamer плагінів:
- 724013: Не використовуйте hardcode / usr / share / sounds / sf2 шлях у fluiddec
- 725137: hlsdemux: неможливо обчислити URL-адресу списку медіа, якщо є параметр запиту
- 725140: hlsdemux: неможливо правильно проаналізувати CODECS і РЕЗОЛЮЦІЇ
- Плагіни GStreamer libav:
- 727779: avdec_h264, matroskademux: аварія при пошуку (1,2 регресія)
Що нового у версії 1.2.2:
- функції на вершині серії 1.0 і є частиною серії випуску API та ABI-stable 1.x мультимедійної структури GStreamer, яка містить нові функції.
Що нового у версії 1.2.0:
- Новий API:
- GstContext переговори / обмін / оголошення про обмін загальним контекстом між елементами, наприклад рукоятка дисплея
- Мета-перетворення завантаження текстури GL для того, щоб дозволити різним типам буферів перетворювати на текстуру OpenGL
- GstCapsFeatures як розширення до GstCaps для дозволу узгодження певної пам'яті або мета-вимог між елементами
- Прапори GstMemory для сусідньої та неархівної пам'яті
- Подія з поточним чатом має додаткові прапори зараз, наприклад для сигналізації редких потоків
- Потік-старт навіть має додаткове поле ідентифікатора групи, щоб сигналізувати всі потоки, які потрібно відтворити разом
- бібліотека розповсюджувачів у gst-plugins-base, в даний час тільки з загальною підтримкою пам'яті dmabuf
- Вставка бібліотеки для полегшення обробки динамічно пов'язаних трубопроводів (в даний час)
- Бібліотека помічників EGL (у поточній версії)
- Бібліотека структури даних MPEG-TS (в даний час)
- Новий GstVideoRegionOfInterestMeta для опису цікавого регіону для відеокадрів.
- GstVideoDecoder / Encoder має новий :: flush () vfunc для заміни погано визначеного :: reset () vfunc.
- Запит URI дозволяє запитати перенаправлений URI зараз.
- Основні зміни:
- Новий інструмент: gst-play-1.0 в gst-plugins-base для базового тестування відтворення в командному рядку.
- Нові плагіни:
- mssdemux для Microsoft Smooth Streaming
- dashdemux для адаптивного потокового протоколу DASH
- bluez для взаємодії з пристроями Bluetooth
- openjpeg для декодування та кодування JPEG2000
- Далаль для декодування і кодування Daala
- Плагін vpx має експериментальне підтримку декодування та кодування VP9
- веб-плагін для WebP-декодування (кодування буде додано пізніше)
- Різні інші: yadif, srtp, sbc, fluidsynth, midiparse, mfc, ivtv, accuraterip та audiofxbad
- Переміщені плагіни:
- Плагіни dtmf, vp8rtp, scaletempo та rtpmux знаходяться в gst-плагінах - зараз добре
- Відео:
- Виправте обробку чересстрочного відео в конвертерах, таких як відеокасети та відеоконвертер (наприклад, незалежно від масштабу обидва поля)
- відеоконверт буде спробувати все менше, щоб звести до мінімуму якісні втрати при перетворенні
- Експериментальні інтерфейси GstSurfaceConverter, GstSurfaceMeta та GstVideoContext з бібліотеки libgstbasevideo-1.0 з (помилково названою) бібліотекою gst-plugins-bad вже були вилучені та замінені новими інтерфейсами в GStreamer Core і gst-plugins-base (див. вище). ) Оскільки це було все, що залишилося в цій бібліотеці, вся експериментальна бібліотека libgstbasevideo-1.0 була вилучена з gst-plugins-bad
- Перетворення кольорів та переміщення кольорів краще обробляється у відеоконверті, а підтримка міжсторінкового відео поліпшується.
- Нові патч-стрілки та списи у відеопередачах
- Тепер videomixer може приймати різні формати відео на своїх радіохвилях і перетворювати їх у звичайний формат під час змішування
- Аудіо:
- Аудіоконвертер спробує все більше, щоб звести до мінімуму якісні втрати при необхідності перетворення
- Суматор тепер дозволяє вимкнути / вимкнути вхідні потоки, а також об'єм потоку за вхід
- Пунктуальні елементи можуть переключатися між пристроями під час відтворення
- aacparse може конвертувати між ADTS ← -> RAW
- Специфічні зміни платформи:
- Шаблони, події тощо тепер друкуються в журналах налагодження GStreamer з їх вмістом, а не просто адресою покажчиків навіть на платформах, що не використовують glibc (наприклад, Windows, OSX, Android).
- Мережеві елементи (UDP / TCP) тепер працюють краще з платформами, де IPv6-сокети не можуть обробляти IPv4 (наприклад, Windows)
- Linux / BSD: v4l2 мав багато поліпшень і очищення
- Інші зміни:
- gst-libav тепер використовує libav 9
- Статичне посилання плагінів підтримується зараз (також у версії 1.0.7)
- rtspsrc: додавання підтримки для NetClientClock: коли сервер пропонує GstNetTimeProvider в SDP, встановіть GstNetClientClock, який використовується для віддаленого годинника, і запропонуйте ці годинники в provide_clock. Спрощує синхронізоване відтворення ресурсу з сервера RTSP. gst-rtsp-сервер тепер підтримує додавання цього до SDP і може забезпечити мережевий годинник
- Підтримка повторної передачі RTP / NACK та великі покращення RTP-буфера
- Підтримка SRTP і DTLS
- Змінює багато елементів та основних елементів, щоб використовувати правильний закріплений порядок подій, а також не втрачати важливі липкі події під час промивання
- & gt; 1000 фіксованих звітів про помилки та багато інших виправлень помилок та інших вдосконалень скрізь, де не було повідомлень про помилки
- Що слід звернути увагу:
- Одне заголовок включає в себе всі бібліотеки, наприклад, #include - це було потрібно для деяких прив'язок.
- Більш суворі (правильні) перевірки підмножин шапки в деяких випадках, коли це було неправильно раніше. Шаблони тепер завжди не зможуть бути сумісним підмножиною іншого набору кепок, якщо в підмножинах шапки відсутні деякі поля, які мають надширотні шапки. Це може призвести до неврегульованих помилок, якщо кепки зараз неповні. Однак це також запобігає можливій пошкодженню даних, спричиненій нестабільним / несподіваним способом перетворення даних в трубопроводі до деяких елементів. Перевірте шаблони h264 для полів потоку та полів вирівнювання, а також обмеження AAC для поля потокового формату. Ця зміна також буде включена в наступний випуск версії 1.0.8.
- Більш сувора перевірка відсутніх подій та правильне оформлення липких подій (потік-початок, шапки, сегмент) в деяких місцях; це не включено в стабільних випусках за замовчуванням, але ви можете отримувати попередження при використанні git builds, випусків розробки або під час компіляції з -UG_DISABLE_ASSERT у CFLAGS
- Тепер x264enc виводить дані в байтовий потік за замовчуванням, якщо в нижній течії є будь-які обмеження (наприклад, appsink без встановлення шапки, файлів, udpsink, tcpserversink тощо).
- Повідомлення повідомлень демуляторів MPEG TS містять PMT, PAT та ін в іншому форматі зараз. Цей новий формат використовує структури даних з нової бібліотеки MPEGTS
- API GstContext змінено між 1.1.4 та 1.1.90
Що нового в версії 1.1.4:
- Новий API:
- GstContext переговори / обмін / оголошення про обмін загальним контекстом між елементами, наприклад рукоятка дисплея
- Мета-перетворення завантаження текстури GL для того, щоб дозволити різним типам буферів перетворювати на текстуру OpenGL
- GstCapsFeatures як розширення до GstCaps для дозволу узгодження певної пам'яті або мета-вимог між елементами
- Прапори GstMemory для сусідньої та неархівної пам'яті
- Подія з поточним чатом має додаткові прапори зараз, наприклад для сигналізації редких потоків
- Потік-старт навіть має додаткове поле ідентифікатора групи, щоб сигналізувати всі потоки, які потрібно відтворити разом
- бібліотека розповсюджувачів у gst-plugins-base, в даний час тільки з загальною підтримкою пам'яті dmabuf
- Вставка бібліотеки для полегшення обробки динамічно пов'язаних трубопроводів (в даний час)
- Бібліотека помічників EGL (у поточній версії)
- Бібліотека структури даних MPEG-TS (в даний час)
- Новий GstVideoRegionOfInterestMeta для опису цікавого регіону для відеокадрів.
- GstVideoDecoder / Encoder має новий :: flush () vfunc для заміни погано визначеного :: reset () vfunc.
- Запит URI дозволяє запитати перенаправлений URI зараз.
- Основні зміни:
- Новий інструмент: gst-play-1.0 в gst-plugins-base для базового тестування відтворення в командному рядку.
- Нові плагіни:
- mssdemux для Microsoft Smooth Streaming
- dashdemux для адаптивного потокового протоколу DASH
- bluez для взаємодії з пристроями Bluetooth
- openjpeg для декодування та кодування JPEG2000
- Далаль для декодування і кодування Daala
- Плагін vpx має експериментальне підтримку декодування та кодування V9
- веб-плагін для WebP-декодування (кодування буде додано пізніше)
- Різні інші: yadif, srtp, sbc, fluidsynth, midiparse, mfc, ivtv, accuraterip та audiofxbad
- Переміщені плагіни:
- Плагіни dtmf, vp8rtp, scaletempo та rtpmux знаходяться в gst-плагінах - зараз добре
- Відео:
- Виправте обробку чересстрочного відео в конвертерах, таких як відеокасети та відеоконвертер (наприклад, незалежно від масштабу обидва поля)
- відеоконверт буде спробувати все менше, щоб звести до мінімуму якісні втрати при перетворенні
- Експериментальні інтерфейси GstSurfaceConverter, GstSurfaceMeta та GstVideoContext з бібліотеки libgstbasevideo-1.0 з (помилково названою) бібліотекою gst-plugins-bad вже були вилучені та замінені новими інтерфейсами в GStreamer Core і gst-plugins-base (див. вище). ) Оскільки це було все, що залишилося в цій бібліотеці, вся експериментальна бібліотека libgstbasevideo-1.0 була вилучена з gst-plugins-bad.
- Підпрограма підменю Chroma та перетворення розташування краще обробляються у відеоконверті
- Нові патч-стрілки та списи у відеопередачах
- Аудіо:
- Суматор тепер дозволяє вимкнути / вимкнути вхідні потоки, а також об'єм потоку за вхід
- Пунктуальні елементи можуть переключатися між пристроями під час відтворення
- aacparse може конвертувати між ADTS ← -> RAW
- Специфічні зміни платформи:
- Шаблони, події тощо тепер друкуються в журналах налагодження GStreamer з їх вмістом, а не просто адресою покажчиків навіть на платформах, що не використовують glibc (наприклад, Windows, OSX, Android).
- Мережеві елементи (UDP / TCP) тепер працюють краще з платформами, де IPv6-сокети не можуть обробляти IPv4 (наприклад, Windows)
- Windows: d3dvideosink забезпечує буферний пул для елементів верхнього потоку
- Linux / BSD: v4l2 мав багато поліпшень і очищення
- Інші зміни:
- gst-libav тепер використовує libav 9
- Статичне посилання плагінів підтримується зараз (також у версії 1.0.7)
- rtspsrc: додавання підтримки для NetClientClock: коли сервер пропонує GstNetTimeProvider в SDP, встановіть GstNetClientClock, який використовується для віддаленого годинника, і запропонуйте ці годинники в provide_clock. Спрощує синхронізоване відтворення ресурсу з сервера RTSP. gst-rtsp-сервер тепер підтримує додавання цього до SDP і може забезпечити мережевий годинник
- Підтримка повторної передачі RTP / NACK та великі покращення RTP-буфера
- Підтримка SRTP і DTLS
- Змінює багато елементів та основних елементів, щоб використовувати правильний закріплений порядок подій, а також не втрачати важливі липкі події під час промивання
- & gt; 1000 фіксованих звітів про помилки та багато інших виправлень помилок та інших вдосконалень скрізь, де не було повідомлень про помилки
- Що слід звернути увагу:
- Одне заголовок включає в себе всі бібліотеки, наприклад, #include - це було потрібно для деяких прив'язок.
- Більш суворі (правильні) перевірки підмножин шапки в деяких випадках, коли це було неправильно раніше. Шаблони тепер завжди не зможуть бути сумісним підмножиною іншого набору кепок, якщо в підмножинах шапки відсутні деякі поля, які мають надширотні шапки. Це може призвести до неврегульованих помилок, якщо кепки зараз неповні. Однак це також запобігає можливій пошкодженню даних, спричиненій нестабільним / несподіваним способом перетворення даних в трубопроводі до деяких елементів. Перевірте шаблони h264 для полів потоку та полів вирівнювання, а також обмеження AAC для поля потокового формату. Ця зміна також буде включена в наступний випуск версії 1.0.8.
- Більш сувора перевірка відсутніх подій та правильне оформлення липких подій (потік-початок, шапки, сегмент) в деяких місцях; це не включено в стабільних випусках за замовчуванням, але ви можете отримувати попередження при використанні git builds, випусків розробки або під час компіляції з -UG_DISABLE_ASSERT у CFLAGS
- Тепер x264enc виводить дані в байтовий потік за замовчуванням, якщо в нижній течії є будь-які обмеження (наприклад, appsink без встановлення шапки, файлів, udpsink, tcpserversink тощо).
Коментар не знайдено