2015-04-03 2 views
1

Я обрабатываю видео с помощью DirectShow & FFmpeg в моем приложении. FFmpeg используется только для декодирования кадров MPEG4/Part2 (пользовательский фильтр декодера). Мое приложение не воспроизводит аудио (только видео).FFmpeg отключает Window Desktop Manager в моем приложении

Когда я запираю ПК (Win7 Pro 64bit) с Win + L, а затем разблокировать Windows, приносит мне следующее сообщение:

Цветовая схема была изменена

Следующая программа выполнил действие, которое требует, чтобы Windows временно изменила цветовую схему на Windows 7 Basic.

... название приложения, издатель, PID ...

для Windows будет автоматически изменять цветовую схему обратно в Windows Aero, когда эта программа или другие программы, выполняющие аналогичные действия уже не работает.

У меня есть возможность использовать другой пользовательский фильтр декодера, который был разработан без FFmpeg, и с его использованием Windows не показывает мне такие сообщения.

Я запустил средство устранения неполадок Aero, которое обнаружило, что диспетчер окон рабочего стола отключен.

Мой главный вопрос: почему это сообщение появляется после разблокировки?

P.S. Я использую ffmpeg mpeg4 decoder, sws_scale от RGB24 до YUV420p. FFmpeg был построен только с декодером/кодировщиком mpeg4, все остальное было отключено.

+1

Эта проблема не связана с FFmpeg (я надеюсь), проблема возникает, даже если я «отключу» код и библиотеки FFmpeg. Эта проблема относится к Video Render, используемому в графике фильтра DirectShow. Я использую CLSID_VideoRenderer, но проблема не возникает с FFmpeg и CLSID_MixingVideoRender9/CLSID_EnhancedVideoRenderer. – Sergey

ответ

2

Проблема была вызвана предоставлением отрицательной высоты (верхняя растровая карта) в bitmapinfoheader при согласовании типов носителей. Я изменил высоту, чтобы быть положительным (снизу вверх растровое изображение) в моем декодере, а цветовая схема Windows 7 больше не трогается.