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

Re: DirectShow interface availability by Phred

Phred
Wed Apr 04 16:50:31 CDT 2007

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



Re: DirectShow interface availability by Gary

Gary
Wed Apr 04 17:08:14 CDT 2007

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" <phredo@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
>
>



Re: DirectShow interface availability by rgalgon

rgalgon
Thu Apr 05 10:21:02 CDT 2007

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



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 -