Я пишу плагин для браузера, который получает поток видео QVGA.Я хотел бы передать это видео в браузер способом, который может быть программно связан с JavaScript - например, чем-то, что может быть передано на холст, например, элементом или объектом Image ().
ПРИМЕЧАНИЕЭто означает, что я пытаюсь избежать рисования моего плагина в окне - я знаю, что могу это сделать, но я хочу что-то, что хорошо взаимодействует с остальной частью рендеринга страницы, а также имеет хорошо известную объектную модель, которую я выигралНе нужно реализовывать.
Сложность в том, как сделать это быстро - я могу сделать это, например, установив свойство src, чтобы иметь данные в кодировке base64, но накладные расходы довольно высоки.
Мой вопрос заключается в том, есть ли способ избежать дополнительных затрат (например, заполнить буфер необработанного изображения вместо форматирования изображения и кодировать base64 только для того, чтобы браузер его декодировал) - то, что у меня есть сейчас, не так быстродостаточно.
Что касается среды, я использую Firebreath, чтобы написать плагин (C ++ с NPAPI / ActiveX в основном абстрагированы), и яхочу сохранить поддержку Mac и Windows у меня есть.Принятие непосредственного использования NPAPI приемлемо, но я бы предпочел этого не делать.
РЕДАКТИРОВАТЬ: Я решил проблему, используя элемент и обновив его свойство src до битовой карты в кодировке base64, используясхема пользовательского интерфейса данных - (например, imageJSObject-> SetProperty ('src', 'data: image / bmp; base64,«);Производительность не велика, но достаточно хороша.Основное предостережение заключается в том, что по крайней мере в Chrome 15 onload срабатывает только один раз, а не каждый раз, когда я изменяю свойство src, поэтому я должен генерировать свое собственное событие после каждого обновления.