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, например.

Другие вопросы по тегам