2015-07-01 2 views
1

Я занимаюсь созданием обертки node.js для gstreamer. Я могу построить, и извлечь много информации и объектовКак исправить GLib-GObject-WARNING **: невозможно зарегистрировать существующий тип `gchar '

Однако, когда я называю gst_element_factory_make или gst_element_factory_create я получаю следующий результат (например, версия, плагины, функции, шапки, и фабрики элемента..):

(<unknown>:27080): GLib-GObject-WARNING **: cannot register existing type `gchar' 
** 
GLib-GObject:ERROR:gvaluetypes.c:457:_g_value_types_init: assertion failed: (type == G_TYPE_CHAR) 
Abort trap: 6 

ответ на GTK window with Quartz [starting from an issue with GStreamer], кажется, указывает, что там может быть какая-то версия конфликта, однако я не достаточно опытен с C++ и сделать файлы, чтобы узнать, если это моя проблема. Ниже приведен раздел библиотек моего binding.gyp, который (путем экспериментирования) является наименьшим модулем, необходимым для сборки, запуска и получения версии.

"/Library/Frameworks/Gstreamer.framework/Libraries/libgobject-2.0.a", 
"/Library/Frameworks/Gstreamer.framework/Libraries/libgstreamer-0.10.a", 
"/Library/Frameworks/Gstreamer.framework/Libraries/libffi.a", 
"/Library/Frameworks/Gstreamer.framework/Libraries/libglib-2.0.a", 
"/Library/Frameworks/Gstreamer.framework/Libraries/libgmodule-2.0.a", 
"/Library/Frameworks/Gstreamer.framework/Libraries/libiconv.a", 
"/Library/Frameworks/Gstreamer.framework/Libraries/libintl.a", 
"/Library/Frameworks/Gstreamer.framework/Libraries/libxml2.a" 

Я создал небольшой тестовый проект, чтобы проиллюстрировать мою проблему. Он находится в файле zip на http://s000.tinyupload.com/?file_id=00675589235220460725

ответ

1

Получение этого для «gchar» является странным. Один случай, когда вы получите эту ошибку, - это если у вас есть устаревшая копия плагина, и вы пытаетесь дважды зарегистрировать плагин GType.

Что мне нужно делать, чтобы понять это, чтобы запустить его как:

G_DEBUG="fatal_warnings" gdb --args ./your-app 

и от «запуска» типа GDB, и как только он завершает «Ы», чтобы получить трассировку. Если это происходит из регистрации плагина, вы можете посмотреть в журнале отладки gst (GST_DEBUG = "*: 6", чтобы узнать, найден ли какой-либо плагин дважды.

+0

У меня была такая же проблема после того, как я забыл, что переименовал мой плагин. grepping для добавления плагина в журнал (w/GST_DEBUG = 6) показал, что старый плагин был загружен. Удалено, и ошибка исчезла. –

0

Итак, я обнаружил, что у меня установлен gstreamer 0.10 после обновление до 1.0, исправление незначительных различий кода и включение инфраструктуры AppKit (я на OSX), я, наконец, смог пройти мимо этой проблемы.

Смежные вопросы