Утечки памяти GStreamer 1.0 - PullRequest
       45

Утечки памяти GStreamer 1.0

0 голосов
/ 22 октября 2018

У нас возникают утечки памяти в нашем коде Python gstreamer, когда мы пытаемся работать в течение длительного времени.

Конфигурация системы:

intel i9

4 карты захвата черной магии Intensity Pro

Nvidia P4000

64 GM RAM 512 nvm M.2 ssd

Gstreamer Pipelines.

Извлечение кадра: соединение decklinkvideosrc = идентификатор устройства HDMI = <0,3> do-timestamp= Истинный выходной поток-время = Истинный!очередь-максимальный размер-буферов = 10 макс-размер-байтов = 0 макс-размер-время = 0!видеоконвертер!appsink emit-сигналы = True sync = True caps = видео / x-raw, формат = I420

Поддельный конвейер

appsrc format = time do-timestamp = True is-живой = правда!тройникочередь !fakesink

Нет утечки памяти, если мы только запустим эти конвейеры и сможем выполнить код на всех 4 картах черной магии без утечек.

Проблема возникает, когда мы кодируем видео для потоковой передачи инепрерывная запись, т.е. запуск / остановка записи каждые несколько минут.

Наши конвейеры кодирования выглядят следующим образом:

очереди max-size-buffers = 1000 max-size-bytes= 0 max-size-time = 0 leaky = 2!Предустановка nvh264enc = 1 rc-mode = 2 битрейта = 2000!h264parse config-interval = -1!очередь !mpegtsmux!очередь-максимальный размер-буферов = 1000 макс-размер-байтов = 0 макс-размер-время = 0!тройник

Потоковый конвейер:

очередь!tcpserversink host = [ip] port = [port]

конвейер записи:

очередь!filesink async = ложная синхронизация = истинное имя = местоположение файла = [имя файла]

После 15 20 записей объем памяти очень быстро увеличивается и, в конце концов, заканчивается.

...