Форум: "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.015 c