Active Movie SDK


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.

Who is Participating?
msmitsConnect With a Mentor Commented:
Look in the ActiveMovie SDK documentation. It can be found at:

and probably also with the SDK itself.

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
romanmAuthor Commented:
if you could send me your E-Mail or that filter you written
about I'd appreciate it.


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.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.