How can I set properties of encoders used in TimeShifting object?

From AVObjects Knowledge Base
(Difference between revisions)
Jump to: navigation, search
(Created page with "There are 2 ways to do that: '''1. Use GetVideoCodecProps() and SetVideoCodecProps() methods.''' This methods use ICGetState interface of codecs ( http://msdn.microsoft.com/en...")
 
Line 4: Line 4:
  
 
This methods use ICGetState interface of codecs ( http://msdn.microsoft.com/en-us/library/dd743157(v=VS.85).aspx ).  
 
This methods use ICGetState interface of codecs ( http://msdn.microsoft.com/en-us/library/dd743157(v=VS.85).aspx ).  
That means that they get and set properties in binary structure and it is impossible to change them manually (data storing format is specific for each codec).  
+
That means that they get and set properties in binary structure and it is impossible to change them manually (data storing format is codec specific).  
  
 
So, here is a sequence of actions to use them:  
 
So, here is a sequence of actions to use them:  

Revision as of 14:16, 4 October 2011

There are 2 ways to do that:

1. Use GetVideoCodecProps() and SetVideoCodecProps() methods.

This methods use ICGetState interface of codecs ( http://msdn.microsoft.com/en-us/library/dd743157(v=VS.85).aspx ). That means that they get and set properties in binary structure and it is impossible to change them manually (data storing format is codec specific).

So, here is a sequence of actions to use them:

- set all needed codec settings through property page.

- get state (settings) with GetVideoCodecProps() method.

- save received settings.

- on next usage restore this settings with SetVideoCodecProps() method.

Note: ICGetState is supported by VCM codecs only (they are marked as blue in GraphEdit). Edit).

2. Receive pointer to codec object and use it's DirectShow interface directly.

Here is a sequence of actions:

- create an instance of codec DirectShow interface (must be provided by codec developers).

- get the pointer to codec object with GetVideoEncoderFilter() or GetAudioEncoderFilter() method.

- cast codec object to it's DirectShow interface instance.

- use DirectShow interface instance methods to set codec properties.

Note: This method is supported by non-VCM codecs with DirectShow interface only.

Personal tools