Как изменить поведение autoaudiosink gstreamer, autovideosink и т. Д. c, - PullRequest
0 голосов
/ 13 июля 2020

gstreamer имеет autoaudiosink, autovideosink, autoaudiosr c, autovideosr c.

Как это работает, когда есть несколько источников или приемников, которые соответствуют

например: videoink на windows может быть opengl или directx,

Как gstreamer решает, какой из них использовать?

Есть ли возможность изменить это?

1 Ответ

0 голосов
/ 14 июля 2020

Как gstreamer решает, какой из них использовать?

GStreamer имеет очень общий механизм автоподключения, так что он может делать правильные вещи. Документация довольно краткая, но давайте рассмотрим go для случая autovideosink.

На первом этапе автоподключение будет пытаться отфильтровать соответствующие элементы в вашей системе: например, если входом элемента decodebin является поток H264, он найдет только элементы, которые рекламируют ограничения video/xh264 на своих контактных площадках. В случае autovideosink он отфильтрует все элементы, которые добавили явные теги «Sink» и «Video», чтобы найти соответствующие элементы.

На втором этапе ему все равно необходимо выбрать наилучшее соответствие из набора элементов, который мы только что собрали. Для этого GStreamer выбирает плагин с самым высоким «рангом». Плагины имеют рейтинг по умолчанию, но вы можете изменить его программно (как это сделать ответили в другом месте ).

Примечание: некоторые элементы (например, decodebin) также предоставляют дополнительный API для еще более детальный контроль.

Есть ли возможность изменить это?

Итак, краткий ответ здесь: изменив рейтинг плагина.

Также хорошо отметить, что разработчики приложений обычно выбирают конкретный приемник (например, glimagesink) и оптимизируют его для этого случая, настраивая свойства этого элемента.

...