Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Формат видео файлов


Автор: Kesh 14.6.2006, 19:31
Все здравствуйте...
Работаю с компонентами DSPack, в частности с FilterGraph и SampleGrabber... В SampleGrabber стоит установка формата буфера в Video-RGB24-VideoInfo, т.е. при буферизации в буфере хранится информация о пикселах сампла в 24 битном формате RGB...

После чего выполняется такой код...
Код

for y:= 0 to pDesc.Height-1 do
  for x := 0 to pDesc.Width-1 do
    PDWord(Адрес пиксела текстуры )^ := ($FF shl 24) or PDWord(Адрес в буфере)^;

Т.е. перегоняются пикселы из буфера на поверхность текстуры...
Для avi-файлов все работает просто замечательно... Но вот для файлов wmv и mpg что-то не так... Цвета пикселей выводятся правильно, то с каким-то непонятным смещением...

Что, разве у файлов mpg и wmv другой формат буфера, отличный от RGB24? 

Автор: Kesh 14.6.2006, 20:28
Возникло такео ощущение, что неправильно определяются размеры surface...
Они определяются в событии FilterGraph.onVideoSizeChanged...
Может из-за этого?.. 

Автор: Kesh 15.6.2006, 15:49
На самом деле вот в чем проблема была...
Хотя я и задавал формат буфера в RGB24, но для AVI-шек для кодирования каждой строчки использовалось 24ХШирина бит,
а для остальных форматов 32ХШирина бит, хотя пикселы все также кодируются 24 битами... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)