GStreamer gst_element_factory_make не работает - PullRequest
3 голосов
/ 11 ноября 2009

Я испытываю тестовое приложение GStreamer, но во время выполнения следующая строка дает сбой:

demuxer = gst_element_factory_make ("oggdemux", "ogg-demuxer"); // returns NULL

Я использую MacOSX и установил GStreamer, libogg и vorbis-tools через MacPorts. Поэтому я не понимаю, почему это не получается.

Любые предложения о том, как заставить это работать?

РЕДАКТИРОВАТЬ: РЕШЕНО!

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

Вот список действий, которые заставили его работать:

Удалить установку MacPorts:

sudo port uninstall gstreamer

Добавьте следующую строку в ~ / .profile

export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

Загрузите хорошие источники gstreamer, gstreamer-plugins-base и gstreamer-plugins.

Сборка и установка gstreamer (./configure, make, make install)

Сборка и установка gstreamer-plugins-base (./configure, make, make install)

И для gstreamer-plugins-good я только собрал пакет autodetect, потому что сборка всех привела к ошибкам для некоторых плагинов, которые мне сейчас не нужны или не нужны. Я сделал это так:

./configure
cd gst/autodetect/
make
sudo make install

Сейчас программа собирается и запускается. Я, кажется, не получаю никакого звука, однако :( но это другая проблема.

Ответы [ 2 ]

3 голосов
/ 11 ноября 2009

Чтение gstelementfactory.c (версия GStreamer 0.10.25), строка 463 (gst_element_factory_make определение функции), есть три ошибки, которые вызывают возврат NULL:

  1. Первый аргумент ('factoryname') - NULL (очевидно, в вашем коде все в порядке)
  2. Не удалось найти фабрику именованных элементов (функция gst_element_factory_find вернула NULL)
  3. Не удалось создать экземпляр элемента (функция gst_element_Factory_create вернула NULL)

Код выполняет существенную регистрацию, поэтому, если вы сможете включить его, вы можете получить дополнительные подсказки относительно основной проблемы.

Чтобы убедиться, что плагин oggdemux настроен правильно, попробуйте запустить:

gst-inspect oggdemux

Если результат не возвращается, попробуйте использовать gst-register для его регистрации.

2 голосов
/ 09 апреля 2013

Если вы используете систему Ubuntu, просто сделайте следующее

sudo apt-get install gstreamer1.0 - *

это решит проблему.

...