Migrating to the Character Generator filter
This entry provides descriptions of the simple steps required to successfully migrate to our new Character Generator from the existing Text & Graphics Overlay and Flash Overlay filters.
For more detailed information please see: Character Generator DirectShow Filter Documentation.
Contents |
Why Migrate?
The Character Generator filter was developed in response to customers requesting to provide a unified interface for text, graphic, image and Flash items management and to be able to define Z-order for each item.
New features compared to Flash Overlay and Text & Graphics Overlay filters functionality:
- Generic interface for text, graphics, image and Flash overlay items
- Built-in support for news tickers (including crawls and rolls) with automatic file tracking
- Support for item groups & compositions
- Smooth change of item size, position, transparency, background or view area
- Item movement, acceleration, fade in/fade out and entrance/exit effects, animation sequences
- New text and image effects: Shadow, Glow, Motion Blur, Rotation, etc.
- New graphic figures: rectangle, ellipse, triangle, star, etc.
- XML-based configuration
- .SRT subtitles support
For a detailed list of features and a comparison chart see the product's page.
Below is some information that would help you understand how to migrate to the new filter.
Changes In Managing of Overlay Items
All items can be added via a simple algorythm:
- Add a new item with m_objCarGen.AddNewItem() method.
- Update item's properties via m_objCarGen.SetItemBaseProps() method.
To change the properties you can use MLCHARGENLib.CG_ITEM_PROPS stucture that contains universal properties for each overlay item (such as alpha, back color, position, etc.).
Creating and managing image items:
- Replace PICTUREMIXERLib.CoPictureMixerClass with MLCHARGENLib.CoMLCharGenClass.
- Replace the old m_objTnGOverlay.AddImage2 method with the new m_objCarGen.AddNewItem() method.
- If you need to change basic properties, you can create additional MLCHARGENLib.CG_ITEM_PROPS structure and use the m_objCarGen.SetItemBaseProps() method to set the properties of your graphic item.
Creating and managing Flash items:
- Replace MLFLASHOVERLAYLib.CoFlashOverlayClass with MLCHARGENLib.CoMLCharGenClass.
- Replace the old m_pFlashOverlay.AddNewItem method with the new m_objCarGen.AddNewItem() method.
- If you need to change basic properties, you can create additional MLCHARGENLib.CG_ITEM_PROPS structure and and use the m_objCarGen.SetItemBaseProps() method to set the properties of your Flash item.
Creating and managing text items:
- Replace PICTUREMIXERLib.CoPictureMixerClass with MLCHARGENLib.CoMLCharGenClass.
- Replace the old PICTUREMIXERLib.OVERLAY_PROPS structure with 2 new structures: MLCHARGENLib.CG_ITEM_PROPS and MLCHARGENLib.CG_TEXT_PROPS. MLCHARGENLib.CG_TEXT_PROPS contains text-specific properties (such as font type, font size, text style, etc.) that are not available in MLCHARGENLib.CG_ITEM_PROPS. To change basic item properties use the MLCHARGENLib.CG_ITEM_PROPS structure and the m_objCarGen.SetItemBaseProps() method.
- Replace the old m_objTnGOverlay.AddOutlinedText method with the new m_objCarGen.AddNewTextItem call. Please note that it uses the MLCHARGENLib.CG_TEXT_PROPS structure.
New Item Types
Graphic items. Allows drawing of basic graphic figures like rectangles, ellipses, triangles, stars, etc.
Group items. Allows combining several items in a group and manage this group as if it were a single item. For example, a scrolling text and a rectangle can be combined into a group to simplify management.
Item Identifiers
Every Character Generator item has its own string identifier and can be accessed through it. It is strongly recommended to give intelligent identifiers to the items, like variables names (for example "LogoPic", "ScrollingMsg", etc.). It will help you to access the items easily while using the advanced features of the new Chararacter Generator filter.
Item XML Descriptions
Every Character Generator item has an XML description and can be changed in 2 ways:
- Common way - using the the MLCHARGENLib.CG_ITEM_PROPS structure and the m_objCarGen.SetItemBaseProps() method.
- Via XML - using the SetItemProperties() method. This feature allows to interact with items in a more flexible way. For example you can change a single item parameter by it's XML name; store your items collection in XML and add them with a single method call, etc.