Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Прошу о помощи с реализацией VFW кодека

1.8K
23 мая 2010 года
igor_nf
256 / / 13.12.2006
Господа, выручайте - запутался совсем уже !

У меня стоит такая задача: написать Cuda Motion JPEG кодек, реализовать надо как инсталлируемый драйвер Windows. После курения мануалов по VFW и чтения сырцов какого-то скачанного из интернета avi-плеера я решил для начала написать stub-кодек, т. е. для начала он должен понимать собственный fourcc-код и просто возвращать rgb-фреймы в неизменном виде.

Конкретнее, на данный момент я реализовал dll, после установки её в систему я делаю следующее для проверки работоспособности:
Беру avi-файл размером поменьше, конвертирую видеопоток с помощью virtualdub в uncompressed RGB (YCbCr) и hex-редактором меняю fourcc в файле в двух местах: (video) AVIStreamHeader.fccHandler = "CUMJ"; (BITMAPINFOHEADER) AviStreamFormat.biCompression = "CUMJ"; По замыслу при открытии любым плеером система должна определить мою dll в качестве декодера для видеопотока (что она благополучно и делает), а функция обработки сообщения ICM_DECOMPRESS просто копирует source-фрейм в качестве target-фрейма, поскольку поток и так несжат.
При этом и Winamp и Windows Media Player отображают какую-то чепуху, трудно объяснить словами что отображается. Самое интересное, что тот плеер, сорцы которого я курил (см. выше), работает нормально, т. е. система находит мой кодек, и с его помощью воспроизведение видео работает нормально. Не понимаю, куда дальше копать - я хочу, чтобы все плееры нормально это воспроизводили. Если кто-то в силах помочь, я был бы очень признателен, тогда я выложу проект студии сюда и объясню, как воспроизвести проблему. Хотя я выше уже это объяснил.

Спасибо за внимание.
14
25 мая 2010 года
Phodopus
3.3K / / 19.06.2008
Выкладывай аттачем, какая студия?
1.8K
25 мая 2010 года
igor_nf
256 / / 13.12.2006
Цитата: Phodopus
Выкладывай аттачем, какая студия?



Пишу в 2005-й, думаю не суть важно - помогаю человеку с дипломом. Сегодня вечером буду дома - выложу сюда проект. Пока надо реализовывать JPEG компрессию, но с этим вопросом тоже очень хотелось бы разобраться, вроде всё правильно реализовал - не пойму, почему не работает.

1.8K
25 мая 2010 года
igor_nf
256 / / 13.12.2006
Собственно, сам кодек во вложении stub_codec.zip. Там же есть inf-файл для инсталляции в систему. Ещё приложил авишный плеер, который нормально работает с этой dll-кой - может пригодится.

Чтобы скомпилить avi-плеер нужно установить opengl и openal, прописать пути студии.
14
26 мая 2010 года
Phodopus
3.3K / / 19.06.2008
Еще нужен файл на котором его испытывать можно
1.8K
26 мая 2010 года
igor_nf
256 / / 13.12.2006
Да мне, наверное, было бы проблематично выкладывать сюда авишки с rdb-видеопотоком ввиду их размера. Я тестирую так: беру авишку поменьше (10-15M), если такой нет, можно виртуалдубом отрезать нужного размера. Соотношение по размеру mpeg4/rgb составляет примерно 1:100, поэтому и берём маленький файл. Потом перегоняем его в uncompressed RGB тем же дубом и меняем fourcc в файле в двух местах, я писал в первом сообщении. В дубе есть для этого подходящий hex-редактор. Потом пытаться проиграть файл. Только так можно воспроизвести проблему.
1.8K
26 мая 2010 года
igor_nf
256 / / 13.12.2006
Залил готовый файл на обменник, скачать можно отсюда
http://share.bashtel.ru/download.php?file=ef9e7de65cfbdc8b34b685f36d796c64
100M
14
27 мая 2010 года
Phodopus
3.3K / / 19.06.2008
Цитата: igor_nf
Пишу в 2005-й, думаю не суть важно


да в принципе для галочки

Цитата: igor_nf
перегоняем его в uncompressed RGB тем же дубом и меняем fourcc в файле в двух местах


понял, пойдет.
Скачал, но пока детально посмотреть нет времени, может на выходных.
Кстати появилась идея что тот плеер использует VFW интерфейс, в то время как другие лишь современный DShow.

6.2K
04 июня 2010 года
abdyla_v
40 / / 02.02.2006
Интиресная задача - написать свой кодек, да еще с такой старой технологией как VFW.
Цитата: Phodopus

Кстати появилась идея что тот плеер использует VFW интерфейс, в то время как другие лишь современный DShow.

Все может быть, так как VFW не такой уже популярен :). Или например плееры просят в одном формате, а получают в другом данные. Для нормальной работы нужно что бы ICM_DECOMPRESS_QUERY/ICM_DECOMPRESS_GET_FORMAT/ICM_DECOMPRESS_BEGIN/ICM_DECOMPRESS_END/ICM_DECOMPRESS выдавали нормальную инфу для клиента(плеер). Код пока несмотрел, нету времени, поэтому только делаю догадки. А что там под отладкой показывает, может какие ошибки необрабатываются, или еще что то?

1.8K
17 июня 2010 года
igor_nf
256 / / 13.12.2006
Думается, вопрос закрыт, видимо нужно реализовывать dshow-интерфейс к кодеку, чтоб нормально отображалось во всех плеерах. Тем временем сам кодек почти готов, правда, более чем на "дипломную" реализацию, это не потянет, к сожалению. :) Всем спс.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог