В описании плагина GStreamer следующее:
Код: Выделить всё
codec-type : selects the codec type for encoding
flags: readable, writable
Enum "MfwGstVpuEncCodecs" Default: 2, "std_avc" Current: 2, "std_avc"
(0): std_mpeg4 - STD_MPEG4
(1): std_h263 - STD_H263
(2): std_avc - STD_AVC
(7): std_mjpg - STD_MJPGПри запуске pipeline из консоли я указывал codec-type=std_avc и запускалось кодирование H264.
Сейчас я пишу программу кодирования на C в которой устанавливаю этот же параметр:
Код: Выделить всё
//g_object_set(G_OBJECT(enc), "codec-type", "std_avc", NULL);
g_object_set(G_OBJECT(enc), "codec-type", G_TYPE_ENUM, "std_avc", NULL);Сборка проходит без предупреждений и ошибок, но при старте программы в консоль выдаётся предупреждение:
Код: Выделить всё
(camerad:2284): GLib-GObject-WARNING **: value "((MfwGstVpuEncCodecs) 48)" of type `MfwGstVpuEncCodecs' is invalid or out of range for property `codec-type' of type `MfwGstVpuEncCodecs'
(camerad:2284): GLib-GObject-WARNING **: IA__g_object_set_valist: object class `MfwGstVPU_Enc' has no property named `std_avc'Кодирование начитается, так как устанвливается значение по-умолчанию.
Если я изменяю установку параметра на:
Код: Выделить всё
g_object_set(G_OBJECT(enc), "codec-type", 2, NULL);То предупреждений в консоли нет.
Установить необходимый кодек в цифровом виде не сложно, но строка более наглядна.
Как правильно необходимо устанавливать параметр типа Enum в GStreamer?
Спасибо.