Флаг GStreamer PyGObject и использование Enum - PullRequest
0 голосов
/ 05 августа 2020

Я использую PyGObject для запуска конвейеров Gstreamer из python. Мне нужно установить свойства некоторых из моих GStreamerElements, например, свойство profiles элемента rtspclientsink.

Я использую <element>.set_property(name, val) PyGObject, эквивалент функции GObject set_property.

Однако в данном конкретном случае val является флагом GstRTSPProfile. Мне было интересно, как я могу импортировать и создать экземпляр этого флага как тип python, чтобы я мог установить это свойство, не используя просто целое число.

Вот как я импортирую Gstreamer:

import gi
gi.require_version('Gst', '1.0')
gi.require_version('GstBase', '1.0')

from gi.repository import GObject, Gst, GstBase

Импорт GstRTSPProfile из gi.repository не работает. Я не могу получить доступ к GstRTSPProfile из Gst или GstBase.

1 Ответ

0 голосов
/ 25 августа 2020

Чтобы задать свойство по строковому значению, как в случае с gst-launch-1.0, вы можете использовать Gst.util_set_object_arg, как описано в этой документации: https://lazka.github.io/pgi-docs/#Gst -1.0 / functions.html # Gst.util_set_object_arg . Gst.util_set_object_arg ничего не сделает в случае сбоя (свойство не существует, строка не является допустимым значением), хотя вы можете проверить это.

...