Active Movie SDK

Hi.

I'm looking for info on the Active Movie SDK.
I need to know how the interfaces interact with each other and how to
build an Async. source filter that reads from a server and passes the
media samples
to a transform filter that queues them.

Roman.
LVL 3
romanmAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

msmitsCommented:
Look in the ActiveMovie SDK documentation. It can be found at:

  http://www.microsoft.com/devonly/tech/amov1doc/

and probably also with the SDK itself.

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jaakkolaCommented:
The information how interfaces interact with each other are not described very well in the SDK documentation but the basic thing to do is to take some example filter and make a pin that has been inherited from the IAsyncReader interface. You need to implement a few member-functions that are:
      STDMETHODIMP RequestAllocator(IMemAllocator* pPreferred,ALLOCATOR_PROPERTIES* pProps,IMemAllocator ** ppActual);
      STDMETHODIMP SyncRead(LONGLONG llPosition, LONG lLength, BYTE* pBuffer);
      STDMETHODIMP SyncReadAligned(IMediaSample* pSample);
      STDMETHODIMP WaitForNext(DWORD dwTimeout,IMediaSample** ppSample, DWORD * pdwUser);
      STDMETHODIMP BeginFlush(void);
      STDMETHODIMP EndFlush(void);
      STDMETHODIMP Length(LONGLONG* pTotal, LONGLONG* pAvailable);
      STDMETHODIMP Request(IMediaSample* pSample, DWORD dwUser);

The meaning of the functions are explained in the documents but it has not been explained how the control flow goes. For example, if transform filter is MPEG-Splitter all the basic stuff is done in the begining as expected but after that splitter needs to have a sample (32 - 64 kB depending on the type of MPEG-1). When sample is processed then the filter is destroyed (so the source-filter instance is killed). When play is called from filter-graph the hole chain of filters is build again and data is being processed.

The best thing to do is to start doing your own filter from CSourceFilter class (don't inherite it but look it and make your own filter some what similar manner). Make the pin-class for the filter and inherit it from IAsyncReader-interface. You should use debugger to trace things inside the classes to see what happens. This should not take you more than two weeks.

If you want to see my Async. source filter please email me directly.

Good Luck!!
Mikko Jaakkola
0
romanmAuthor Commented:
Jaakkola
if you could send me your E-Mail or that filter you written
about I'd appreciate it.

thanks

0
msmitsCommented:
maybe you can mail him via the Experts Exchange administration, because it will cost him points to view the last comment you typed.
I believe jaakkola deserves the points more than I for his explanation and especially for the offering of the source.

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C++

From novice to tech pro — start learning today.