mike
2010-02-26 06:13:31 UTC
I have a Samsung Omni 2 that has an H264 decoder that shipped with the
phone (one of the reasons I thought I wanted it). However, after much
trying and no real support from Samsung, I'm beginning to think they
have this filter locked down (if possible) to their own internal use.
I have a test application that captures video input and encodes using
an H264 encoder. The last step in my POC was to hook up the H264
decoder from Samsung (S264dDsf.dll) and then to a renderer to preview
on the phone. I have an H264 decoder (wrapped by a DMO) that I can
hook up to the graph that I compiled and it all wires up and plays (as
best as all this can happen on a single proc, sub 1ghz phone).
However, if I try to hook up the Samsung filter (dshow filter), I
keep getting a 0x80040207. The code I'm using is:
AM_MEDIA_TYPE _type = {};
_type.majortype = MEDIATYPE_Video;
_type.subtype = MEDIASUBTYPE_S264d; //{34363248-...}
hr = pGraph->ConnectDirect(
this->GetPin(
pVideoCompressor
, L"out0"
)
, this->GetPin(
pVideoDecompressor
, L"XForm In"
)
, &_type
);
If I use this code to connect my dmo with the encoder, it works (I
have the same 4cc as in the registry for the S264d filter's subtype).
Is there a way to determine (for sure other than the 207), if the
filter is lock somehow and not usable by 3rd parties (or something I'm
doing wrong)? It's my understanding that the Samsung filter is on top
of a hardware decoder; not sure if this would make a difference.
Thanks!
phone (one of the reasons I thought I wanted it). However, after much
trying and no real support from Samsung, I'm beginning to think they
have this filter locked down (if possible) to their own internal use.
I have a test application that captures video input and encodes using
an H264 encoder. The last step in my POC was to hook up the H264
decoder from Samsung (S264dDsf.dll) and then to a renderer to preview
on the phone. I have an H264 decoder (wrapped by a DMO) that I can
hook up to the graph that I compiled and it all wires up and plays (as
best as all this can happen on a single proc, sub 1ghz phone).
However, if I try to hook up the Samsung filter (dshow filter), I
keep getting a 0x80040207. The code I'm using is:
AM_MEDIA_TYPE _type = {};
_type.majortype = MEDIATYPE_Video;
_type.subtype = MEDIASUBTYPE_S264d; //{34363248-...}
hr = pGraph->ConnectDirect(
this->GetPin(
pVideoCompressor
, L"out0"
)
, this->GetPin(
pVideoDecompressor
, L"XForm In"
)
, &_type
);
If I use this code to connect my dmo with the encoder, it works (I
have the same 4cc as in the registry for the S264d filter's subtype).
Is there a way to determine (for sure other than the 207), if the
filter is lock somehow and not usable by 3rd parties (or something I'm
doing wrong)? It's my understanding that the Samsung filter is on top
of a hardware decoder; not sure if this would make a difference.
Thanks!