ADTF нет медиа-описания для типа структуры "ошибка
Объяснение:
Мой ADTF-фильтр получает в качестве входных данных два двойных значения, а его вывод представляет собой структуру. Структура содержит несколько двойных значений.
typedef struct {
double ValueX;
double ValueY;
double ValueZ;
} tStruct;
Моя проблема:
Я хотел увидеть свои значения в "Просмотр сигналов", но я получаю эту ошибку:
предупреждение | 00:00:15:015 | Служба описания носителей: не найдено описание носителей для типа структуры '' на выводе 'Filter/ValueX/'. Этот пин не будет доступен в SignalView! | media_description_signal_provider.cpp(158) | 12736/8516 | C:\tools\ADTF\2.14.2\bin\adtf_devenv.exe | Хорошо | Нет ошибок | cMediaManager_plugin
Что я пробовал
Я немного поигрался с редактором MediaDescription Editor и попытался увидеть, как это делается, на примерах, приведенных в adtf. Но пока ничего не работает.
1 ответ
Предупреждение (без ошибок) точно описывает то, чего не хватает: На выходном выводе, который вы используете для своей структуры, не установлено описание носителя.
Я предполагаю, что вы используете что-то вроде этого в вашем методе Init:
m_oOutputPin.Create("output", cObjectPtr<IMediaType>(new cMediaType(0, 0)), static_cast<IPinEventSink*> (this));
Таким образом, вы должны расширить создание медиа-типа вашей структурой:
m_oOutputPin.Create("output", cObjectPtr<IMediaType>(new cMediaType(0, 0, 0, "tStruct")), static_cast<IPinEventSink*> (this));
Затем он будет установлен и сгенерирован из вашей структуры.
Также посмотрите демонстрационную версию https://support.digitalwerk.net/adtf/v2/adtf_sdk_html_docs/page_demo_media_desc_coder.html и структуру tSimpleStruct_BE, например.