Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: CL | DM;

Вниз

конвертирование 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 вся ветка

Текущий архив: 2003.07.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
7-7734
Sliski Slimak
2003-04-23 13:39
2003.07.03
как организовать синхронизацию папок.....


3-7326
supersan
2003-06-09 12:38
2003.07.03
Глюк с DBGridEh? Или со мной что-то не то?


14-7709
aclon
2003-06-12 19:54
2003.07.03
Сколько ангелов уместится на острие иглы?


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


1-7464
kah68
2003-06-20 16:17
2003.07.03
Изменение курсора мышки при выполнении SQL запроса