Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Active Movie SDK

Posted on 1997-09-09
4
Medium Priority
?
332 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 3

Accepted Solution

by:
msmits earned 200 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

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

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

Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
What is C++ STL?: STL stands for Standard Template Library and is a part of standard C++ libraries. It contains many useful data structures (containers) and algorithms, which can spare you a lot of the time. Today we will look at the STL Vector. …
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.
Suggested Courses

670 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