Смена формата картинок в PushSource

 
Начать новую тему   Ответить на тему    Список форумов DirectShow форум -> Фильтры
Предыдущая тема :: Следующая тема  
Автор Сообщение
inner_panda
Новенький


Зарегистрирован: 25.02.2008
Сообщения: 2

СообщениеДобавлено: Пн Фев 25, 2008 6:08 pm    Заголовок сообщения: Смена формата картинок в PushSource Ответить с цитатой

Поковырялся в PushSource примере из стандартной поставки DSPack-a
Теперь хочу, чтобы фильтр пользовался не bmp, a JPEG файлами в качестве источника, но не могу целиком осознать, как это сделать.
Стоит ли искать аналог BITMAPINFO для JPEG формата и скармливать его всем желающем в методе GetMediaType?
Или каким-то образом преобразоывть JPEG в битмап и на выходе выдавать уже готовый битмап?

В идеале хотелось бы ничего не делать с JPEG-ом самостоятельно, отдавая его на обработку более смышлёным фильтрам, так как дельфишные стандартные средства разжатия JPEG-ов не радуют большой производительностью, да и не особо охотно работают в фильтрах (если в фильтре используются дельфишные модули Jpeg и QGraphics, .ax файл фильтра не хочет регистрироваться в системе).

Возможно, стоит вообще отказаться от PushSource и взять какой-то другой фильтр (речь идёт именно о работе с набором жпегов, который надо выводить последовательно, как в TBCPushPinBitmapSet)

Заранее спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
djan
Новенький


Зарегистрирован: 27.07.2007
Сообщения: 6
Откуда: от туда

СообщениеДобавлено: Ср Май 07, 2008 6:28 pm    Заголовок сообщения: Ответить с цитатой

для разжатия jpeg попробуйте использовать Intel Jpeg Library. Пример исползования jpeg есть тут http://www.sources.ru/cpp/cpp_class_for_jpeg.shtml
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
inner_panda
Новенький


Зарегистрирован: 25.02.2008
Сообщения: 2

СообщениеДобавлено: Чт Май 08, 2008 11:32 am    Заголовок сообщения: Ответить с цитатой

Уже разобрался
Надо было просто указать, что отправляешь не битмап, а сжатый жпег. Для этого в методе GetMediaType при заполнении структуры PVIDEOINFOHEADER нужно указать такое поле biCompression:
pve.bmiHeader.biCompression := MAKEFOURCC('M','J','P','G');
После этого в поле FillBuffer тупо скармливать жпег файл целиком.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов DirectShow форум -> Фильтры Часовой пояс: GMT + 4
Страница 1 из 1
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB


Рейтинг@Mail.ru