Solved

Active Movie SDK

Posted on 1997-09-09
4
327 Views
Last Modified: 2008-03-06
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.
0
Comment
Question by:romanm
  • 2
4 Comments
 
LVL 3

Accepted Solution

by:
msmits earned 100 total points
ID: 1169265
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
 

Expert Comment

by:jaakkola
ID: 1169266
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
 
LVL 3

Author Comment

by:romanm
ID: 1169267
Jaakkola
if you could send me your E-Mail or that filter you written
about I'd appreciate it.

thanks

0
 
LVL 3

Expert Comment

by:msmits
ID: 1169268
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

Featured Post

Is Your AD Toolbox Looking More Like a Toybox?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Often, when implementing a feature, you won't know how certain events should be handled at the point where they occur and you'd rather defer to the user of your function or class. For example, a XML parser will extract a tag from the source code, wh…
Introduction This article is the first in a series of articles about the C/C++ Visual Studio Express debugger.  It provides a quick start guide in using the debugger. Part 2 focuses on additional topics in breakpoints.  Lastly, Part 3 focuses on th…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question