Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Вниз

конвертирование bitmap из RGB24 в YUY2(YUV422)...help   Найти похожие ветки 

 
programmer_kia   (2003-03-11 15:49) [0]

проблем, собственно не при конвертировании, а в последующих действиях...
вот кусок из программы, написанной при помощи DX8SDK(DirectShow)...я собственно direcshow фильтр и пишу...
она работает не правильно, что нужно подправить для получения изображения??

HRESULT CNullInPlace::Transform(IMediaSample *pSample)
{
UNREFERENCED_PARAMETER(pSample);

AM_MEDIA_TYPE* pType = &m_pInput->CurrentMediaType();
VIDEOINFOHEADER *pvi = (VIDEOINFOHEADER *) pType->pbFormat;
CConv *pConv = NULL;

// Pointer to the actual image buffer
BYTE *pData = NULL;
pSample->GetPointer(&pData);
char *In = NULL, *Out= NULL;

In = (char *)malloc((pvi->bmiHeader.biHeight * pvi->bmiHeader.biWidth) * 3);
Out = (char *)malloc((pvi->bmiHeader.biHeight * pvi->bmiHeader.biWidth) * 2);

// In - pointer to bitmap
// Out - pointer to new YUY2 bitmap

memcpy(In, pData + sizeof(pvi->bmiHeader), sizeof(pvi->bmiHeader.biSizeImage) - sizeof(pvi->bmiHeader));

// converting color spaces...
Out = pConv->rgb2yuv422(In, Out, pvi->bmiHeader.biHeight * pvi->bmiHeader.biWidth);
free(In);

pvi->bmiHeader.biSizeImage = sizeof(*Out);

memcpy(pData, &pvi->bmiHeader, sizeof(pvi->bmiHeader));
memcpy(pData + sizeof(pvi->bmiHeader), Out, sizeof(*Out));
free(Out);


pType->subtype = MEDIASUBTYPE_YUY2;
pType->bFixedSizeSamples = TRUE;
pType->bTemporalCompression = TRUE;
pType->lSampleSize = pvi->bmiHeader.biSizeImage;
pType->formattype = FORMAT_VideoInfo;


pSample->SetActualDataLength(pvi->bmiHeader.biSizeImage);
pSample->SetMediaType(pType);

// setup media subtype
CMediaType *pmt = NULL;
//get_MediaType(&pmt);
pmt->SetSubtype(&MEDIASUBTYPE_YUY2);
pmt->SetSampleSize(pvi->bmiHeader.biSizeImage);
pmt = (CMediaType *) pType;
put_MediaType(pmt);

return NOERROR;
}


 
programmer_kia   (2003-03-11 15:58) [1]

да, кстати,
в куске:
// converting color spaces...
Out = pConv->rgb2yuv422(In, Out, pvi->bmiHeader.biHeight * pvi->bmiHeader.biWidth);
--- это специальная функция, которая переводит rgb24->yuy2, там все ок!!


 
PGM   (2003-03-14 11:56) [2]

А граф-то нормально связывается? А что в результате? Нет изображения или некорректно? Время бежит или это статическое изображение? Лучше экспериментировать все-таки на подходящих AVI, лучше контролируется ситуация.


 
kia   (2003-03-16 07:44) [3]

да вот в этом вся проблема, граф не связывается...точнее связывается только по отдельности: либо с rgb фильтром, либо yuv фильтром, но никак вместе :(
что делать??


 
programmer_kia   (2003-03-20 06:44) [4]

up



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
7-7729
mobilzero
2003-04-21 11:02
2003.07.03
Как научить программу на АСМ работать под виндами?


1-7517
Rafik
2003-06-20 11:27
2003.07.03
DateTimePicker


9-7282
Alek Aaz
2003-01-16 05:06
2003.07.03
За и против GLscene


1-7449
Mishenka
2003-06-23 16:29
2003.07.03
Как в TreeView определить над каким узлом находжится курсор мыши?


6-7573
Gremlin
2003-04-25 13:03
2003.07.03
Связка ActiveX и WEB - проблемы!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский