SDK для FD422
Модераторы: ElenVR, Людмила, PR
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 493
- Зарегистрирован: 04 янв 2004 12:45
- Откуда: СофтЛаб-НСК
Нет, программа всегда должна записывать в FIFO картинку в обычном формате (не premultiplied). Это наши внутренние "заморочки" с названиями, которые сложились по историческим причинам. Можно сказать, что железка занимается переводом в premultiplied формат.kasa писал(а):Еще попутный вопрос. Получается, компонент CLSID_SLTMTitleServerTargetMgr работает с premultiplied картинками. Означает ли это, что я должен в FIFO буфер поставлять именно изображения в premultiplied? Или этим как-то железяка занимается?
Для плат FD322, FD422, FD842 нужно использовать константу:
Код: Выделить всё
extern "C" const GUID CLSID_FDExtTitleTargetMgr = {0xBAFE501E,0x4874,0x4EF9,{0x8E,0xF3,0x22,0xD8,0xF3,0x97,0xDC,0x82}};
-
- Сообщения: 90
- Зарегистрирован: 04 сен 2008 01:50
- Откуда: Красноярск
Спасибо за развернутый ответ, однако не все до конца понятно. Надо экспериментировать.Игорь Таранцев писал(а): Для плат FD322, FD422, FD842 нужно использовать константу:Код: Выделить всё
extern "C" const GUID CLSID_FDExtTitleTargetMgr = {0xBAFE501E,0x4874,0x4EF9,{0x8E,0xF3,0x22,0xD8,0xF3,0x97,0xDC,0x82}};
А можете выдать мне заголовочные файлы - результат импорта библиотеки? Аналог того, что есть в SDK для FD300
-
- Сообщения: 493
- Зарегистрирован: 04 янв 2004 12:45
- Откуда: СофтЛаб-НСК
-
- Сообщения: 1407
- Зарегистрирован: 10 сен 2004 12:09
Адреса технической поддержки
forward@softlab.tv
forward@sl.iae.nsk.su
forward@softlab-nsk.com
В письме нужно указать ссылку на это сообщение в форуме.
forward@softlab.tv
forward@sl.iae.nsk.su
forward@softlab-nsk.com
В письме нужно указать ссылку на это сообщение в форуме.
-
- Сообщения: 83
- Зарегистрирован: 16 фев 2010 15:32
- Откуда: г. Красноярск
Здравствуйте.
Рассмотрел сегодня пример FDTitleDotNetSamples для C#
И опять же с ходу не смог разобраться как запустить этот пример на Lite или FD422
Т.е. получаю окошко

С данной проблемой я разобрался по части VC++
Обсуждалось здесь:
viewtopic.php?p=21189#21189
Но на C# по аналогии не сумел пока понять куда следует прописать нужный GUID, или что дописать.
Рассмотрел сегодня пример FDTitleDotNetSamples для C#
И опять же с ходу не смог разобраться как запустить этот пример на Lite или FD422
Т.е. получаю окошко

С данной проблемой я разобрался по части VC++
Обсуждалось здесь:
viewtopic.php?p=21189#21189
Но на C# по аналогии не сумел пока понять куда следует прописать нужный GUID, или что дописать.
-
- Сообщения: 7093
- Зарегистрирован: 26 фев 2004 09:53
- Откуда: Techsupport SoftLab-NSK
-
- Сообщения: 493
- Зарегистрирован: 04 янв 2004 12:45
- Откуда: СофтЛаб-НСК
Вы пытаетесь создать объект с CLSID = CLSID_SLTMTitleServerTargetMgr. Этот CLSID соответствует плате FD300. Видимо у Вас плата FD300 не установлена.
Для работы с видеопроцессором (программа SLTitlePreview для работы без платы) нужно использовать CLSID_SLDirectShowTitleEngine.
Для работы с платой FD422 - CLSID_FDExtTitleTargetMgr.
Для работы с видеопроцессором (программа SLTitlePreview для работы без платы) нужно использовать CLSID_SLDirectShowTitleEngine.
Для работы с платой FD422 - CLSID_FDExtTitleTargetMgr.
-
- Сообщения: 83
- Зарегистрирован: 16 фев 2010 15:32
- Откуда: г. Красноярск
Игорь Таранцев, эти моменты я понимаю.
У меня скорей проблемы с С#-синтаксисом.
Поиски по проекту не привели меня к объявлениям всех этих CLSID или к инициализации с ними. Где-то это спрятано в библиотеках.
Далее как я понял вместо интерфейса ISLTMTitleRunTimeMgr можно использовать ISLTMTitleRunTimeMgr2 в котором метод Init имеет третий параметр Guid, куда следует передать, например, CLSID_SLDirectShowTitleEngine. Но опять же как и где объявить этот CLSID или откуда взять?
Можно небольшой пример кода?
У меня скорей проблемы с С#-синтаксисом.
Поиски по проекту не привели меня к объявлениям всех этих CLSID или к инициализации с ними. Где-то это спрятано в библиотеках.
Далее как я понял вместо интерфейса ISLTMTitleRunTimeMgr можно использовать ISLTMTitleRunTimeMgr2 в котором метод Init имеет третий параметр Guid, куда следует передать, например, CLSID_SLDirectShowTitleEngine. Но опять же как и где объявить этот CLSID или откуда взять?
Можно небольшой пример кода?
-
- Сообщения: 13
- Зарегистрирован: 28 мар 2011 17:04
Добрый день!

Привожу объявления основных CLSID-ов (на c#), которые используются у нас
Объявить эти переменные можно в любом вашем классе.
При инициализации, кроме CLSID-а, необходимо передать ещё один параметр - boardIndex, некий номер платы. Смысл этого параметра зависит от таргета, который инициализируем.
В большинстве случаев это действительно номер платы, видеопроцессора и т.д.
В случае с FDExt, это более сложное понятие, так как плат может быть несколько, каждая из плат содержит по несколько входов/выходов, какие-то из них активны/неактивны...
Короче в FDExt есть целый набор интерфейсов по перечислению и идентификации этих 'концов'.
Удачи.
Сами CLSID-ы можно поискать с помощью 'OleView', правда нужно знать в каких dll-ках/exe-шках смотретьAntonChik писал(а):Игорь Таранцев, эти моменты я понимаю.
У меня скорей проблемы с С#-синтаксисом.
Поиски по проекту не привели меня к объявлениям всех этих CLSID или к инициализации с ними. Где-то это спрятано в библиотеках.
Далее как я понял вместо интерфейса ISLTMTitleRunTimeMgr можно использовать ISLTMTitleRunTimeMgr2 в котором метод Init имеет третий параметр Guid, куда следует передать, например, CLSID_SLDirectShowTitleEngine. Но опять же как и где объявить этот CLSID или откуда взять?
Можно небольшой пример кода?

Привожу объявления основных CLSID-ов (на c#), которые используются у нас
Код: Выделить всё
// FD300 основной
static readonly private Guid _SLTMTitleServerTargetMgr = new Guid("dd02fc80-7d6e-440b-bf32-1a29774ddc1a");
// FD300 слой артиста
static readonly private Guid _SLTMTitleArtServerTargetMgr = new Guid("4acf2000-688a-4cfe-b524-1afb657136ab");
// FD300 слой подложки
static readonly private Guid _SLTMTitleBackServerTargetMgr = new Guid("bb94349b-d939-459f-80d7-12af0726aacb");
// FD300 основной No premult
static readonly private Guid _SLTMTitleNoPremultServerTargetMgr = new Guid("abcce56a-c309-4fc8-9371-0f58cbaaac68");
// DirectShow Videoprocessor
static readonly private Guid _DSTitleFilterMgr = new Guid("{0x73DA552F,0x4946,0x4670,{0x84,0x84,0x95,0x8F,0x97,0xA2,0x23,0xF2}}");
// DVM6 board
static readonly private Guid _DVMTitleTargetMgr = new Guid("{0xCA5260BE,0x10C2,0x438A,{0xB5,0xA5,0x94,0x23,0x7C,0x05,0x83,0x17}}");
// FDExt family board (FD322, FD422, FD842...)
static readonly private Guid _FDExtTitleFilterMgr = new Guid("{0xBAFE501E,0x4874,0x4EF9,{0x8E,0xF3,0x22,0xD8,0xF3,0x97,0xDC,0x82}}");
При инициализации, кроме CLSID-а, необходимо передать ещё один параметр - boardIndex, некий номер платы. Смысл этого параметра зависит от таргета, который инициализируем.
В большинстве случаев это действительно номер платы, видеопроцессора и т.д.
В случае с FDExt, это более сложное понятие, так как плат может быть несколько, каждая из плат содержит по несколько входов/выходов, какие-то из них активны/неактивны...
Короче в FDExt есть целый набор интерфейсов по перечислению и идентификации этих 'концов'.
Удачи.
-
- Сообщения: 83
- Зарегистрирован: 16 фев 2010 15:32
- Откуда: г. Красноярск
-
- Сообщения: 83
- Зарегистрирован: 16 фев 2010 15:32
- Откуда: г. Красноярск
Здравствуйте.
Написал программу на машине без платы, работает.
Запускаю на машине с платой FD422, получаю исключение:

т.е. старая сборка SLTMTitleRunTime_4.6.12119.1550 уже не поддерживается.
Если пробую запускать со сборкой новой версии
SLTMTitleRunTime_5.0.14009.1133
то там нет нужных интерфейсов, например, ISLTMTitleRunTimeMgr3,
которые были в SLTMTitleRunTime_4.6.12119.1550

Палка о двух концах. Как быть?
Может есть какое-то более новое описание SDK, для работы без старых интерфейсов?
Написал программу на машине без платы, работает.
Запускаю на машине с платой FD422, получаю исключение:

т.е. старая сборка SLTMTitleRunTime_4.6.12119.1550 уже не поддерживается.
Если пробую запускать со сборкой новой версии
SLTMTitleRunTime_5.0.14009.1133
то там нет нужных интерфейсов, например, ISLTMTitleRunTimeMgr3,
которые были в SLTMTitleRunTime_4.6.12119.1550

Палка о двух концах. Как быть?
Может есть какое-то более новое описание SDK, для работы без старых интерфейсов?
-
- Сообщения: 493
- Зарегистрирован: 04 янв 2004 12:45
- Откуда: СофтЛаб-НСК
Выложил изменения в SDK в папку:
ftp://ftp.sl.iae.nsk.su/Public/ForwardT ... RunTimeSDK
В файле "SLTMTitleRunTimeSDK.zip" собственно документ.
В файле "FDTitleSamples_CS_CPP.zip" пример на C++.
В файле "FDTitleCSharp_v2.zip" - пример на C#.
В самом начале документа описание того, какова теперь инициализация объекта.
ftp://ftp.sl.iae.nsk.su/Public/ForwardT ... RunTimeSDK
В файле "SLTMTitleRunTimeSDK.zip" собственно документ.
В файле "FDTitleSamples_CS_CPP.zip" пример на C++.
В файле "FDTitleCSharp_v2.zip" - пример на C#.
В самом начале документа описание того, какова теперь инициализация объекта.
-
- Сообщения: 83
- Зарегистрирован: 16 фев 2010 15:32
- Откуда: г. Красноярск
-
- Сообщения: 83
- Зарегистрирован: 16 фев 2010 15:32
- Откуда: г. Красноярск
Здравствуйте.
Хотел бы вернуться вот к этому вопросу, т.к. сложилась аналогичная ситуация.
Хотел бы вернуться вот к этому вопросу, т.к. сложилась аналогичная ситуация.
Есть тут какое-то решение?kasa писал(а):Мы как-то подключали титровалку в пульт, а пульт занимался микшированием имея с титровалки Fill+Key. Так вот, когда использовался CLSID_SLTMTitleServerTargetMgr, изображение результирующее было хаотично окантовано зелёными пятнами. Вы посоветовали использовать CLSID_SLTMTitleNoPremultServerTargetMgr.
Это помогло, пятна исчезли. Сейчас я перевожу свой софт на FD422 и хотелось бы сохранить функциональность.