Re: [GnomeMeeting-list] video failure with ovfx2



Le dim 24/08/2003 à 16:21, Dan Egnor a écrit :

> PVideoDevice::SetFrameSizeConverter() includes the following code, near
> the top:
> 
>   if (!converter)
>     converter = PColourConverter::Create(colourFormat, colourFormat, width, heig
> ht);
>   if (!converter) {
>     PTRACE(1, "PVidDev\tSetFrameSizeConverter Colour converter creation failed")
> ;
>     return FALSE;
>   }
> 
> If the color format has not been initialized at that point -- which it 
> hasn't, in the gnomemeeting code -- then colourFormat will be an empty
> string, and PColourConverter::Create() will attempt to look up a conversion
> from "" to "", and since it has no such conversion registered, it will
> return NULL.
> 

You are missing that part :
if (SetFrameSize(width, height))
    return TRUE;

So what happens is that SetFrameSizeConverter only sets the right size
in the variables, without doing any ioctl. The converter will then be
created in SetColourConverter, with the right size. That, only if your
camera supports the sizes requested by gnomemeeting.

If you call SetFrameSizeConverter after the SetColourFrameConverter,
then the converter will probably be created with the wrong size in
SetFrameColourFrameConverter, that will be fixed later when you are
calling SetFrameSizeConverter.


> What I wonder is: how can that order of initialization work with any
> driver?  It seems guaranteed to fail in libpt before even touching the
> driver, but surely it doesn't.  Why did you change the order of 

See my comment above.

> initialization at all?  And why not just use PVideoInput::OpenFull(),
> which initializes everything at once in the correct order?

Because it doesn't give a precise report of what error there is.

> The driver only supports a single size and colour palette, anyway, as far
> as I know; anything else is done by conversion (in GM's case, in the pwlib
> layer).  Anyway, I guess I'll dig into the pwlib capture code.

I had tought a lot to the order of initialisation of things in pwlib/gm.
It seems some drivers are unhappy with some order, others are unhappy in
some other order. I will revert to the old one because it seems more
logical and more correct for cameras that do not support the requested
frame size and that return an error for other frame sizes.
-- 
 _	Damien Sandras
(o-	GnomeMeeting: http://www.gnomemeeting.org/
//\	FOSDEM 2003:  http://www.fosdem.org
v_/_	H.323 phone:  callto://ils.seconix.com/dsandras seconix com




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]