张源 a écrit :
>
>
> 2009/7/4 Laurent Tarrisse <[email protected] <mailto:[email protected]>>
>
>     Do you know what palettes are supported by your webcam ?
>
>     Laurent
>
>     张源 a écrit :
>     >
>     >
>     > 2009/7/2 Laurent Tarrisse <[email protected]
>     <mailto:[email protected]> <mailto:[email protected]
>     <mailto:[email protected]>>>
>     >
>     > Can you make a small test :
>     >
>     > nmake webcam-test-visu-c
>     >
>     > ...
>     >
>     > launch webcam-test-visu-c.exe
>     >
>     > Is it the same result ?
>     >
>     > Laurent
>     >
>     > 张源 a écrit :
>     > >
>     > >
>     > > 2009/7/1 Laurent Tarrisse <[email protected]
>     <mailto:[email protected]>
>     > <mailto:[email protected] <mailto:[email protected]>>
>     <mailto:[email protected] <mailto:[email protected]>
>     > <mailto:[email protected] <mailto:[email protected]>>>>
>     > >
>     > > Laurent Tarrisse a écrit :
>     > > > 张源 a écrit :
>     > > >
>     > > >> I have built qutecom-2-2-3faed9597730(debug),with vs 2005 on
>     > > windows
>     > > >> xp Chinese simplified but there are some problems with
>     > Qutecom when
>     > > >> making a webcam preview or a video call .
>     > > >>
>     > > >> The problems are as follows: when entering Video settings ,then
>     > > click
>     > > >> Webcam Preview button ,after a while ,the Label on the right
>     > > side just
>     > > >> shows a gray rectangle. The Video call is also just shows a
>     gray
>     > > >> rectangle,and after a while it crashed .
>     > > >> Webcam Preview.png (/image/png/) 5K
>     > > >>
>     > >
>     >
>     <?ui=2&ik=ab85a7e087&view=att&th=1223455e9356b51f&attid=0.1&disp=attd>
>     > > >> The piximage has been sucessfully catched by WebcamDriver.
>     > > >> I found the problem may lie in this code section:
>     > > >> pixertool.cpp
>     > > >>
>     > > >> *...*
>     > > >> pixerrorcode* pix_convert*(int flags, piximage * img_dst,
>     > > piximage *
>     > > >> img_src) {
>     > > >> *...*
>     > > >> if (*img_convert*(&avp_target, pix_fmt_target,
>     > > >> &avp_tmp_target, pix_fmt_source,
>     > > >> img_dst->width, img_dst->height) *== -1*) {
>     > > >> av_free(buf_tmp_target);
>     > > >> return PIX_NOK;
>     > > >> }
>     > > >> * ...*
>     > > >> }
>     > > >>
>     > > > Can you give me img_src->palette and img_src->dst ?
>     > > >
>     > > Oups,
>     > >
>     > > it is img_src->palette and img_dst->palette.
>     > >
>     > > Laurent
>     > > >> *...*
>     > > >> when calling * pix_convert*() ,the function *img_convert()*
>     > allways
>     > > >> return -1 which means the image conversion fails.
>     > > >>
>     > > >> Has anyone face the same problem ,please help me
>     > > >>
>     > > >>
>     > >
>     >
>     ------------------------------------------------------------------------
>     > > >>
>     > > >>
>     > >
>     >
>     ------------------------------------------------------------------------
>     > > >>
>     > > >> _______________________________________________
>     > > >> QuteCom-dev mailing list
>     > > >> [email protected]
>     <mailto:[email protected]>
>     > <mailto:[email protected]
>     <mailto:[email protected]>>
>     > > <mailto:[email protected]
>     <mailto:[email protected]>
>     > <mailto:[email protected]
>     <mailto:[email protected]>>>
>     > > >> http://lists.qutecom.org/mailman/listinfo/qutecom-dev
>     > > >>
>     > > >>
>     > > >
>     > > > _______________________________________________
>     > > > QuteCom-dev mailing list
>     > > > [email protected]
>     <mailto:[email protected]>
>     > <mailto:[email protected]
>     <mailto:[email protected]>>
>     > <mailto:[email protected]
>     <mailto:[email protected]>
>     > <mailto:[email protected]
>     <mailto:[email protected]>>>
>     > > > http://lists.qutecom.org/mailman/listinfo/qutecom-dev
>     > > >
>     > >
>     > > _______________________________________________
>     > > QuteCom-dev mailing list
>     > > [email protected]
>     <mailto:[email protected]>
>     > <mailto:[email protected]
>     <mailto:[email protected]>>
>     > <mailto:[email protected]
>     <mailto:[email protected]>
>     > <mailto:[email protected]
>     <mailto:[email protected]>>>
>     > > http://lists.qutecom.org/mailman/listinfo/qutecom-dev
>     > >
>     > >
>     > > Thank you !
>     > > the functions are called as follows:1――>2――>3
>     > > *1 *void QtVideoSettings::frameCapturedEventHandler
>     (IWebcamDriver *
>     > > sender, piximage * image) {//重要函数
>     > >
>     > > * ...*
>     > > QSize qs(_ui->webcamPreviewLabel->width(),
>     > > _ui->webcamPreviewLabel->height());
>     > > QImage tmpRgbImage(qs, QImage::Format_RGB32);
>     > > *QtVideoQt::convertPixImageToQImage(image, qs, &tmpRgbImage);*
>     > > QPixmap tmp = QPixmap::fromImage(tmpRgbImage);
>     > > * ...*
>     > >
>     > > }
>     > > *2 * void QtVideoQt::convertPixImageToQImage(piximage* pixImage,
>     > const
>     > > QSize& size, QImage* image) {
>     > > * ...*
>     > > piximage resizedPixImage;
>     > > resizedPixImage.palette = PIX_OSI_RGB32;
>     > > resizedPixImage.width = image->width();
>     > > resizedPixImage.height = image->height();
>     > > resizedPixImage.data = image->bits();
>     > >
>     > > * pix_convert(PIX_NO_FLAG, &resizedPixImage, pixImage);
>     > > * //测试//
>     > > }
>     > >
>     > > * so the img_dst->palette == PIX_OSI_RGB32 img_src->palette ==
>     > > PIX_OSI_YUV420P*
>     > > *3* pixerrorcode pix_convert(int flags, piximage * img_dst,
>     > piximage *
>     > > img_src) {
>     > >
>     > > * ...*
>     > > enum PixelFormat pix_fmt_source
>     > > =(PixelFormat)pix_ffmpeg_from_pix_osi(img_src->palette);
>     > > enum PixelFormat pix_fmt_target =
>     > > (PixelFormat)pix_ffmpeg_from_pix_osi(img_dst->palette);
>     > >
>     > >
>     > > *...*
>     > >
>     > >
>     > > #ifndef HAVE_SWSCALE
>     > > //TODO optimize this part but will need the preparation of
>     contexts
>     > > ImgReSampleContext * resample_context =
>     > > img_resample_init(img_dst->width, img_dst->height,
>     > > img_src->width, img_src->height);
>     > >
>     > > if (!resample_context) {
>     > > return PIX_NOK;
>     > > }
>     > >
>     > > AVPicture avp_tmp_target;
>     > >
>     > > //we need to prepare a tmp buffer
>     > > uint8_t * buf_tmp_target = (uint8_t
>     > > *)av_malloc(avpicture_get_size(pix_fmt_source, img_dst->width,
>     > > img_dst->height) * sizeof(uint8_t));
>     > > avpicture_fill(&avp_tmp_target, buf_tmp_target, pix_fmt_source,
>     > > img_dst->width, img_dst->height);
>     > > //
>     > >
>     > > //do the resampling
>     > > img_resample(resample_context, &avp_tmp_target, &avp_source);
>     > > img_resample_close(resample_context);
>     > > //
>     > >
>     > > //do the conversion
>     > > if (*img_convert*(&avp_target, pix_fmt_target,
>     > > &avp_tmp_target, pix_fmt_source,
>     > > img_dst->width, img_dst->height) == -1) {
>     > > av_free(buf_tmp_target);
>     > > return PIX_NOK;//转换没有成功
>     > > }
>     > > * ...*
>     > > }
>     > > *img_dst->palette : PIX_OSI_RGB32*
>     > > * img_src->palette : PIX_OSI_YUV420P*
>     > > pix_fmt_target : *PIX_FMT_BGR32*
>     > > pix_fmt_source : *PIX_FMT_YUV420P*
>     > > img_convert()is a function in ffmpeg library,so the problems
>     > might be
>     > > in parameters passed into it .It involves encoding and decoding
>     > which
>     > > I totally don't know how to deal with .
>     > > Thanks again !
>     > >
>     > >
>     >
>     > _______________________________________________
>     > QuteCom-dev mailing list
>     > [email protected]
>     <mailto:[email protected]>
>     <mailto:[email protected]
>     <mailto:[email protected]>>
>     > http://lists.qutecom.org/mailman/listinfo/qutecom-dev
>     >
>     >
>     >
>     > Thank you Laurent
>     > I have made a small test with webcam-test-visu-c.exe. the
>     results are
>     > as follows:
>     > * <error>15:32:03 [Common] DirectXWebcamDriver::setCaps:failed caps
>     > request:(19,15,320,240)
>     >
>     > Using width:320 ,height:240 FPS:15
>     > **Starting capture...
>     > I am called!!
>     > frame _captured
>     > .....
>     >
>     > *
>     > * *
>     > setCaps error.png (/image/png/) 7K
>     >
>     <?ui=2&ik=ab85a7e087&view=att&th=1223a64d4bdb3ee5&attid=0.2&disp=attd>
>     > webcam widget.png (/image/png/) 5K
>     >
>     <?ui=2&ik=ab85a7e087&view=att&th=1223a64d4bdb3ee5&attid=0.1&disp=attd>
>     > The picture still coulid not show on the webcam widget
>     > The execution results show below:
>     >
>     > DirectXWebcamDriver .cpp
>     > * ...*
>     > **
>     > WebcamErrorCode DirectXWebcamDriver::setDevice(const std::string &
>     > deviceName) {
>     >
>     > //TODO: test if a webcam is already open
>     > //TODO: refactor the COM initialization phase to avoid
>     > //multiple initalisations and better handle unitialization
>     > //cf trac ticket #1008
>     > // We really need to refactor that point
>     > // I leave this line here just because the phapi thread
>     > // must call this function (one time). We must move this
>     elsewhere ...
>     > CoInitialize(NULL);
>     > ////
>     > _pGraph.CoCreateInstance(CLSID_FilterGraph);
>     > if (!_pGraph) {
>     > LOG_ERROR("failed to create Graph builder");
>     > return WEBCAM_NOK;
>     > }
>     > _pBuild.CoCreateInstance(CLSID_CaptureGraphBuilder2);
>     > if (!_pBuild) {
>     > LOG_ERROR("failed to create Capture Graph builder");
>     > return WEBCAM_NOK;
>     > }
>     > _pBuild->SetFiltergraph(_pGraph);
>     > //Create the Sample Grabber
>     > HRESULT hr = CoCreateInstance(CLSID_SampleGrabber, NULL,
>     > CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&(_pGrabberF));
>     > if (hr != S_OK) {
>     > LOG_ERROR("failed to create COM instance");
>     > return WEBCAM_NOK;
>     > }
>     > //Add the filter to the graph
>     > hr = (_pGraph)->AddFilter(_pGrabberF, L"Sample Grabber");
>     > if (hr != S_OK) {
>     > LOG_ERROR("failed to add filter");
>     > return WEBCAM_NOK;
>     > }
>     > //Query the Sample Grabber for the ISampleGrabber interface.
>     > _pGrabberF->QueryInterface(IID_ISampleGrabber, (void**)&_pGrabber);
>     > hr = _pGrabber->SetBufferSamples(FALSE);
>     > hr = _pGrabber->SetOneShot(FALSE);
>     > //Set the Sample Grabber callback
>     > //0: SampleCB (the buffer is the original buffer, not a copy)
>     > //1: BufferCB (the buffer is a copy of the original buffer)
>     > if (_pGrabber->SetCallback(this, 0) != S_OK) {
>     > LOG_ERROR("failed to assign callback");
>     > return WEBCAM_NOK;
>     > }
>     > CComBSTR bstrName(deviceName.c_str());
>     > hr = FindMyCaptureDevice(&_pCap, bstrName);
>     > if ((hr != S_OK) || !_pCap) {
>     > return WEBCAM_NOK;
>     > }
>     > //initialize IAMStreamConfig
>     > _iam = GetIAMStreamConfig(_pCap);
>     > if (!_iam) {
>     > return WEBCAM_NOK;
>     > }
>     > //add the capture filter to the graph
>     > hr = (_pGraph)->AddFilter(_pCap, L"");
>     > if (hr != S_OK) {
>     > LOG_ERROR("failed to add filter");
>     > return WEBCAM_NOK;
>     > }
>     > //Add a null renderer filter
>     > hr = CoCreateInstance(CLSID_NullRenderer, NULL,
>     > CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&_pNull);
>     > hr = (_pGraph)->AddFilter(_pNull, L"NullRender");
>     > _pBuild->RenderStream(&PIN_CATEGORY_CAPTURE, NULL, _pCap, NULL,
>     > _pGrabberF);
>     > //try to assign some palette until the webcam supports it
>     > if (*setCaps*(PIX_OSI_YUV420P, _cachedFPS, 176, 144) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_YUV420P, _cachedFPS, 160, 120) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_I420, _cachedFPS, 176, 144) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_I420, _cachedFPS, 160, 120) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_RGB32, _cachedFPS, 176, 144) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_RGB32, _cachedFPS, 160, 120) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_RGB24, _cachedFPS, 176, 144) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_RGB24, _cachedFPS, 160, 120) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_YUV422, _cachedFPS, 176, 144) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_YUV422, _cachedFPS, 160, 120) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_RGB565, _cachedFPS, 176, 144) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_RGB565, _cachedFPS, 160, 120) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_RGB555, _cachedFPS, 176, 144) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_RGB555, _cachedFPS, 160, 120) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_YUY2, _cachedFPS, 176, 144) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_YUY2, _cachedFPS, 160, 120) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_UYVY, _cachedFPS, 176, 144) != WEBCAM_OK) {
>     > if (*setCaps*(PIX_OSI_UYVY, _cachedFPS, 160, 120) != WEBCAM_OK) {
>     > }}}}}}}}}}}}}}}}}}
>     > **
>     > *all of the 18 "if(setCaps(...)!=WEBCAM_OK)" above are executed
>     > .That's to say all the 18 " setCaps() " return WEBCAM_NOK;*
>     > **
>     > **
>     > *readCaps();*
>     > if (getPalette() == PIX_OSI_UNSUPPORTED) {
>     > return WEBCAM_NOK;
>     > }
>     > _isOpen = true;
>     > return WEBCAM_OK;
>     >
>     > }
>     > WebcamErrorCode DirectXWebcamDriver::setCaps(pixosi palette,
>     unsigned
>     > fps, unsigned resolutionWidth, unsigned resolutionHeight) {
>     > _cachedFPS = fps;
>     >
>     > if (!isOpen()) {
>     > return WEBCAM_NOK;
>     > }
>     >
>     > if (!_pCap) {
>     > LOG_FATAL("webcam not initialized");
>     > }
>     > if (!_iam) {
>     > LOG_FATAL("webcam not initialized");
>     > }
>     >
>     > int iCount, iSize;
>     > HRESULT hr = _iam->GetNumberOfCapabilities(&iCount, &iSize);
>     >
>     > VIDEO_STREAM_CONFIG_CAPS scc;
>     > if (sizeof(scc) != iSize) {
>     > LOG_ERROR("wrong config structure");
>     > return WEBCAM_NOK;
>     > }
>     >
>     > for (int i = 0; i < iCount; i++) {
>     > AM_MEDIA_TYPE * pmt = NULL;
>     > hr = _iam->GetStreamCaps(i, &pmt, reinterpret_cast<BYTE *>(&scc));
>     > if (hr == S_OK) {
>     > pixosi wc_palette = pix_directx_to_pix_osi(pmt->subtype);
>     > if (wc_palette != palette) {
>     > hr = E_FAIL;
>     > continue;
>     > }
>     > VIDEOINFOHEADER * pvi = (VIDEOINFOHEADER *) pmt->pbFormat;
>     > pvi->bmiHeader.biWidth = resolutionWidth;
>     > pvi->bmiHeader.biHeight = resolutionHeight;
>     > pvi->AvgTimePerFrame = (LONGLONG) (10000000. / (double)fps);
>     > hr = _iam->SetFormat(pmt);
>     > if (hr != S_OK) {
>     > hr = E_FAIL;
>     > continue;
>     > } else {
>     > LOG_DEBUG("assigned caps : ("
>     > + String::fromNumber(palette)
>     > + "," + String::fromNumber(fps)
>     > + "," + String::fromNumber(resolutionWidth)
>     > + "," + String::fromNumber(resolutionHeight)
>     > + ")");
>     > break;
>     > }
>     > }
>     > }
>     >
>     > readCaps();
>     >
>     > if (hr == S_OK) {
>     > return WEBCAM_OK;
>     > }
>     >
>     > *LOG_ERROR("failed caps request: ("
>     > + String::fromNumber(palette)
>     > + "," + String::fromNumber(fps)
>     > + "," + String::fromNumber(resolutionWidth)
>     > + "," + String::fromNumber(resolutionHeight)
>     > + ")");*
>     >
>     > *error occured , I am trying to figure out which function
>     > (DirectXWebcamDriver::setResolution() or
>     > DirectXWebcamDriver::setPalette() or others)calling setCaps()
>     results
>     > in this error *
>     >
>     >
>     > return WEBCAM_NOK;
>     > }
>     > void DirectXWebcamDriver::*readCaps*() {
>     >
>     > VIDEOINFOHEADER * pvi;
>     > pixosi palette;
>     > AM_MEDIA_TYPE * pmt = NULL;
>     > HRESULT hr = _iam->GetFormat(&pmt);
>     > if (pmt->formattype == FORMAT_VideoInfo) {
>     > pvi = (VIDEOINFOHEADER *) pmt->pbFormat;
>     > palette = pix_directx_to_pix_osi(pmt->subtype);
>     > }
>     > _cachedPalette = palette;
>     > _cachedWidth = pvi->bmiHeader.biWidth;
>     > _cachedHeight = pvi->bmiHeader.biHeight;
>     >
>     >
>     > }
>     >
>     >
>     >
>     ------------------------------------------------------------------------
>     >
>     >
>     >
>     ------------------------------------------------------------------------
>     >
>
>     _______________________________________________
>     QuteCom-dev mailing list
>     [email protected] <mailto:[email protected]>
>     http://lists.qutecom.org/mailman/listinfo/qutecom-dev
>
>
>
>
>
> Thank you very much
>
>
> /**********************************
> webcam/DirectXWebcamDriver.cpp******************************/
>
> WebcamErrorCode DirectXWebcamDriver::setCaps(pixosi palette, unsigned
> fps, unsigned resolutionWidth, unsigned resolutionHeight) {
> * ...*
> if (sizeof(scc) != iSize) {
> LOG_ERROR("wrong config structure");
> return WEBCAM_NOK;
> }
>
> for (int i = 0; i < iCount; i++) {
> AM_MEDIA_TYPE * pmt = NULL;
> hr = _iam->GetStreamCaps(i, *&pmt*, reinterpret_cast<BYTE
> *>(&scc));//i 为 6 时
> if (hr == S_OK) {
> pixosi wc_palette =* pix_directx_to_pix_osi*(pmt->subtype);
> if (wc_palette != palette) {
> hr = E_FAIL;
> continue;
> }
> ...
> }
>
>
> /**********************************pixertool/directx-pixertool.h***************************************/
>
> pixosi *pix_directx_to_pix_os**i*(GUID *pix*) {
> register unsigned i;
> pixosi palette = PIX_OSI_UNSUPPORTED;
>
> for (i = 0; i < sizeof(_ms_table) / sizeof(pixms_pixosi); i++) {
> if (memcmp(&_ms_table[i].pix_ms, &pix, sizeof(GUID)) == 0) {
> palette = _ms_table[i].pix_osi;
> break;
> }
> }
> return *palette*;
> }
>
>
> I have debug the *pix_directx_to_pix_osi*(GUID pix) many times,and
> found my
> webcam only supports the following two palettes :
> *1,{ MEDIASUBTYPE_RGB24, PIX_OSI_RGB24 }*
> ( *21* in enum pixosi)
> *2,{ OUR_MEDIASUBTYPE_I420, PIX_OSI_YUV420P }*
> ( *0 * in enum* *pixosi)
>
> This can be used to expalain the error :
> > I have made a small test with webcam-test-visu-c.exe. the results are
> > as follows:
> > * <error>15:32:03 [Common] DirectXWebcamDriver::setCaps:
> failed caps
> > request:(*19*,15,320,240)
>
> My webcam* does't support { MEDIASUBTYPE_RGB32, PIX_OSI_RGB32 }*
> (*19* in enum pixosi)
> *,resulting image conversion failure:*
>
>
> void QtVideoQt::convertPixImageToQImage(piximage* pixImage, const
> QSize& size, QImage* image) {
> Q_ASSERT(image);
>
> if (image->size() != size || image->format() !=* QImage::Format_RGB32*) {
> *image = QImage(size, QImage::*Format_RGB32*);
> }
>
>
> resizedPixImage.palette = *PIX_OSI_RGB32*; //* error!, my webcam
> dosen't support *
Ok you're webcam doesn't support PIX_OSI_RGB32*
*But here you're webcam is not engaged :
I mean, convertPixImageToQImage will convert pixImage to QImage without
access to webcam driver ...
If you're pixImage format is not PIX_OSI_RGB32 it will be converted with
ffmpeg*
*
> resizedPixImage.width = image->width();
> resizedPixImage.height = image->height();
> resizedPixImage.data = image->bits();
>
> *pix_convert*(PIX_NO_FLAG, &resizedPixImage, pixImage);
> //测试//
>
>
> }
> pixertool.cpp
>
> * ...*
> pixerrorcode* pix_convert*(int flags, piximage * img_dst, piximage *
> img_src) {
> *...*
> if (*img_convert*(&avp_target, pix_fmt_target,
> &avp_tmp_target, pix_fmt_source,
> img_dst->width, img_dst->height) *== -1*) {
> av_free(buf_tmp_target);
> return PIX_NOK; // *img _convert () failure*, *always return PIX_NOK*
> }
> * ...*
> }
> * ...*
>
>
>
>
>
>
> I have just changed "resizedPixImage.palette = PIX_OSI_RGB*32" * to*
> *resizedPixImage.palette = PIX_OSI_RGB*24
> and now ,the video can show on the Label widget ,However, the picture
> showed on the label is not clear and overlapped *Webcam Preview.png
> (/image/png/) 39K
> <http://?ui=2&ik=ab85a7e087&view=att&th=122461d06b4f0e4c&attid=0.1&disp=attd>
>
>
> Clearly ,the problem resulted from the following conflicts :GUI shows
> QImage(size, QImage::*Format_RGB32*) while the converted picture is
> RGB*24*, it conflicts .My Qt library version is 4.3.2,amd Qt don't
> support QImage::Format_RGB888 until version 4.4
I think there is something wrong with format value of piximage in
convertPixImageToQImage()
Can you verify that pixImage->palette in convertPixImageToQImage() is
equal to PIX_OSI_RGB24 ?*
*
>
> what makes me puzzled is that: I have downloaded Qutecom release
> version on my computer ,installed it ,and the Qutecom workeds well,
> the video workes well,everything is ok.but when i compiled the source
> code ,the debug version faced the problem mentioned previously.
>
> It makes me puzzled . My webcam dosen't support *PIX_OSI_RGB32:
> *
> * Is it due to my DirectX library or windows server platform SDK?*
> *
> Does QImage::Format_RGB888 equal to RGB24? if true, I would rather
> compile a higher Qt version to make Qt support QImage::Format_ RGB24
> Would you please give me some other guidance *, *thanks again! *
>
>
>
>
> ------------------------------------------------------------------------
>

_______________________________________________
QuteCom-dev mailing list
[email protected]
http://lists.qutecom.org/mailman/listinfo/qutecom-dev

Reply via email to