Re: DirectShow interface availability by Phred
Phred
Thu Apr 05 12:58:19 CDT 2007
Well no big deal... I got my image capture stream working and I'm
content with it. I was just curious as to what was going on with the
extra interfaces.
On Apr 5, 11:21 am, "rgalgon" <rgal...@gmail.com> wrote:
> DirectShow on WM devices is completely hit or miss from my (limited)
> experience.
> The various HTC devices I've tested DirectShow on have similar issues
> to what you mention above.
> Everything returns S_OK, but nothing ever actually is affected. It
> seems that the hardware maker just fills in a bunch of default values
> in the driver and never implements any of the control functions.
>
> Granted, via DirectShow I can capture images and video, but I have
> such little control over it (for example the unchangeable defaults on
> one of the HTC smartphones I have is about a 20% JPEG quality capture)
> that its not really worth spending any time with it in terms of
> interfacing with the hardware. Its just a bullet point to WM5.0 not an
> actually and truly usable feature, which is completely an OEM
> problem.
>
> If you can't get an SDK from the device manufacturer you're most
> likely out of luck, unless you're willing to write your own driver
> from scratch.
>
> Sorry for the news
>
> On Apr 4, 6:08 pm, "Gary Daniels [MS]" <gary...@online.microsoft.com>
> wrote:
>
>
>
> > If these properties are succeeding, then it's a driver bug. Tilt, Pan, and
> > Roll are designed for controlling a servo actuated tripod to tilt, pan, and
> > roll the camera. These properties are there for completeness of the API and
> > desktop compatibility, I don't know of any devices which support them.
>
> > I would expect Brightness, Contrast, Zoom, and a few others to work
> > depending on the camera hardware. These are hardware features of the camera
> > though and not guaranteed to be supported.
>
> > Gary Daniels
> > Windows CE Multimedia and Graphics
>
> > This posting is provided "AS IS" with no warranties, and confers no rights.
> > You assume all risk for your use.
>
> > "Phred" <phr...@gmail.com> wrote in message
>
> >news:1175723431.423500.316380@y66g2000hsf.googlegroups.com...
>
> > > Oh and if I use CameraControl_Flags_Manual instead of
> > > CameraControl_Flags_Auto when calling the camera control functions I
> > > am able to retrieve the values I had initially set... but it doesn't
> > > affect the camera image at all.
>
> > > On Apr 4, 5:37 pm, "Phred" <phr...@gmail.com> wrote:
> > >> So I was playing around and querying the various filters available
> > >> from direct show but noticed that from SmartPhone to SmartPhone some
> > >> of them work while others do not.
>
> > >> For example, I can acquire my capture filter like this:
> > >> g_pVideoCaptureFilter.CoCreateInstance(CLSID_VideoCapture);
>
> > >> And I can query and acquire other interfaces like the CameraControl,
> > >> VideoProcAmp and VideoControl interfaces
> > >> like this:
>
> > >> hResult = g_pVideoCaptureFilter.QueryInterface(&g_pCameraControl);
> > >> hResult = g_pVideoCaptureFilter.QueryInterface(&g_pVideoProcAmp);
> > >> hResult = g_pVideoCaptureFilter.QueryInterface(&g_pVideoControl);
>
> > >> Which all return S_OK as the return value.
>
> > >> But when I go to actually use them... the return values are either
> > >> S_OK but nothing happens or it doesn't even work at all. For
> > >> instance:
>
> > >> hResult = g_pVideoCaptureFilter.QueryInterface(&g_pCameraControl);
> > >> if FAILED(hResult)
> > >> {
> > >> OutputDebugString(L"WARNING - Could not acquire CameraControl
> > >> interface.\n");}
>
> > >> else
> > >> {
> > >> long nValue;
> > >> long nFlags;
>
> > >> hResult = g_pCameraControl->Get(CameraControl_Roll, &nValue,
> > >> &nFlags);
> > >> hResult = g_pCameraControl->Set(CameraControl_Roll, -90,
> > >> CameraControl_Flags_Auto);
> > >> hResult = g_pCameraControl->Get(CameraControl_Roll, &nValue,
> > >> &nFlags);
>
> > >> hResult = g_pCameraControl->Get(CameraControl_Tilt, &nValue,
> > >> &nFlags);
> > >> hResult = g_pCameraControl->Set(CameraControl_Tilt, 90,
> > >> CameraControl_Flags_Auto);
> > >> hResult = g_pCameraControl->Get(CameraControl_Tilt, &nValue,
> > >> &nFlags);
>
> > >> }
>
> > >> When I step through the above code on a Samsung Blackjack, I get the
> > >> value, set a new one and then try to read it back but its not changed
> > >> nor is the image changed. On a MotoQ the Get/Set fails completely
> > >> even though I was able to acquire the interface.
>
> > >> I'll assume not to rely on these being present at all times!
>
> > >> Fred- Hide quoted text -
>
> - Show quoted text -